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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
KubeedgeʵÏÖÔ­Àí
 
×÷Õߣº ÀÁÖ
  2200  次浏览      27
2021-1-27
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁËÕûÌå¼Ü¹¹ÒÔ¼°KubeedgeʵÏÖÔ­Àí×îºó¶ÔKubeEdge½øÐÐÏê½â£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚ²©¿ÍÔ°£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­ÍƼö¡£

Kubeedge³ýÁËÔÚkubernetesµÄ·½Ãæ×öÁ˸÷ÖÖÒ첽ͨÐÅͨµÀ£¬±£ÕÏofflineºóµÄÒµÎñÁ¬ÐøÐÔÖ®Í⣻»¹¶¨ÒåÁËһϵÁеÄÉ豸³éÏó£¬ÓÃÀ´¹ÜÀí±ßÔµÉ豸¡£¶øÇÒ£¬Æäv1.0°æ±¾Õý³¯×űßÔµ¶Ë·þÎñÍø¸ñ£¬ÒÔ¼°º¯Êýʽ¼ÆËãµÈ·½Ïò·¢Õ¹¡£

¼Ü¹¹

ÕûÌå¼Ü¹¹Í¼±È½ÏÃ÷ÁË£¬ÔÚ²»¿¼ÂÇedgesiteµÄÇé¿öÏ£¬Æä¼Ü¹¹·ÖΪÁËÔÆ¶ËºÍ±ßÔµ¶Ë¡£Æäʵ¿ÉÒÔÀí½âΪkubernetesµÄ¹ÜÀí²àºÍkubelet½Úµã²à£¨¶ÔÓ¦edge¶Ë£©¡£µ«ÊÇÇë×¢Ò⣬ÕâÀïµÄ³¡¾°ÊDZßÔµ¼ÆË㣬Òâζ×Åedge¶ËµÄÍøÂç»·¾³ÄÑÒÔ±£ÕÏ¡£

ÔÆ±ßͨÐÅ

ÓÚÊǾÍÑÜÉú³öÁËcloud¶ËµÄcloud HubÓëedge¶ËµÄEdge Hub¡£ÕâÁ½¸öÄ£¿éÖ®¼äͨ¹ýwebsocket»òÕßquicͨÐÅ£¬Ï൱ÓÚ½¨Á¢ÁËÒ»Ìõµ×²ãͨÐÅËíµÀ£¬¹©k8sºÍÆäËûÓ¦ÓÃͨÐÅ¡£µ±È»£¬Ê¹ÓÃʲôЭÒéͨÐŲ»ÊÇÖØµã£¬ÖصãÊÇÈçºÎ±£Õϵ±×ÅÖ®¼äµÄÁ´Â·¶¼ÎÞ·¨±£ÕϵÄʱºò£¬ÒµÎñ²»Êܵ½Ó°Ï죬Õâ¾ÍÊÇMetaManagerµÄÒª½â¾öµÄÎÊÌâÁË¡£

CloudHubÇ°ÃæÌáµ½cloud¶ËµÄcloudHub¾ÍÊÇÒ»¸öËíµÀµÄserver¶Ë£¬ÓÃÓÚ´óÁ¿µÄedge¶Ë»ùÓÚwebsocket»òÕßquicЭÒéÁ¬½ÓÉÏÀ´£»Ã»´í£¬Õâ»õ²ÅÊÇÕý¶ù°Ë¾­µÄ¶þ´«ÊÖ£¬Ã¿Ìì¾Í¸ºÔðÀ­Æ¤Ìõ¡£

EdgeHubλÓÚedge¶ËÔËÐУ¬ÊÇËíµÀµÄclient¶Ë£¬¸ºÔ𽫽ÓÊÕµ½µÄÐÅϢת·¢µ½¸÷edge¶ËµÄÄ£¿é´¦Àí£»Í¬Ê±½«À´×Ô¸öedge¶ËÄ£¿éµÄÏûϢͨ¹ýËíµÀ·¢Ë͵½cloud¶Ë¡£

±ßÔµ¶Ë

