Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
·Ö²¼Ê½ÏµÍ³Éè¼ÆµÄÇóÉú֮·
 
×÷Õߣº Simon À´Ô´£º¼«¿ÍÍ·Ìõ ·¢²¼ÓÚ£º 2016-8-3
  1831  次浏览      27
 

µ¼¶Á£º

·Ö²¼Ê½ÏµÍ³ÀíÄî½¥½¥³ÉΪÁ˺ǫ́¼Ü¹¹¼¼ÊõµÄÖØÒªÑ¡Ôñ£¬±¾ÎĽéÉÜÁË×÷ÕßÔÚÊÖÓÎÁìÓò¶Ô·Ö²¼Ê½ÏµÍ³½øÐеÄÖÖÖÖ³¢ÊÔ£¬²¢ÔÚ³¢ÊÔÖÐÖÆ¶¨Á˶ԷþÎñµÄ¶¨Òå¡¢ÕûÌå¿ò¼ÜµÄ¹¹½¨ÒÔ¼°·þÎñÄÚ²¿²ð·ÖµÄÁ÷³Ì¡£

ǰÑÔ

ÒµÎñ¹æÄ£²»¶ÏÀ©´ó£¬¶ÔÎȶ¨ÐÔ¡¢À©Õ¹ÐÔµÄÒªÇó²»¶ÏÌá¸ß£¬Íƶ¯Á˺ǫ́¼Ü¹¹¼¼ÊõµÄ²»¶Ï¸ïС£Ãæ¶ÔÈÕÒæ¸´ÔÓµÄÐèÇ󣬷ֲ¼Ê½ÏµÍ³µÄÀíÄîÒ²Öð½¥ÉîÈëµ½ºǫ́¿ª·¢ÕߵĹÇËè¡£2013Ä꣬½è×ÅÊÖÓÎÈȳ±ÎÒ¶Ô·Ö²¼Ê½ÏµÍ³¿ªÊ¼³¢ÊÔ¡£ÔÚ½üÈýÄêµÄÃþÅÀ¹ö´òÖУ¬²È¹ý²»ÉÙ¿Ó£¬Ò²´ÓÒµ½ç¼¼Êõ·¢Õ¹ÖÐÎüȡһЩ¾­Ñ飬Öð½¥ÐγÉÁËĿǰµÄÉè¼ÆË¼Â·¡£ÕâÀïºÍ´ó¼Ò·ÖÏíµãÐĵ㬲»¸ÒÉÝ̸Óжà´ó²Î¿¼¼ÛÖµ£¬È¨µ±Å×שÒýÓñ°É¡£

Ò»¡¢Ê§°ÜµÄÊ״γ¢ÊÔ

×î³õ¿¼ÂÇʹÓ÷ֲ¼Ê½µÄ³ö·¢µãºÜ¼òµ¥£º½â¾ö¶ËÓοª·¢Ê±µ¥µã½á¹¹µ¼ÖÂÈÝÔÖ¡¢À©ÈÝÀ§ÄѵÄÎÊÌâ¡£Ò»ÖÖÆÓËØµÄÏë·¨¾ÍÊǽ«Ïàͬ¹¦ÄܵĽø³Ì×÷Ϊһ¸öÕûÌå¶ÔÍâÌṩ·þÎñ¡£ÕâÀï¼òÒªÃèÊöÏ»ù±¾¿ò¼Ü£º

ÕâÖּܹ¹ÌṩÁËÈý¸ö»ù±¾×é¼þ£º

Client API£¬·þÎñÇëÇóÕßAPI£º

´Ó Cluster Center Server »ñÈ¡·þÎñÌṩÕßµØÖ·

ÏòServer¼¯ÈºÄÚËùÓÐʵÀý×¢²á£¬×¢²á³É¹¦ÔòÈÏΪ¿ÉÓÃ

ͨ¹ý¸ºÔؾùºâËã·¨£¬Ñ¡ÔñÒ»¸öServerʵÀýͨÐÅ

¼ì²âServer¼¯ÈºÄÚ¸÷ʵÀýµÄÔËÐÐ״̬

Server API£¬·þÎñÌṩÕßAPI£º

Ïò Cluster Center Server Éϱ¨×Ô¼ºµÄ״̬¡¢·ÃÎʵØÖ·µÈ

½ÓÊÕ Client API µÄ×¢²á£¬²¢Ìṩ·þÎñ

ÏòÒѾ­×¢²á³É¹¦µÄClient¶¨Ê±»ã±¨×´Ì¬

Cluster Center Server£¬¼¯ÈºÖÐÐĽø³Ì£º

½ÓÊÕ Server Cluster Éϱ¨£¬È·¶¨·þÎñ¼¯ÈºµÄ½á¹¹£¬ÒÔ¼°¸÷ʵÀýµÄ״̬

½ÓÊÕ Client Cluster µÄÇëÇ󣬷µ»Ø¿ÉÓ÷þÎñ¼¯ÈºÁбí

ÕâÖּܹ¹¾ß±¸Á˼¯ÈºµÄ»ù±¾³ûÐΣ¬¿ÉÒÔÂú×ãÈÝÔÖÀ©ÈݵĻù±¾ÐèÇ󣬴ó¼ÒÓ¦¸ÃÒ²·¢ÏÖ²»ÉÙÎÊÌ⣬ÎÒÕâÀï×ܽἸµã£º

·þÎñ·¢ÏÖµÄõ¿½ÅʵÏÖ¡£ Cluster Center Server µÄʵÏÖÊǵ¥µã£¬³öÏÖ¹ÊÕÏʱClientÇëÇó»áÒì³££»Ã»ÓÐÌṩ¼à¿Ø»úÖÆ£¬ClientÖ»ÄÜͨ¹ý¶¨Ê±ÇëÇóÀ´»ñÈ¡·þÎñµÄ×îÐÂ×´¿ö¡£

CS²ÉÓÃRequest/ResponseµÄͨÐÅ·½Ê½²»Áé»î¡£ÏÖʵӦÓÃÖУ¬·þÎñÍùÍù´æÔÚÏ໥ÇëÇó£¬Ò»Ó¦Ò»´ðÔ¶Ô¶²»¹»£¬È«Ë«¹¤ ÊDZØÐëÒªÖ§³ÖµÄ¡£