MetaManagerMetaManagerÄ£¿éºó¶Ë¶ÔÓ¦Ò»¸ö±¾µØµÄÊý¾Ý¿â£¨sqlLite£©£¬ËùÓÐÆäËûÄ£¿éÐèÒªÓëcloud¶ËͨÐŵÄÄÚÈݶ¼»á±»±£´æµ½±¾µØDBÖÐÒ»·Ý£¬µ±ÐèÒª²éѯÊý¾Ýʱ£¬Èç¹û±¾µØDBÖдæÔÚ¸ÃÊý¾Ý£¬¾Í»á´Ó±¾µØ»ñÈ¡£¬ÕâÑù¾Í±ÜÃâÁËÓëcloud¶ËÖ®¼äƵ·±µÄÍøÂç½»»¥£»Í¬Ê±£¬ÔÚÍøÂçÖжϵÄÇé¿öÏ£¬±¾µØµÄ»º´æµÄÊý¾ÝÒ²Äܹ»±£ÕÏÆäÎȶ¨ÔËÐУ¨±ÈÈçÄãµÄÖÇÄÜÆû³µ½øÈ뵽ûÓÐÎÞÏßÐźŵÄËíµÀÖУ©£¬ÔÚͨÐŻָ´Ö®ºó£¬ÖØÐÂͬ²½Êý¾Ý¡£

Edged֮ǰÌáµ½¹ýkubernetesµÄkubelet£¬ËüÏ൱ÓÚk8sµÄºËÐÄ¡£Õâ¿éÆäʵ¼òµ¥×öÁËһЩ²Ã¼ô£¬È¥µôһЩÓò»ÉϵŦÄÜ£¬È»ºó¾Í³ÉΪEdgedÄ£¿é£¬¸ÃÄ£¿é¾ÍÊDZ£ÕÏcloud¶ËÏ·¢µÄpodÒÔ¼°Æä¶ÔÓ¦µÄ¸÷ÖÖÅäÖᢴ洢£¨ºóÐø»áÖ§³Öº¯Êýʽ¼ÆË㣩Äܹ»ÔÚedge¶ËÎȶ¨ÔËÐУ¬²¢ÔÚÒì³£Ö®ºóÌṩ×Ô¶¯¼ì²â¡¢¹ÊÕϻָ´µÈÄÜÁ¦¡£µ±È»£¬ÓÉÓÚk8s±¾ÉíÔËÐÐʱµÄ·¢Õ¹£¬¸ÃÄ£¿é¶ÔÓ¦Ö§³Ö¸÷ÖÖCRIÓ¦¸ÃÒ²±È½ÏÈÝÒס£

EventBus/ServiceBus/MappperÇ°Ãæ½²µ½µÄÄ£¿é¶¼Óëk8sÖ±½Ó»ò¼ä½ÓÏà¹Ø£¬½ÓÏÂÀ´ËµÏÂÓëÉ豸£¨»òÕßËµÕæÕýIOTÒµÎñ£©Ïà¹ØµÄÉ豸¹ÜÀí²à¡£ÍⲿÉ豸µÄ½ÓÈ뵱ǰ֧³ÖMQTTºÍRest-API£¬ÕâÀï·Ö±ð¶ÔÓ¦EventBusºÍServiceBus¡£EventBus¾ÍÊÇÒ»¸öMQTT brokerµÄ¿Í»§¶Ë£¬Ö÷Òª¹¦ÄÜÊǽ«edge¶Ë¸÷Ä£¿éͨÐŵÄmessageÓëÉ豸mapperÉϱ¨µ½MQTTµÄevent×öת»»µÄ×é¼þ£»¶øServiceBus¾ÍÊǶÔÓ¦µ±ÍⲿÊÇRest-API½ÓÈëʱµÄת»»×é¼þ¡£Ëµµ½ÕâÀ¾ÍÓбØÒªÌáÒ»ÏÂMQTT broker£¬Æäʵ¸ã»¥ÁªÍøµÄ»ù±¾¶¼ÓùýÀàËÆÓÚrabbitmq¡¢activeMQÖ®ÀàµÄÏûÏ¢Öмä¼þ£¬ÆäʵËûÃǾÍÖ§³ÖMQTTЭÒéÀ²£¨¿ÉÒÔÀí½âΪAMQPµÄ¾«¼ò°æ£©¡£IOTµÄ¸÷ÖÖÉ豸¿ÉÄÜÖ±½ÓÖ§³ÖMQTT£¬µ«ÓеÄÖ»Ö§³ÖÀ¶ÑÀ»òÕ߯äËû½ü³¡Í¨ÐŵÄЭÒ顣û¹ØÏµ£¬Mappper¿ÉÒÔʵÏÖ½«¸÷ÖÖЭÒéת»»Îª¶ÔMQTTµÄ¶©ÔÄÓë·¢²¼£¬´Ó¶øÊµÏÖÓëedge¶ËµÄͨÐÅ¡£µ±È»£¬ServiceBus¶ÔÓ¦¾ÍÊÊÓÃÓÚÖ§³ÖhttpЭÒéµÄ·þÎñÁË¡£

DeviceTwinedge¶Ë×îºó¾ÍÊ£ÏÂÒ»¸öDeviceTwinÄ£¿éÁË£¬ÒªÀí½âÕâ¸öÃû´Ê£¬¾ÍµÃÌáÒ»ÏÂÊý×ÖÂÏÉúÕâ¸ö¸ÅÄî¡£ÕâÀïÀ´¿Æ»Ãһϣ¬¼ÙÉèÈËÀàҪʵÏÖǬÀ¤´óÅ²ÒÆ£¬µ«ÊÇÓеãÄѶȵÄÊÇ£¬ÕâÏÂÊÇÒª°ÑÄãÒÆµ½»ðÐÇÉÏ¡£Ôõô°ì£¿ÕâÀïÓÐÒ»¸ö½â¾ö·½°¸£ºÔÚµØÇòÉÏͨ¹ýɨÃèÄãµÄËùÓÐÉúÎïÐÅÏ¢£¬Éú³ÉÓµÓÐÄãÍêÕûÉúÎïÌØÕ÷µÄÊý¾Ý°üÖ®ºó£¬È»ºóÔÚµØÇòÉϾͰÑÄã»ÙÃðÁË¡£ÔÙ½«ÃèÊöÄãÍêÕûÐÅÏ¢µÄÊý¾Ý°üͨ¹ýµç²¨¹âËÙ·¢Ë͵½»ðÐÇÉÏ£¬ÈûðÐǵÄÉ豸ÔÙʹÓýÓÊÕµ½µÄÉúÎïÌØÕ÷Ôì³öÒ»¸öÄã¡£ÊDz»ÊÇͦ¿ÉÐУ¡_ »Ø¹ýÍ·À´£¬ÎÒÃÇҪ˵µÄÊý×ÖÂÏÉú¾ÍÊÇÄǸöÓÃÀ´´«Êäµ½»ðÐǵÄÓÃÓÚÃèÊöÄãËùÓÐÉúÎïÌØÕ÷µÄÊý¾Ý°ü£»µ±È»£¬ÕâÀï¶ÔÓ¦¾ÍÊǽÓÈëÉ豸ÐÅÏ¢¡£ËùÒÔ£¬DeviceTwin¾ÍÊǽ«ÕâЩÐÅÏ¢±£´æµ½±¾µØDBÖУ¬²¢´¦Àí»ùÓÚcloud¶ËµÄ²Ù×÷À´ÐÞ¸ÄdeviceµÄijЩÊôÐÔ£¨Ò²¾ÍÊDzÙ×÷É豸£©£»Í¬Ê±£¬½«É豸»ùÓÚeventBusÉϱ¨µÄ״̬ÐÅϢͬ²½µ½±¾µØDBºÍcloud¶ËµÄÖмäÈË¡£

ÔÆ¶Ë

Controller

È»ºóÔÙ˵controller£¬Æäʵ׼ȷµÄ˵controllerÊǰüÀ¨ÁËÓÃÓÚedge¶ËÓëAPI-Serverͬ²½ÐÅÏ¢µÄedgeControllerÓëÓÃÓÚDeviceTwinÓëAPI-Serverͬ²½device CRDÐÅÏ¢µÄdeviceController×é³É¡£ÕâÁ½¸öÄ£¿éÏà¶ÔÒ²±È½Ï¼òµ¥£¬ºóÃæ¾ßÌå½²½â¡£

¸÷¸öÄ£¿éʵÏÖ

±ßÔµ¶Ë

Èë¿ÚÓëbeehive