ÓÐ覴õı£»î»úÖÆ¡£ Server¶ÔClient¶¨ÆÚµ¥±ßÐÄÌø£¬ÓÐÁ½¸öÎÊÌ⣺²»Í¬Client¶Ô±£»îÒªÇó¿ÉÄܲ»Í¬£¬ÓÐЩ5s£¬ÓÐЩ¿ÉÄÜ1s£¬Èç¹ûÐÄÌø·¢ÆðÈ«²¿ÔÚServer£¬ÎÞ·¨Âú×ã²îÒ컯ҪÇó£»·þÎñ¶Ë×÷Ϊ±»¶¯·½£¬³Ðµ£¼à¿ØÇëÇóÕß´æ»îµÄÔðÈβ»Ã÷ÖÇ¡£

¼Ü¹¹Éè¼ÆµÄ²ã´Î²»ÇåÎú¡£¶Ô¼Ü¹¹µÄ²ã´Î¡¢Ä£¿é»®·ÖûÓÐ×÷³öºÜºÃµÄ¹æ»®£¬±ÈÈçͨÐŵײ㡢·þÎñ·¢ÏÖ¡¢¼¯ÈºÌ½²âÓë±£»îµÈµÈûÓÐÇåÎú¶¨Òå½Ó¿Ú£¬µ¼ÖÂÏ໥ñîºÏ£¬Ìæ»»¡¢Î¬»¤½ÏΪÀ§ÄÑ¡£

¶þ¡¢¿´¿´ÍâÃæµÄÊÀ½ç

ÉÏÊöÎÊÌ⣬¹é¸ù½áµ×»¹ÊÇÑÛ½çÏÁÕ­£¬×Ô¼ºÃÆÍ·ÔìÂÖ×Óû¸úÉÏÒµ½ç¼¼Êõ·¢Õ¹µÄ²½·¥¡£½ü¼¸Äê΢·þÎñ¼Ü¹¹·¢Õ¹Ñ¸ËÙ£¬Ïà±È´«Í³ÃæÏò·þÎñ¼Ü¹¹²»ÔÙ¹ý·ÖÇ¿µ÷ÆóÒµ·þÎñ×ÜÏߣ¬¶øÊÇÉîÈëµ½µ¥¸öÒµÎñϵͳÄÚ²¿µÄ×é¼þ»¯¡£ÕâÀïÎÒ½éÉÜÏÂ×Ô¼ºµÄµ÷Ñнá¹û¡£

2.1 ·þÎñЭͬ

·þÎñЭͬÊÇ·Ö²¼Ê½ÏµÍ³Ò»¸öºËÐÄ×é³É²¿·Ö£¬¸ÅÊöΪ£º¶à¸ö½ø³Ì½Úµã×÷ΪÕûÌå¶ÔÍâÌṩ·þÎñ£¬·þÎñ¿ÉÒÔÏ໥·¢ÏÖ£¬·þÎñ¹Ø×¢Õß¿ÉÒÔ¼°Ê±»ñÈ¡±»¹Ø×¢Õߵı仯ÒÔÍê³ÉЭ×÷¡£¾ßÌåÔËÐйý³Ì°üÀ¨£º·þÎñ×¢²á ºÍ ·þÎñ·¢ÏÖ¡£ÔÚʵÏÖÉÏÉæ¼°ÒÔÏ·½Ã棺

ͳһÃüÃû¡£¶Ô·þÎñÒÔ¼°ÆäÖеĽڵ㣬½øÐм¯ÖÐʽ¡¢Í³Ò»ÃüÃû£¬±ãÓÚÏà»¥Çø·ÖºÍ·ÃÎÊ¡£

¼à¿Ø¡£È·¶¨·þÎñµÄ¿ÉÓÃÐÔºÍ״̬£¬µ±·þÎñ״̬±ä»¯Ê±£¬¹Ø×¢ÕßÒªÓÐ;¾¶»ñÖª¡£

·ÃÎʲßÂÔ¡£·þÎñͨ³£°üº¬¶à¸ö½Úµã£¬ÒÔ¼¯ÈºÐÎʽ´æÔÚ£¬ClientÔÚÿ´ÎÇëÇóʱÐèÒª²ßÂÔÈ·¶¨Í¨ÐŽڵ㣬²ßÂÔÄ¿±ê¿ÉÄÜÊǶàÑùµÄ£¬±ÈÈç ¸ºÔؾùºâ £¬Îȶ¨Ó³Éä µÈµÈ¡£

¿ÉÓÃÐÔ¡£ÈÝÔÖ´¦Àí£¬¶¯Ì¬À©ÈÝ¡£

Òµ½çÖнÏΪ³ÉÊìµÄʵÏÖÈçϱíËùʾ£º

2.2 ÏûÏ¢Öмä¼þ

Òà³ÆÏûÏ¢¶ÓÁУ¬ÔÚ·Ö²¼Ê½ÏµÍ³¹ã·ºÊ¹Óã¬ÔÚÐèÒª½øÐÐÍøÂçͨÐŵĽڵã¼ä½¨Á¢Í¨µÀ£¬¸ßЧ¿É¿¿µØ½øÐÐÆ½Ì¨Î޹صÄÊý¾Ý½»Á÷¡£¼Ü¹¹ÉÏÖ÷Òª·ÖΪÁ½ÖÖ£ºBroker-Based£¨´úÀí£©£¬ºÍ Brokerless£¨ÎÞ´úÀí£©¡£Ç°ÕßÐèÒª²¿ÊðÒ»¸öÏûϢת·¢µÄÖмä²ã£¬Ìṩ¶þ´Î´¦ÀíºÍ¿É¿¿ÐÔ±£Ö¤¡£ºóÕßÇáÁ¿¼¶£¬Ö±½ÓÔÚÄÚǶÔÚͨÐŽڵãÉÏ¡£Òµ½ç½ÏΪ³ÉÊìµÄʵÏÖÈçϱíËùʾ£º

2.3 ͨÐÅЭÒéÊý¾Ý¸ñʽ

·þÎñ¼äͨÐÅ£¬ÐèÒª½«Êý¾Ý½á¹¹/¶ÔÏóºÍ´«Êä¹ý³ÌÖеĶþ½øÖÆÁ÷×öÏ໥ת»¯£¬Ò»°ã³ÆÎª ÐòÁл¯/·´ÐòÁл¯¡£²»Í¬±à³ÌÓïÑÔ»òÓ¦Óó¡¾°£¬¶ÔÊý¾Ý½á¹¹/¶ÔÏóµÄ¶¨ÒåºÍʵÏÖÊDz»Í¬µÄ¡£ÔÚÑ¡ÔñʱÐèÒª¿¼ÂÇÒÔÏ·½Ã棺

ͨÓÃÐÔ¡£ÊÇ·ñÖ§³Ö¿çƽ̨¡¢¿çÓïÑÔ£»Òµ½çÊÇ·ñ¹ã·ºÁ÷ÐлòÕßÖ§³Ö