beehiveÄ£¿éÔÚÕû¸ökubeedgeÖаçÑÝÁ˷dz£ÖØÒªµÄ×÷Óã¬ËüʵÏÖÁËÒ»Ì×Module¹ÜÀíµÄ½Ó¿Ú£¬³ÌÐòÖи÷¸öÄ£¿éµÄÆô¶¯¡¢ÔËÐС¢Ä£¿é¼äµÄͨÐŵȶ¼ÊÇÓÉÆäͳһ·â×°¹ÜÀí¡£ÏÂͼÊÇkubeedgeµÄedge¶Ë´úÂëµÄmainÆô¶¯Á÷³Ì£¬ÕâÀïÉæ¼°µ½µÄmodules¾ÍÊÇÓÉbeehiveÌṩ¡£

¿ÉÒÔ¿´µ½£¬ÔÚ³õʼ»¯µÄʱºò£¬·Ö±ð¼ÓÔØÁ˸÷¸öedge¶ËmodulesµÄinitº¯Êý£¬ÓÃÀ´×¢²áÆämodulesµ½heehive¿ò¼ÜÖС£È»ºóÔÚcore.RunÖбéÀúÆô¶¯£¨StartModules£©¡£

ÁíÍ⣬ֵµÃÌá¼°µÄÊÇ£¬ÓÃÓÚÄ£¿é¼äͨÐÅ£¬·¢ËÍmessageµ½group/moduleµÄ¹¦ÄÜ£¬ÔÚbeehiveÖУ¬ÆäʵÊÇͨ¹ýchannelÀ´Í¨Ðŵġ£ÕâÒ²ÊÇgolangÍÆ¼öµÄgoroutine¼äͨÐŵķ½Ê½¡£

EdgeHub

ÖØµãÊÇÆô¶¯ÁËÁ½¸ögo routine£¬ÓÃÀ´ÊµÏÖÍùÁ½¸ö·½ÏòµÄÏûÏ¢½ÓÊպͷַ¢¡£ÕâÀïgo ehc.routeToEdge¶ÔÓ¦´ÓËíµÀ¶Ëµã½ÓÊÕcloud¶Ë·¢Íùedge¶ËµÄÏûÏ¢£¬È»ºóµ÷ÓÃehc.dispatch½âÎö³öÏûÏ¢µÄÄ¿±êmodule²¢»ùÓÚheehiveÄ£¿émodule¼äÏûÏ¢µÄͨÐÅ»úÖÆÀ´×ª·¢³öÈ¥¡£

ͬÀí£¬go ehc.routeToCloudʵÏÖ½«edge¶ËÏûÏ¢»ùÓÚËíµÀת·¢µ½cloud¶ËµÄcloudHubÄ£¿é´¦Àí¡£µ±È»£¬¸ÃÄ£¿éÖÐʵÏÖÁ˶Ôͬ²½ÏûÏ¢µÄresponseµÈµ½³¬Ê±´¦ÀíµÄÂß¼­£¬µ±ÔÚδ³¬Ê±ÆÚ¼äÊÕµ½responseÏûÏ¢£¬»áת·¢µ½ÏûÏ¢·¢ËͶËÄ£¿é¡£±È½Ï±©Á¦µÄÊÇ£¬Ò»µ©·¢ËÍÏûÏ¢µ½cloudʧ°Ü£¬¸Ãgoroutine»áÍ˳ö£¬Í¨ÖªËùÓÐÄ£¿é£¬µ±Ç°Óëcloud¶ËÊÇδÁ¬½Ó״̬£¬È»ºóÖØÐ·¢ÆðÁ¬½Ó¡£

metaManagerÔÚÓëcloudµÄÁ¬½Ó¶Ï¿ªÆÚ¼ä£¬»áʹÓñ¾µØDBÖеÄÊý¾Ý£¬²»»á·¢ÆðÍùcloud¶ËµÄ²éѯ¡£

Edged

Õâ¿é»ù±¾Êǵ÷ÓÃkubeletµÄ´úÂ룬ʵÏֽ϶àµÄÊÇÆô¶¯Á÷³Ì¡£ÁíÍ⣬½«Ö®Ç°kubeletµÄclient×÷ΪfakeµÄ¼Ù½Ó¿Ú£¬×ª¶ø½«Êý¾Ý¶¼Í¨¹ýmetaClientÀ´´æ´¢Êý¾Ýµ½metaManager£¬´Ó¶ø´úÀí֮ǰֱ½Ó·ÃÎÊapi-serverµÄ²Ù×÷¡£Õâ¿éµÄѧϰ¿ÉÒԲο¼Ö®Ç°·ÖÎökubelet¼Ü¹¹µÄһƪÎÄÕÂKubeletÔ´Âë¼Ü¹¹¼ò½é¡£

ÕâÀï²îÒ컯µÄÒ»¿é´úÂëÔÚe.syncPodµÄʵÏÖ£¬Í¨¹ý¶ÁÈ¡metaManagerºÍEdgeControllerµÄpodÈÎÎñÁÐ±í£¬À´Ö´ÐжԱ¾µØpodµÄ²Ù×÷¡£Í¬Ê±£¬ÕâЩpod¹ØÁªµÄconfigmapºÍsecretÒ²»áËæ×Å´¦ÀípodµÄ¹ý³Ì¶øÒ»²¢´¦Àí¡£¶ÔpodµÄ²Ù×÷Ò²ÊÇ»ùÓÚÒ»¸ö²Ù×÷Àà±ðµÄqueue£¬±ÈÈçe.podAddWorkerRun¾ÍÆô¶¯ÁËÒ»¸öÓÃÓÚÏû·ÑÌí¼ÓpodµÄqueueµÄgoroutine¡£ÍⲿµÄ·â×°»ù±¾¾ÍÕâÑù£¬ÄÚ²¿Íêȫͨ¹ýÒýÓÃkubeletÔ­ÉúµÄ°üÀ´´¦Àí¡£

MetaManager

´Ó´úÂë¼Ü¹¹¿´ÆðÀ´£¬¸ÃÄ£¿é±È½Ï¼òµ¥£¬Ê×ÏÈÔÚÍâ²ã°´ÕÕÒ»¶¨ÖÜÆÚ¸ø×Ô¼º·¢ËÍÏûÏ¢£¬´¥·¢¶¨Ê±Í¬²½pod״̬µ½cloud¶Ë¡£ÁíÍ⣬ÔÚmainLoopÖÐÆô¶¯Ò»¸ö¶ÀÁ¢µÄgoroutine½ÓÊÕÍⲿÏûÏ¢£¬²¢Ö´Ðд¦ÀíÂß¼­¡£

´¦ÀíÂß¼­»ùÓÚÏûÏ¢ÀàÐÍ·ÖÀ࣬·Ö±ð°üÀ¨£º

cloud¶Ë·¢ÆðµÄÔö¡¢É¾¡¢²é¡¢¸Ä

edge¶ËÄ£¿é·¢ÆðµÄ²éѯÇëÇó£¨Ç°ÃæÌáµ½£¬µ±×´Ì¬ÎªdisconnectµÄʱºò²»·¢Æðremote²éѯ£©

cloud¶Ë·µ»ØµÄ²éѯÏìÓ¦µÄ½á¹û

edgeHub·¢À´µÄÓÃÓÚ¸üÐÂÓëcloudHub¼ûÁ¬½Ó״̬µÄÏûÏ¢

×Ô¼º¸ø×Ô¼º·¢Ë͵쬶¨ÆÚͬ²½edge¶Ëpod״̬µ½cloud¶ËµÄÏûÏ¢

º¯Êýʽ¼ÆËãÏà¹ØµÄÏûÏ¢

ÖØµãÀ´ËµÔöɾ²é¸Ä£¬ÄÃÌí¼Ó¾ÙÀý¡£µ±½ÓÊÕµ½ÒªÌí¼Óij¸ö×ÊԴʱ£¬»á½«×ÊÔ´½âÎö³öÀ´£¬×éÖ¯³ÉΪkey¡¢type¡¢valueµÄÈýÔª×飬ÒÔÒ»ÖÖÀàËÆÓÚÄ£ÄâNoSQLµÄ·½Ê½±£´æµ½±¾µØµÄSqlLiteÊý¾Ý¿âÖС£ÕâÑù±£´æµÄÄ¿µÄÒ²ÊÇΪÁË·½±ã¿ìËÙ¼ìË÷ºÍÔöɾ¡£±£´æÍêÖ®ºó£¬ÐèÒª¶ÔÓ¦·¢ËÍresponseÏûÏ¢µ½ÇëÇóÏûÏ¢µÄÔ´Ä£¿é¡£