¿É¶ÁÐÔ¡£Îı¾Á÷ÓÐÌìÈ»ÓÅÊÆ£¬´¿´â¶þ½øÖÆÁ÷Èç¹ûûÓбã½Ý¿ÉÊÓ»¯¹¤¾ß£¬µ÷ÊÔ½«»áÒ쳣ʹ¿à

ÐÔÄÜ¡£¿Õ¼ä¿ªÏú¡ª¡ª´æ´¢¿Õ¼äµÄÕ¼Óã»Ê±¼ä¿ªÏú¡ª¡ªÐòÁл¯/·´ÐòÁл¯µÄ¿ìÂý

¿ÉÀ©Õ¹ÐÔ¡£ÒµÎñµÄ²»±äÖ®µÀ¾ÍÊÇ¡ª¡ªÒ»Ö±Ôڱ䣬±ØÐë¾ßÓд¦ÀíоÉÊý¾ÝÖ®¼äµÄ¼æÈÝÐÔµÄÄÜÁ¦

ʵÏÖ¡£ÐòÁл¯/·´ÐòÁл¯µÄ×é¼þÒ»°ã°üº¬£ºIDL(Interface Description Language)¡¢IDL Compiler¡¢Stub/Skeleton¡£Òµ½çĿǰ±È½ÏÁ÷ÐеÄÐòÁл¯Ð­ÒéÓУºXML, JSON, ProtoBuf, Thrift, AvroµÈ¡£¹ØÓÚÕ⼸ÖÖЭÒéµÄʵÏÖÒÔ¼°±È½Ï£¬¿ÉÒԲο¼ÎÄÕ ¡¶ÐòÁл¯ºÍ·´ÐòÁл¯¡·¡£ÕâÀォԭÎÄÖеÄÑ¡ÐͽáÂÛժ¼¸ø´ó¼Ò£º

ÔÊÐí¸ßÑÓ³Ù±ÈÈç100msÒÔÉÏ£¬ÄÚÈݱä¸üƵ·±£¬ÇÒ¸´ÔÓµÄÒµÎñ£¬¿ÉÒÔ¿¼ÂÇ»ùÓÚXMLµÄSOAPЭÒé¡£

»ùÓÚWeb browserµÄAjax£¬ÒÔ¼°Mobile appÓë·þÎñ¶ËÖ®¼äµÄͨѶ£»¶ÔÓÚÐÔÄÜÒªÇó²»Ì«¸ß£¬»òÕßÒÔ¶¯Ì¬ÀàÐÍÓïÑÔΪÖ÷µÄ³¡¾°£¬JSON¿ÉÒÔ¿¼ÂÇ¡£

¶ÔÐÔÄܺͼò½àÐÔÓм«¸ßÒªÇóµÄ³¡¾°£¬Protobuf£¬Thrift£¬Avro¶¼²î²»¶à¡£

¶ÔÓÚTerabyte¼¶±ðÊý¾Ý³Ö¾Ã»¯Ó¦Óó¡¾°£¬ProtobufºÍAvroÊÇÊ×ҪѡÔñ¡£³Ö¾Ã»¯ºóµÄÊý¾ÝÈô´æ´¢ÔÚHadoop×ÓÏîÄ¿À»òÒÔ¶¯Ì¬ÀàÐÍÓïÑÔΪÖ÷£¬Avro»áÊǸüºÃµÄÑ¡Ôñ£»·ÇHadoopÏîÄ¿£¬ÒÔ¾²Ì¬ÀàÐÍÓïÑÔΪÖ÷£¬Ê×Ñ¡Protobuf¡£

²»ÏëÔì RPC µÄÂÖ×Ó£¬Thrift¿ÉÒÔ¿¼ÂÇ¡£

Èç¹ûÐòÁл¯Ö®ºóÐèÒªÖ§³Ö²»Í¬µÄ´«Êä²ãЭÒ飬»òÕßÐèÒª¿ç·À»ðǽ·ÃÎʵĸßÐÔÄܳ¡¾°£¬Protobuf¿ÉÒÔÓÅÏÈ¿¼ÂÇ¡£

Èý¡¢ÖØÕûÆì¹Ä

µ÷ÑÐÖܱߺó£¬2015Ä꿪¸ãµÚ¶þ¿îÊÖÓΣ¬Îüȡ֮ǰµÄ½Ìѵ£¬Õâ´ÎÉè¼ÆµÄ»ù±¾Ô­ÔòÊÇ£º

ϵͳ²ð·Ö¡¢½âñÇåÎú¶¨Òåϵͳ¼ä½Ó¿Ú£¬Òþ²ØÏµÍ³ÄÚ²¿ÊµÏÖ£»

´ó¿ò¼Ü¾¡¿ÉÄÜͨÓã¬×Óϵͳ¿ÉÔÚ²»Í¬³¡¾°Ìæ»»¡£

ÏÂÃæÊ×ÏȶԷþÎñ¶¨Ò壬Ȼºó½éÉÜÕûÌå¿ò¼ÜºÍ·þÎñÄÚ²¿²ð·Ö¡£

3.1 ·þÎñ¶¨Òå

¾Ù¸öÊÖÓεÄÀý×Ó£¬¿´Í¼Ëµ»°£º

Service Cluster ·þÎñ¼¯Èº£¬Óɹ¦ÄÜÏàͬµÄʵÀý×é³É£¬×÷ΪÕûÌå¶ÔÍâ·þÎñ£¬ÊÇÒ»¸ö¼¯ºÏ¡£±ÈÈç Lobby Ìṩ´óÌü·þÎñ£¬Battle Ìṩս¶··þÎñ£¬Club Ìṩ¹¤»á·þÎñ£¬Trade Ìṩ½»Ò×·þÎñ¡£

Service Instance ·þÎñʵÀý£¬ÌṩijÖÖ·þÎñ¹¦ÄܵÄ×îϸÁ£¶È£¬ÒÔ½ø³ÌÐÎʽ´æÔÚ¡£±ÈÈçClub ¼¯ÈºÖÐÓÐÁ½¸öʵÀý 3.2.6.1 ºÍ 3.2.6.2 £¬¹¦ÄÜÒ»Ö¡£

Service Node ·þÎñ½Úµã£¬ÊÇ·þÎñ·¢ÏÖ×é¼þ¹ÜÀíµÄ»ù±¾µ¥Ôª£¬¿ÉÒÔÊǼ¯Èº¡¢ÊµÀý¡¢²ã´Î¹ØÏµ»òÕßÒµÎñ¹ØÐĵĺ¬Òå¡£

Service Key ·þÎñ½ÚµãµÄKey£¬È«¾ÖΨһµÄÉí·Ý±ê¼Ç¡£keyµÄÉè¼ÆÐèÒªÄܹ»ÌåÏÖ³ö²ã¼¶¹ØÏµ£¬ÖÁÉÙÒªÄܹ»ÌåÏÖ³ö Cluster ºÍ Instance µÄ°üº¬¹ØÏµ¡£etcdºÍzookeeper¾ùÖ§³Ökey²ã´Î»¯µÄ×éÖ¯¹ØÏµ£¬ÀàËÆÎļþϵͳµÄÊ÷Ðνṹ¡£etcdÓÐmkdirÖ±½Ó½¨Á¢Ä¿Â¼£¬zookeeperÔòͨ¹ý·¾¶ÃèÊö¸¸×Ó¹ØÏµ¡£µ«²»¹ÜÔõô¶¼¿ÉÒÔÔÚ¸ÅÄî²ã´ÎʹÓ÷¾¶½á¹¹ ¡£

ÉÏͼÖУ¬Service Instance ÍêÕû·¾¶¿ÉÃèÊöΪ:/AppID/Area/Platform/WorldID/GroupID/ClusterName/InstanceName¡£ÓÐÒÔÏÂÌØµã£º

¼¯ÈºÂ·¾¶Ò»¶¨ÊÇÆäÖи÷¸öʵÀýµÄ¸¸Â·¾¶

´Ó¹¦ÄÜÍêÕûÐÔ¶øÑÔ£¬¼¯ÈºÊÇ·þÎñµÄ»ù±¾Á£¶È

Ïàͬ¹¦Äܵļ¯ÈºÔÚ²»Í¬Ç°×ºÂ·¾¶Ïº¬Ò岻ͬ£¬·þÎñÄ¿±êÒ²¿ÉÒÔ²»Í¬£¬±ÈÈç:

/Example/wechat/android/w_1/g_1/Lobby ºÍ/Example/wechat/android/w_3/g_2/Lobby ¹¦ÄÜÉϾù±íʾ´óÌü·þÎñ£¬µ«Ò»¸öΪ´óÇø1·Ö×é1·þÎñ£¬Ò»¸öΪ´óÇø3·Ö×é2·þÎñ

3.2 ·þÎñ·¢ÏÖ»ù±¾Á÷³Ì

ÏȳéÏ󼸸ö»ù±¾²Ù×÷£¬²»Í¬·þÎñ·¢ÏÖ×é¼þµÄAPI¿ÉÄÜÂÔÓвîÒ죬µ«Ó¦¸ÃÓжÔÓ¦¹¦ÄÜ£º

Create ÔÚ·þÎñ·¢ÏÖ×é¼þÖд´½¨ Key ¶ÔÓ¦µÄ Service Node£¬Ö¸¶¨È«¾ÖΨһµÄ±ê¼Ç¡£

Delete ÔÚ·þÎñ·¢ÏÖ×é¼þÖÐɾ³ý Key ¶ÔÓ¦µÄ½Úµã¡£

Set ÉèÖà Key ¶ÔÓ¦µÄ Value, °²È«·ÃÎʲßÂÔ»òÕß½Úµã»ù´¡ÊôÐԵȡ£

Get ¸ù¾Ý Key »ñÈ¡¶ÔÓ¦½ÚµãµÄÊý¾Ý£¬Èç¹ûÊǸ¸½Úµã¿ÉÒÔ»ñÈ¡Æä×Ó½ÚµãÁÐ±í¡£

Watch ¶Ô½ÚµãÉèÖüàÊÓÆ÷£¬µ±¸Ã½Úµã×ÔÉí£¬ÒÔ¼°Ç¶Ì××Ó½ÚµãÊý¾Ý·¢Éú±ä¸üʱ£¬·þÎñ·¢ÏÖ×é¼þ½«±ä¸üʼþÖ÷¶¯Í¨Öª¸ø¼àÊÓÕß¡£

Service Instance ÿ´ÎÔÚÆô¶¯Ê±£¬°´ÕÕÏÂÃæµÄÁ÷³Ì´¦Àí£º

Éú³É×Ô¼ºµÄ Service Path£¬×¢ÒâÕâÊÇ·þÎñʵÀýµÄ·¾¶¡£

ÒÔ Service Path Ϊkey£¬Í¨¹ý Create ·½·¨Éú³É½Úµã£¬Set Êý¾Ý£º¶ÔÍ⿪·ÅµÄµØÖ·¡¢°²È«·ÃÎʲßÂԵȡ£

Éú³ÉÐèÒª·ÃÎʵķþÎñ¼¯ÈºµÄ Service Path£¬Í¨¹ý Get ·½·¨»ñÈ¡¼¯ÈºÊý¾Ý£¬Èç¹ûÕÒ²»µ½ËµÃ÷¸Ã·þÎñ²»´æÔÚ£»Èç¹û¿ÉÒÔÕÒµ½·ÖÁ½ÖÖÇé¿ö£º

¸Ã·¾¶ÏÂûÓÐ×ӽڵ㡣˵Ã÷µ±Ç°²»´æÔÚ¿ÉÓõķþÎñʵÀý£¬¶Ô¼¯ÈºÂ·¾¶ÉèÖÃwatcher£¬µÈ´ýеĿÉÓÃʵÀý¡£

¸Ã·¾¶ÏÂÓÐ×ӽڵ㡣ÄÇô Get ËùÓÐ×Ó½ÚµãÁÐ±í£¬²¢½øÒ»²½ Get ×Ó½Úµã·ÃÎÊ·½Ê½ºÍÆäËüÊý¾Ý¡£Í¬Ê±ÉèÖà watcher µ½¼¯ÈºÂ·¾¶£¬¼ì²â¼¯ÈºÊÇ·ñ´æÔڱ仯£¬±ÈÈçÐÂÔö»ò¼õÉÙʵÀýµÈ¡£

Service Instance ÔڹرÕʱ£¬°´ÕÕÏÂÃæµÄÁ÷³Ì´¦Àí£º

ͨ¹ý Delete ·½·¨É¾³ý×Ô¼º¶ÔÓ¦µÄ½Úµã¡£ÓÐЩ·þÎñ·¢ÏÖ×é¼þ¿ÉÒÔÔÚʵÀýÉúÃüÖÜÆÚ½áÊøÊ±×ÔÐÐɾ³ý£¬±ÈÈçzookeeperµÄÁÙʱ½Úµã¡£¶ÔÓÚetcdµÄĿ¼£¬»òÕßzookeeperµÄ¸¸Â·¾¶£¬Èç¹û·Ç¿Õ£¬ÊÇÎÞ·¨É¾³ýµÄ¡£