EventBusÓëServiceBus

EventBus

eventBusÓÃÓÚ¶Ô½ÓMQTT BrokerÓëbeehive£¬MQTT brokerÓм¸ÖÖÆô¶¯Ä£Ê½£¬´Ó´úÂëʵÏֵĽǶȷÖΪ£º

1.ʹÓÃÄÚǶMQTT broker

2.ʹÓÃÍⲿMQTT broker

ÔÚÄÚǶMQTT brokerģʽÏ£¬eventBusÆô¶¯ÁËgolangʵÏÖµÄbroker°ügomqttÓÃÀ´×÷ΪÍⲿMQTTÉ豸µÄ½ÓÈ룬¾ßÌåÓ÷¨Çë²Î¿¼ÆägithubÏîÄ¿Ê×Ò³¡£Á½ÖÖģʽÏÂeventBus¶¼×öÁËһЩ¹²ÐԵIJÙ×÷£¬¾ßÌå°üÀ¨£º

1.Ïòbroker¶©ÔĹØ×¢µÄtopic£¬ÈçÏ£º

SubTopics = []string{

"$hw/events/upload/#",

"$hw/events/device/+/state/update",

"$hw/events/device/+/twin/+",

"$hw/events/node/+/membership/get",

"SYS/dis/upload_records",

}

2.µ±½ÓÊÕµ½¶ÔÓ¦µÄeventʱ£¬´¥·¢»Øµ÷º¯ÊýonSubscribe

3.»Øµ÷º¯ÊýÖУ¬¶Ôevent×öÁ˼òµ¥µÄ·ÖÀ࣬·Ö±ð·¢Ë͵½²»Í¬µÄÄ¿µÄµØ£¨DeviceTwin»òEventHub£©

ËùÓÐ $hw/events/device/+/twin/+ºÍ $hw/events/node/+/membership/gettopic µÄevent·¢Ë͵½DeviceTwin£¬ÆäËûµÄeventÖ±½Ó·¢Ë͵½EventHubÔÙͬ²½µ½Cloud¶Ë¡£

µ±È»£¬¸Ã²¿·ÖÒ²°üÀ¨ÁË´´½¨¿Í»§¶Ë£¬ÍùMQTT broker·¢²¼eventsµÄ½Ó¿Ú£¬ÕâÀï¾Í²»Õ¹¿ªÁË¡£

ServiceBus

ServiceBusÆô¶¯Ò»¸ögoroutineÀ´½ÓÊÜÀ´×ÔbeehiveµÄÏûÏ¢£¬È»ºó»ùÓÚÏûÏ¢ÖдøµÄ²ÎÊý£¬Í¨¹ýµ÷ÓÃhttp client½«ÏûϢͨ¹ýREST-API·¢Ë͵½±¾µØ127.0.0.1ÉϵÄÄ¿±êAPP¡£ÕâÏ൱ÓÚÒ»¸ö¿Í»§¶Ë£¬¶øAPPÊÇÒ»¸öhttp Rest-API server£¬ËùÓеIJÙ×÷ºÍÉ豸״̬¶¼ÐèÒª¿Í»§¶Ëµ÷ÓýӿÚÀ´Ï·¢ºÍ»ñÈ¡¡£

DeviceTwin

DeviceTwin°üº¬Ò»Ï¼¸¸ö²¿·ÖµÄ¹¦ÄÜ£º

Êý¾Ý´æ´¢·½Ã棬½«É豸Êý¾Ý´æ´¢µ½±¾µØ´æ´¢sqlLite£¬°üÀ¨ÈýÕÅ±í£ºdevice¡¢deviceAttrºÍdeviceTwin¡£