¸ù¾ÝÉÏÃæµÄ³éÏó¿ÉÒÔ¶¨Òå ·þÎñ·¢ÏÖ µÄ»ù±¾½Ó¿Ú£¬½Ó¿ÚµÄ¾ßÌåʵÏÖ¿ÉÒÔÕë¶Ô²»Í¬µÄ×é¼þ¿ª·¢²»Í¬µÄwrapper£¬µ«¿ÉÒÔºÍÒµÎñ½âñî¡£

3.3 ·þÎñ¼Ü¹¹

ËùÓеļܹ¹¹é¸ù½áµ×»¹ÊÇÐèÒª¾ßÌåµ½½ø³Ì²ã´ÎʵÏֵġ£Ä¿Ç°ÎÒÃÇÏîÄ¿¿ª·¢µÄ·Ö²¼Ê½¼Ü¹¹×é¼þ³ÆÖ®Îª DMS(Distributed Messaging System)£¬ÒÔ DMS Library µÄÐÎʽÌṩ£¬¼¯³É¸Ã¿â¼´¿ÉʵÏÖÃæÏò·þÎñµÄ·Ö²¼Ê½Í¨ÐÅ¡£ÏÂÃæÊÇ DMS Éè¼ÆµÄ×ÜÌå½á¹¹£º

¹ØÓÚSerialize/DeSerialize£¬APPÒµÎñµÄÑ¡Ôñ×ÔÓɶȽϸߣ¬ÏÂÃæ½éÉÜÆäËüLayerµÄ¾ßÌåʵÏÖ£º

3.3.1 Message Middleware

ÏûÏ¢Öмä¼þÇ°Ãæ½éÉÜÓкܶàÑ¡Ôñ¡£DMS ʹÓõÄÊÇ ZeroMQ£¬³ö·¢µãÊÇ£ºÇáÁ¿¼¶¡¢ÐÔÄÜÇ¿´ó¡¢Æ«µ×²ãËùÒÔÁé»î¶øÇÒ¿É¿ØÐԽϸߡ£ÓÉ´Ë´øÀ´µÄ³É±¾ÊÇ£¬¸ß¼¶Ó¦Óó¡¾°ÐèÒª×ö²»ÉÙ¶þ´Î¿ª·¢£¬¶øÇÒ³¤´ï80¶àÒ³µÄ×ÊÁÏÒ²ÐèÒª²»ÉÙʱ¼ä¡£½éÉÜZeroMQµÄÎÄÕÂÌ«¶à£¬ÕâÀï²»´òËã¿ÆÆÕ£¬ËùÒÔÖ±½Ó¸ø³öÉè¼Æ·½°¸¡£

ͨÐÅģʽµÄÑ¡Ôñ

ZeroMQµÄSocketÓжàÖÖÀàÐÍ£¬²»Í¬×éºÏ¿ÉÒÔÐγɲ»Í¬µÄͨÐÅģʽ£¬Áоټ¸ÖÖ³£¼ûµÄ£º

REQ/REP Ò»Ó¦Ò»´ð£¬ÓÐÇëÇó±ØÐëµÈ´ý»ØÓ¦

PUB/SUB ·¢²¼¶©ÔÄ

PUSH/PULL Á÷Ë®Ïßʽ´¦Àí£¬ÉÏÓÎÍÆÊý¾Ý£¬ÏÂÓÎÀ­Êý¾Ý

DEALER/ROUTER ȫ˫¹¤Ò첽ͨÐÅ

¿´µ½ÕâÀ´ó¼Ò¿ÉÄÜ»á¾õµÃÑ¡ÔñPUB/SUBºÍDEALER/ROUTERÓ¦¸Ã¿ÉÒÔÂú×ã¾ø´ó²¿·ÖÓ¦Óó¡¾°°É¡£Êµ¼ÊÉÏDMSֻʹÓÃÁËÒ»ÖÖsocketÀàÐÍ£¬ÄǾÍÊÇROUTER£¬Í¨ÐÅģʽֻÓÐÒ»ÖÖROUTER/ROUTER¡£Ò»ÖÖsocket£¬Ò»ÖÖͨÐÅģʽ£¬ÌýÆðÀ´ºÜ¼òµ¥£¬µ«Õæ¿ÉÒÔÂú×ãÒªÇóÂð£¿

DEALER/ROUTER ÊÇ´«Í³Ò첽ģʽ£¬Ò»·½connect£¬Ò»·½bind¡£Ç°¶ËÈç¹ûÒªÁ¬½Ó¶à¸öºó¶Ë¾ÍµÃ½¨Á¢¶à¸ösocket¡£ÔÚÇ°ÃæÃèÊöµÄ¼¯Èº·þÎñģʽÏ£¬Ò»¸ö½Úµã¼È»á×÷ΪClientÒ²»á×÷ΪServer£¬»áÓжàÌõÈë±ß£¨±»¶¯½ÓÊÕÁ¬½Ó£©ºÍ³ö±ß£¨Ö÷¶¯·¢ÆðÁ¬½Ó£©¡£ÕâÕýºÃ¾ÍÊÇ·ÓɵĸÅÄһ¸öROUTER socket¿ÉÒÔ½¨Á¢¶àÌõͨ·£¬²¢¶ÔÿÌõͨ··¢ËÍ»òÕß½ÓÊÕÏûÏ¢¡£

PUB/SUB ×¢ÖØµÄÊÇÀ©Õ¹ÐԺ͹æÄ££¬°´ÕÕZeroMQ×÷ÕßµÄÒâ˼µ±Ã¿ÃëÖÓÐèÒªÏòÉÏǧµÄ½Úµã¹ã²¥°ÙÍòÌõÏûϢʱ£¬ÄãÓ¦¸Ã¿¼ÂÇʹÓà PUB/SUB ¡£ºÃ°É£¬¿ÉÔ¤¼ûµÄ½«À´ÒµÎñ¹æÄ£¿ÖÅ»¹µ½´ï²»µ½ÕâÖ̶ֳȣ¬ÏÖÔÚÏȰѼòµ¥·ÅÔÚµÚһλ°É¡£

3.3.2 DMS Protocol

ÏûÏ¢½á¹¹

DMSµÄЭÒéʵÏÖ¼¯Èº¹ÜÀí£¬ÏûϢת·¢µÈ»ù±¾¹¦ÄÜ¡£ZeroMQµÄÏûÏ¢¿ÉÒÔÓÉ Frame ×é³É£¬Ò»¸öFrame¿ÉÒÔΪ¿ÕÒ²¿ÉÒÔÊÇÒ»¶Î×Ö½ÚÁ÷£¬Ò»¸öÍêÕûµÄÏûÏ¢¿ÉÒÔ°üº¬¶à¸öFrame£¬³ÆÎªMultipart Message¡£»ùÓÚÕâÖÖÌØµã£¬ÔÚDMS¶¨ÒåЭÒ飬¿ÉÒÔ½«ÄÚÈݲð·ÖΪ²»Í¬µÄ»ù±¾µ¥Ôª£¬Ã¿¸öµ¥ÔªÓÃÒ»¸öFrameÃèÊö£¬Í¨¹ýµ¥Ôª×éºÏ±íʾ²»Í¬µÄº¬Òå¡£ÕâÓ봫ͳ·½Ê½£ºÒ»ÌõЭÒé¾ÍÊÇÒ»¸ö½á¹¹Ì壬²»Í¬µ¥Ôª×éºÏÐèÒª¶¨ÒåΪһ¸ö½á¹¹ÌåµÄ·½Ê½Ïà±È¸ü¼ÓÁé»î¡£

ÏÂÃæÀ´¿´¿´DMS ProtocolµÄ»ù±¾×é³É¡£Ê×Ö¡Ò»¶¨ÊǶԶËID¡£¶Ô¶Ë½ÓÊÕºóÒ²Ò»¶¨»á»ñÈ¡ÐÅÏ¢·¢ËͶ˵ÄID¡£µÚ¶þÖ¡°üº¬DMS¿ØÖÆÐÅÏ¢¡£µÚÈý¡¢µÚËÄÖ¡µÈÈ«²¿ÊÇÒµÎñ×Ô¶¨ÒåµÄ´«ÊäÐÅÏ¢£¬½ö¶ÔREQ-REPÓÐЧ£º

PIDFÓÐÁ½²ãº¬Ò壺ËùÔÚ·þÎñ¼¯ÈºµÄ±ê¼Ç£¬×ÔÉíµÄʵÀý±ê¼Ç¡£ÕâЩ±ê¼ÇÓëService Discovery¹ØÓÚ½ÚµãkeyµÄ¶¨Òå±£³ÖÒ»Ö£¬ÓÐÁ½ÖÖÐÎʽ ×Ö·û´® Óë ÕûÐÍ£¬Ç°Õ߿ɶÁ·½±ãÀí½â£¬ºóÕßÊÇǰÕßµÄHash£¬Ìá¸ß´«ÊäЧÂÊ¡£Ê¹ÓÃα´úÂëÀ´ÃèÊöPIDF£¬´ó¸ÅÊÇÏÂÃæµÄÑù×Ó£º

PIDFÖÐµÄ ClusterID ºÍ InstanceID ¸÷ÖÖȡֵ£¬»áÓв»Í¬µÄͨÐÅÐÐΪ£º

ÔÚÁ¬½ÓÊ״ν¨Á¢Ê±£¬»¹ÐèÒª½«¿É¶ÁµÄ·þÎñ·¾¶´«Ê䏸¶Ô¶Ë£º

ЭÒéÃüÁî×Ö

DMSЭÒéÈ«²¿ÔÚÿ¸öÏûÏ¢µÄµÚ¶þÖ¡¼´Control FrameÖÐʵÏÖ¡£ÃüÁî×Ö¶¨ÒåΪ£º

ͨÐÅÁ÷³Ì¡ª¡ª½¨Á¢Á¬½Ó

ͨ¹ýService DiscoveryÕÒµ½serverºó²»ÒªÁ¢¼´Á¬½Ó£¬¶øÊÇ·¢ËÍ̽²â°ü¡£Ô­ÒòÓÐÒÔϼ¸µã£º

a. ·þÎñ·¢ÏÖËäÈ»¿ÉÒÔ·´Ó³½ÚµãÊÇ·ñ´æ»î£¬µ«Ò»°ãÓÐÑÓ³Ù£¬ËùÒÔ´Ó·þÎñ·¢ÏÖ»ñÈ¡µÄ½Úµã½ö½öÊǺòÑ¡½Úµã¡£

b. ÍøÂçµ×²ã»úÖÆ²îÒì½Ï´ó£¬ÓÐЩ»ùÓÚÁ¬½Ó£¬±ÈÈçraw socket£¬ÓÐЩûÓÐÁ¬½Ó£¬±ÈÈçshared memory¡£×îºÃÔڸ߲ãЭÒéÖнâ¾öÁ¬½ÓÊÇ·ñ³É¹¦¡£Õâ¾ÍºÃ±ÈÉùÄÉ£¬Í¶Ê¯ÎÊ·£¬ÓлØÓ¦ËµÃ÷¿ÉÒÔÁ¬½Ó£¬Ã»ÓлØÓ¦ËµÃ÷ĿǰÁ¬½Ó²»¿ÉÓá£

ͨÐÅÁ÷³Ì¡ª¡ªÒµÎñÏûÏ¢·¢ËÍ

a. ÆÕͨÏûÏ¢£ºÈôPIDF±íʾ¶Ô¶ËʵÀýºÍµ±Ç°½ø³ÌÖ±½ÓÁ¬½Ó£¬ÄÇô·¢ËÍÏûÏ¢£»

b. ·ÓÉÏûÏ¢£ºÈôPIDF±íʾ¶Ô¶ËʵÀýºÍµ±Ç°½ø³ÌûÓÐÖ±½ÓÁ¬½Ó£¬ÄÇô¿ÉÒÔͨ¹ýÖ±Á¬µÄʵÀýת·¢¡£Â·ÓÉ»úÖÆ ºóÎÄ»á½éÉÜ£»

c. ¹ã²¥ÏûÏ¢£ºÈôPIDFInstanceIDΪ¸ºÊý£¬ÔòÏòÖ¸¶¨¼¯ÈºÄÚËùÓÐʵÀý¹ã²¥¡£

·Óɺ͹㲥ÊÇ¿ÉÒÔ»ìºÏʹÓõġ£ÉÏÊö¹ý³ÌDMS×Ô¶¯Íê³É£¬ÒµÎñ²»±Ø²ÎÓ룬µ«¿ÉÒԽػñ¸ÉÔ¤¡£

ͨÐÅÁ÷³Ì¡ª¡ª±£»î»úÖÆ