´¦ÀíÆäËûÄ£¿é·¢Ë͵½twin moduleµÄÏûÏ¢£¬È»ºóµ÷Óà dtc.distributeMsgÀ´´¦ÀíÏûÏ¢¡£ÔÚÏûÏ¢´¦ÀíÂß¼­ÀïÃæ£¬ÏûÏ¢±»·ÖΪÁËËĸöÀà±ð£¬²¢·Ö±ð·¢Ë͵½ÕâËĸöÀà±ðµÄactionÖ´Ðд¦Àí£¨Ã¿Ò»¸öÀà±ðÓÖ°üº¬¶à¸öaction£©£ºmembershipdevicecommunicationtwin

ÓÉÓÚÕâ¸ö²¿·ÖºÍÉ豸¸ü½ôÃÜÏà¹Ø£¬ÎªºÎÒª·Ö׿¸¸öÀà±ð£¬¶¼ÊÇÈçºÎ³éÏó£¬Õâ¿éµÄÀí½â·½Ã滹²»¹»Í¸³¹£¬ÎÒÃÇÔÝʱֻ¹Ø×¢ÆäÖ÷ÒµÎñÂß¼­£¬¹Ù·½Îĵµ¶ÔÕâ¿éÓбȽÏÏêϸµÄÃèÊödevicetwin¡£

ÔÆ¶Ë

Èë¿Ú

ÕâÀïÖØµã¹Ø×¢ÔÚinitÖмÓÔØÁËcloudHub¡¢controller£¨Ò²¾ÍÊÇedgeController£©ºÍdevicecontrollerÈý¸ö²¿·Ö¡£È»ºóºÍedge¶ËÒ»Ñù£¬¶¼ÊÇbeehiveµÄÌ×·£¬µ÷ÓÃStartModulesÀ´Æô¶¯ËùÓеÄÄ£¿é¡£

CloudHub

handler.WebSocketHandler.ServeEventÔÚwebsocket serverÉϽÓÊÕбßÔµnodeµÄÁ¬½Ó£¬È»ºóΪÐÂnode·ÖÅächannel queue¡£ÔÙ½øÒ»²½½«ÏûÏ¢½»¸ø¸ºÔðÄÚÈݶÁдµÄÂß¼­´¦Àí¡£

channelq.NewChannelEventQueueΪÿһ¸ö±ßÔµnodeά»¤ÁËÒ»¸ö¶ÔÓ¦µÄchannel queue£¨ÕâÀïĬÈÏÓÐ10¸öÏûÏ¢µÄ»º´æ£©£¬È»ºóµ÷ÓÃgo q.dispatchMessage À´½ÓÊÕÓÉcontroller·¢Ë͵½clouHubµÄÏûÏ¢£¬»ùÓÚÏûÏ¢ÄÚÈݽâÎöÆäÄ¿µÄnode£¬È»ºó½«ÏûÏ¢·¢Ë͵½node¶ÔÓ¦µÄchannelÅŶӴ¦Àí¡£

clouHubµÄºËÐÄÂß¼­°üÀ¨ÕâÁ½²¿·Ö£¬¶ÁºÍд£º

Ç°Ãæ½²µ½£¬ÐèÒª·¢Ë͵½±ßÔµnodeµÄÏûÏ¢»á·¢Ë͵½ÁËnode¶ÔÓ¦µÄchannel¶ÓÁÐÉÏ£¬ÕâÀïͨ¹ýhandler.WebSocketHandler.EventWriteLoopÔÚchannelÖжÁÈ¡µ½£¬²¢¸ºÔð»ùÓÚËíµÀ·¢ËÍ´¦Àí£¨ÕâÀïÒ²ºÜ¶àÅжϣ¬±ÈÈçÈç¹ûÕÒ²»µ½¶ÔÓ¦µÄnode½Úµã£¬»òÕ߸Ãnode½ÚµãΪoffline״̬µÈ¶¼»áÖÕÖ¹·¢ËÍ£©¡£

ÁíÒ»·½Ã棬handler.WebSocketHandler.EventReadLoopº¯Êý´ÓËíµÀÉ϶ÁÈ¡À´×ÔÓÚedge¶ËµÄÏûÏ¢£¬È»ºó½«ÏûÏ¢·¢Ë͵½controllerÄ£¿é´¦Àí£¨Èç¹ûÊÇkeepaliveµÄÐÄÌøÏûÏ¢Ö±½ÓºöÂÔ£©¡£

Èç¹ûcloudHubÍùnode·¢ËÍÏûϢʧ°Ü£¬¾Í»á´¥·¢EventHandlerµÄCancelNode²Ù×÷£»Èç¹û½áºÏedgeHub¶ËµÄÐÐΪµÄ»°£¬ÎÒÃÇÖªµÀedgeHub»áÖØÐ·¢Æðµ½cloud¶ËµÄÐÂÁ¬½Ó£¬È»ºóÖØÐÂ×ßÒ»±éͬ²½Á÷³Ì¡£

Controller£¨EdgeController£©

controllerµÄºËÐÄÂß¼­ÊÇupstreamºÍdownstream¡£

upstream½ÓÊÕÓÉbeehive·¢Ë͵½controllerµÄÏûÏ¢£¬È»ºó»ùÓÚÏûÏ¢×ÊÔ´ÀàÐÍ£¬Í¨¹ýgo uc.dispatchMessageת·¢µ½²»Í¬µÄµÄgoroutine´¦Àí¡£ÕâÀï°üÀ¨nodeStatus¡¢podStatus¡¢queryConfigMap¡¢querySecret¡¢queryService¡¢queryEndpointsµÈ£»¸÷ÖÖÀà±ðµÄ²Ù×÷¶¼Êǵ÷ÓÃk8sµÄclient´úÂëÀ´½«½Úµã״̬дµ½API-Server¡£

downstreamͨ¹ýµ÷ÓÃk8s client´úÂëÀ´¼àÌý¸÷×ÊÔ´µÄ±ä»¯Çé¿ö£¬±ÈÈç¶ÔÓÚpodÊÇͨ¹ý dc.podManager.EventsÀ´¶ÁÈ¡ÏûÏ¢£¬È»ºóµ÷ÓÃdc.messageLayer.Send½«ÏûÏ¢·¢Ë͵½edge¶Ë´¦Àí¡£ÕâÀïҲͬupstream£¬°üÀ¨pod¡¢configmap¡¢secret¡¢nodes¡¢servicesºÍendpointsÕâЩ×ÊÔ´¡£

DeviceController

deviceControllerͬedgeController£¬Ö»ÊÇÆä¹ØÐĵÄ×ÊÔ´²»ÔÙÊÇk8sµÄworkloadµÄ×Ó×ÊÔ´£¬¶øÊÇΪdevice¶¨ÒåµÄCRD£¬°üÀ¨£ºdeviceºÍdeviceModel¡£ÓÉÓÚÖ÷ÒªÂß¼­¶¼Í¨edgeControler£¬ÕâÀï²»ÔÙ×öÏêϸ½éÉÜ¡£

 

   
2200 ´Îä¯ÀÀ       27
????

HTTP????
nginx??????
SD-WAN???
5G?????
 
????

??????????
IPv6???????
??????????
???????
????

????????
????????
???????????????
??????????
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
ÔÆÔ­Éú¼Ü¹¹¸ÅÊö
K8S¸ß¿ÉÓü¯Èº¼Ü¹¹ÊµÏÖ
ÈÝÆ÷ÔÆ¹ÜÀíÖ®K8S¼¯Èº¸ÅÊö
k8s-ÕûÌå¸ÅÊöºÍ¼Ü¹¹
Ê®·ÖÖÓѧ»áÓÃdocker²¿Êð΢·þÎñ
×îпγÌ
ÔÆ¼ÆË㡢΢·þÎñÓë·Ö²¼Ê½¼Ü¹¹
Æóҵ˽ÓÐÔÆÔ­ÀíÓë¹¹½¨
»ùÓÚKubernetesµÄDevOpsʵ¼ù
ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦Ó㨰¢ÀïÔÆ£©
Docker²¿Êð±»²âϵͳÓë×Ô¶¯»¯¿ò¼Üʵ¼ù
³É¹¦°¸Àý
±±¾© ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ùÅàѵ
ij¾ü¹¤Ñо¿µ¥Î» MDA£¨Ä£ÐÍÇý¶¯¼Ü¹¹£©
ÖªÃûÏû·Ñ½ðÈÚ¹«Ë¾ ÁìÓòÇý¶¯Éè¼Æ
ÉîÛÚijÆû³µÆóÒµ Ä£ÐÍÇý¶¯µÄ·ÖÎöÉè¼Æ