½¨Á¢Á¬½Óºó£¬ÇëÇóÕß»á³ÖÐø°´ÕÕ×Ô¼ºµÄ¼ä¸ôÏò·þÎñÕß·¢ËÍ̽²â°ü¡£Èç¹ûÇëÇóÕßÁ¬ÐøÈô¸É´ÎûÓÐÊÕµ½·þÎñÕßµÄPONG»Ø°ü£¬ÔòÇëÇóÕßÈÏΪÓë·þÎñÕßµÄÁ¬½ÓÒѾ­¶Ï¿ª¡£

Èç¹û·þÎñÕßÊÕµ½ÇëÇóÕßµÄÈκÎÊý¾Ý°ü£¬ÈÏΪÇëÇóÕß´æ»î£¬Èç¹û³¬³öÒ»¶¨Ê±¼äûÓÐÊÕµ½£¨º¬PING£©£¬ÔòÈÏΪÇëÇóÕßµôÏß¡£Õâ¸ö³¬Ê±Ê±¼ä°üº¬ÔÚREADYЭÒéÖУ¬ÓÉÇëÇóÕ߸æÖª·þÎñÕß¡£

ͨÐÅÁ÷³Ì¡ª¡ªÁ¬½Ó¶Ï¿ª

ÈκÎÒ»·½ÊÕµ½DISCONNECTºó£¬¼´ÈÏΪ¶Ô·½Ö÷¶¯¶Ï¿ªÁ¬½Ó£¬²»ÒªÔÙÖ÷¶¯Ïò¶Ô·½½øÐÐÈκÎÐÎʽµÄͨÐÅ¡£

3.3.3 DMS Kernel

ÏÂÃæ½éÉÜ DMS Kernel ÈçºÎ¸ù¾Ý DMS Protocol ʵÏÖÏà¹ØÂß¼­£¬²¢ÈçºÎÓëÒµÎñ½»»¥¡£

SERVICE MANAGER

a. self È·¶¨×ÔÉí ·þÎñ·¾¶£¬ÊµÏÖ·þÎñ×¢²á£¬ÒÔ¼°ÓëÄ¿±êͨÐÅÁ´Â·µÄ×¢²á£¬¹©Â·ÓɱíʹÓÃ

b. targets »ñÈ¡²¢¼à¿ØÄ¿±ê·þÎñµÄÊý¾ÝÒÔ¼°ÔËÐÐ״̬

c. ACL ·ÃÎÊ¿ØÖƹÜÀí

d. ¶Ô·þÎñ·¢ÏÖ²ã½Ó¿Ú½øÐзâ×°£¬²»Í¬µÄ SERVICE DISCOVERY ¹¦ÄÜ¿ÉÄÜÓÐËù²»Í¬

ROUTER MANAGER

ÿ¸ö·þÎñʵÀýÔÚÖ÷¶¯³É¹¦Á¬½Ó¶Ô¶Ë·þÎñºó£¬Í¨¹ý SERVICE MANAGER ½«Á¬½ÓÒԱߵÄÐÎʽдÈëµ½ SERVICE DISCOVERY ÖУ¬ÕâÑù¾Í»áÒÔ ÁÚ½Ó±ß µÄÐÎʽÉú³ÉÒ»ÕÅÍêÕûµÄͼ½á¹¹£¬Ò²¾ÍÊÇrouting table¡£±ÈÈç: Service 1 ºÍ Service 2£¬Service 3£¬Service 4 ¾ùÓÐÁ¬½Ó£¬ÄÇô½«±ß(1,2)£¬(1,3)£¬(1,4) ¼Ç¼ÏÂÀ´¡£SERVICE DISCOVERY ¹ØÓÚ·ÓÉÁÚ½ÓÁ´±íµÄ¼Ç¼¿ÉÒÔʹÓù«¹²µÄkey£¬±ÈÈç: /AppID/Area/Platform/routing_table ¡£È»ºóËùÓеķþÎñʵÀý¶¼¿ÉÒÔ¸üС¢·ÃÎʸ÷¾¶ÒÔ±ã»ñµÃһֵķÓÉ±í¡£»ù´¡¹¦ÄÜÓÐÁ½¸ö£º

a. Updater ÓÃÓÚÏò·ÓɱíÖÐÌí¼Ó±ß£¬É¾³ý±ß£¬ÉèÖñߵÄÊôÐÔ£¨±ÈÈçÈ¨ÖØ£©£¬²¢¶Ô±ßµÄ±ä»¯½øÐÐ¼à¿Ø

b. Calculator ¸ù¾ÝÁÚ½Ó±ßÐÎ³ÉµÄ Í¼½á¹¹ ¼ÆËã·ÓÉ£¬³ö·¢µãÊǵ±Ç°ÊµÀý£¬¸ø¶¨Ä¿±êµãÅжÏÄ¿±êÊÇ·ñ¿É´ï£¬Èç¹û¿É´ïÈ·¶¨Â·¾¶²¢´«Ê䏸ÏÂÒ»¸ö½Úµãת·¢¡£Ä¬ÈÏÑ¡Ôñ Dijkstra Ëã·¨£¬ÒµÎñ¿ÉÒÔ¶¨ÖÆ¡£

CONNECTION MANAGER

¹ÜÀí Frontends ¼´Ç°¶ËÇëÇó½øÈëµÄÁ¬½Ó£¬ºÍ Backends ¼´Ïòºó¶ËÖ÷¶¯·¢ÆðµÄÁ¬½Ó¡£BackendsµÄÄ¿±êÀ´Ô´ÓÚ Service Manager¡£

a. Sentinel ¶Ôǰ¶Ë·¢ÆðµÄÁ¬½Ó£¬Í¨¹ý READY ЭÒ飬¿ÉÒÔ»ñÈ¡¸ÃÁ¬½ÓµÄʧ»î±ê×¼£¬²¢Í¨¹ýǰ¶ËÖ÷¶¯°üÀ´ÅжϽøÈëÁ¬½ÓÊÇ·ñ´æ»î¡£Èç¹ûʧ»î£¬½«¸ÃÁ¬½ÓÖÃΪ¶Ï¿ª×´Ì¬£¬²»ÔÙÏò¶ÔӦǰ¶ËÖ÷¶¯·¢°ü¡£

b. Prober ¶Ôºó¶Ë·þÎñ½øÐÐÁ¬½Ó½¨Á¢ºÍÁ¬½Ó±£»î¡£

c. Dispatcher ÏûÏ¢·¢ËÍʱÓÃÓÚÈ·¶¨Í¨ÐŶԶËʵÀý¡£Á¬½ÓÊÇ»ùÓÚʵÀýµÄ£¬µ«ÊÇÒµÎñÒ»°ã¶¼ÊÇÃæÏò·þÎñ¼¯ÈºµÄ£¬ËùÒÔDispathcer ÐèҪʵÏÖÒ»¶¨µÄ·ÖÅä»úÖÆ£¬½«ÏûϢת·¢¸ø ·þÎñ¼¯ÈºÖеÄij¸ö ¾ßÌåʵÀý ¡£×¢ÒâÕâÀï½öÖ»´æÔÚÖ±½ÓÁ¬½ÓµÄµ¥²¥¡£·ÖÅäʱӦ¿¼ÂÇ ¸ºÔؾùºâ ĬÈÏʹÓÃÒ»ÖÂÐÔ¹þÏ£Ëã·¨£¬ÒµÎñÍêÈ«¿ÉÒÔ¸ù¾Ý¾ßÌåÓ¦Óó¡¾°×Ô¶¨Òå¡£

3.3.4 DMS Interface

DMS API ÊÇDMS¶ÔÒµÎñÌṩµÄ·þÎñ½Ó¿Ú£¬¿ÉÒÔ¹ÜÀí·þÎñ¡¢Í¨ÐŵȻù±¾¹¦ÄÜ£»

DMS APP Interface ÊÇDMSÒªÇóÒµÎñ±ØÐëʵÏֵĽӿڱÈÈ磺Dispatcher µÄ¸ºÔؾùºâ²ßÂÔ£¬¶Ô¶Ë·þÎñ״̬±ä»¯Í¨Öª£¬ÒÔ¼°ÒµÎñ×Ô¶¨Òå ·ÓÉËã·¨ µÈµÈ¡£

3.4 Ó¦Óó¡¾°

ÏÂÃæÂÞÁÐDMSÈý´óÀàµäÐÍÓ¦Óó¡¾°£¬ÆäËü³¡¾°Ó¦¸Ã¿ÉÒÔͨ¹ýÕâÈý¸öÀý×Ó×éºÏʵÏÖ£º

ÎÞBrokerͨÐÅ

×î»ù´¡µÄͨÐÅ·½Ê½¡ª¡ªÁ½¸ö¼¯ÈºÖ®¼äµÄ Instance È«Á¬½Ó£¬ÊʺϷþÎñÊýÁ¿²»¶à¡¢Âß¼­²»¸´Ôӵļòµ¥ÒµÎñ¡£

BrokerͨÐÅ

¶ÔÓÚÒ»¸öÄÚ²¿¾ÛºÏµÄ×Óϵͳ£¬¿ÉÄܰüº¬N¸ö·þÎñ£¬ÕâЩ·þÎñÖ®¼äÏ໥´æÔÚ½ÏÇ¿µÄ½»»¥ÐÐΪ¡£Èç¹ûʹÓÃÎÞBrokerģʽ¿ÉÄÜÓÐÁ½¸öÎÊÌ⣺Á´Â·¹ý¶à£ºÍ¨ÐŲãµÄÄÚ´æÕ¼Óýϴó£»ÔËάά»¤À§ÄÑ£»·þÎñûÓнâñֱ½ÓÒÀÀµÓڶԶ˵ĴæÔÚ£»

ÕâʱBroker¼¯Èº¿ÉÒԳе£ÏûÏ¢ÖÐתµÄ×÷Ó㬶øÇÒ¿ÉÒÔÍê³ÉһЩ¼¯ÖÐʽÂß¼­´¦Àí¡£×¢ÒâÕâÀïBrokerÖ»ÊÇÒ»¸öÃû×Ö£¬Í¨¹ý DMS Library ¿ÉÒÔÖ±½ÓʵÏÖ¡£

Broker¼¶ÁªÍ¨ÐÅ

¶à¸ö×ÓϵͳÏ໥ͨÐÅ£¬¹À¼ÆÃ»ÓÐÉè¼ÆÕßÔ¸Òâ°ÑÄÚ²¿Ï¸½ÚÍêÈ«±©Â¶¸ø¶Ô·½£¬ÕâʱÁ½¸öBroker¼¯Èº¾ÍÏ൱ÓÚÃÅ»§£ºÊ×ÏÈ¿ÉÒÔʵÏÖÄÚ²¿×ÓϵͳÏ໥ͨÐÅ£¬ÒÔ¼°¼¯ÖÐÂß¼­£»Æä´Î£¬¿ÉÒÔ×÷ΪËù´¦×ÓϵͳµÄ¶ÔÍâ½Ó¿Ú£¬ÆÁ±Îϸ½Ú¡£ÕâÑù²»Í¬×ÓϵͳֻÐèͨ¹ý¸÷×ÔµÄBroker¼¯Èº¶ÔÍâÌṩ·þÎñ¼´¿É¡£

×ܽá

±¾ÎÄÖ÷Òª½éÉÜÁË DMS µÄ¼¸¸ö»ù´¡½á¹¹£º·þÎñ·¢ÏÖ¡¢ÏûÏ¢Öмä¼þÒÔ¼°Í¨Ðżܹ¹¡£»ù±¾Ë¼ÏëÊÇ£º¿ò¼Ü·Ö²ã¡¢²ã¼¶Ö®¼ä½Ó¿ÚÇåÎú¶¨Ò壬ÒÔ±ãÔÚ²»Í¬³¡¾°ÏÂʹÓò»Í¬µÄ¾ßÌåʵÏÖ½øÐÐÌæ»»¡£ÆäÖÐ zookeeper£¬ZeroMQ Ö»ÊǾÙÀý˵Ã÷µ±Ç°µÄÒ»ÖÖʵÏÖ·½Ê½£¬ÔÚ²»Í¬³¡¾°Ï¿ÉÒÔÑ¡Ôñ²»Í¬×é¼þ£¬Ö»ÒªÂú×ã½Ó¿Ú¼´¿É¡£

   
1831 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù

×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

Ïà¹ØÎÄÕÂ


ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þ
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS

Ïà¹ØÅàѵ¿Î³Ì


ÃæÏòÓ¦Óõļܹ¹Éè¼ÆÊµ¼ù
µ¥Ôª²âÊÔ+ÖØ¹¹+Éè¼ÆÄ£Ê½
Èí¼þ¼Ü¹¹Ê¦¡ª¸ß¼¶Êµ¼ù
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù
SOAÌåϵ½á¹¹Êµ¼ù

³É¹¦°¸Àý


Èñ°²¿Æ¼¼ Èí¼þ¼Ü¹¹Éè¼Æ·½·¨
³É¶¼ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£Æû³µ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
±±¾© Èí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£ Èí¼þ¼Ü¹¹Éè¼Æ°¸ÀýÓëʵ¼ù
±±¾© ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ÉîÛÚ ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù