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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÊÖ°ÑÊÖ½ÌÄãÓÃSpring CloudºÍDocker¹¹½¨Î¢·þÎñ
 
 À´Ô´;dockone ·¢²¼ÓÚ 2016-10-17
  2422  次浏览      28
 

ʲôÊÇSpring Cloud?

Spring Cloud ÊÇPivotalÌṩµÄÓÃÓÚ¼ò»¯·Ö²¼Ê½ÏµÍ³¹¹½¨µÄ¹¤¾ß¼¯¡£Spring CloudÒýÈëÁËÔÆÆ½Ì¨Á¬½ÓÆ÷(Cloud Connector)ºÍ·þÎñÁ¬½ÓÆ÷(Service Connector)µÄ¸ÅÄî¡£ÔÆÆ½Ì¨Á¬½ÓÆ÷ÊÇÒ»¸ö½Ó¿Ú£¬ÐèÒªÓÉÔÆÆ½Ì¨ÌṩÕß½øÐÐʵÏÖ£¬ÒÔ±ã¿âÖÐµÄÆäËûÄ£¿é¿ÉÒÔÓë¸ÃÔÆÆ½Ì¨Ð­Í¬¹¤×÷¡£

Spring Boot

Spring Cloud×îÖØÒªµÄÒ»µãÊÇËü¿ÉÒÔºÍSpring BootÒ»Æð¹¤×÷£¬Spring Boot¿ÉÒÔ°ïÖú¿ª·¢Õ߸üÈÝÒ׵ش´½¨»ùÓÚSpringµÄÓ¦ÓóÌÐòºÍ·þÎñ¡£

´ÓSpring BootÏîÄ¿Ãû³ÆÖеÄBoot¾Í¿ÉÒÔ¿´³öÀ´£¬Spring BootµÄ×÷ÓÃÔÚÓÚ´´½¨ºÍÆô¶¯ÐµĻùÓÚSpring¿ò¼ÜµÄÏîÄ¿¡£Spring Boot»áÑ¡Ôñ×îÊʺϵÄSpring×ÓÏîÄ¿ºÍµÚÈý·½¿ªÔ´¿â½øÐÐÕûºÏ¡£´ó²¿·ÖSpring BootÓ¦ÓÃÖ»ÐèÒª·Ç³£ÉÙµÄÅäÖþͿÉÒÔ¿ìËÙÔËÐÐÆðÀ´¡£Spring Boot°üº¬µÄÌØÐÔÈçÏ£º

´´½¨¿ÉÒÔ¶ÀÁ¢ÔËÐеÄSpringÓ¦Óá£

Ö±½ÓǶÈëTomcat»òJetty·þÎñÆ÷£¬²»ÐèÒª²¿ÊðWARÎļþ¡£

Ìá¹©ÍÆ¼öµÄ»ù´¡POMÎļþÀ´¼ò»¯Apache MavenÅäÖá£

¾¡¿ÉÄܵĸù¾ÝÏîÄ¿ÒÀÀµÀ´×Ô¶¯ÅäÖÃSpring¿ò¼Ü¡£

Ìṩ¿ÉÒÔÖ±½ÓÔÚÉú²ú»·¾³ÖÐʹÓõŦÄÜ£¬ÈçÐÔÄÜÖ¸±ê¡¢Ó¦ÓÃÐÅÏ¢ºÍÓ¦Óý¡¿µ¼ì²é¡£

ûÓдúÂëÉú³É£¬Ò²Ã»ÓÐXMLÅäÖÃÎļþ¡£

·þÎñ·¢ÏÖºÍÖÇÄÜ·ÓÉ

ÿһ¸ö·þÎñ¶¼º¬ÓÐÒ»¸öÌØ¶¨ÒâÒåµÄ΢·þÎñ¼Ü¹¹¡£µ±ÄãÔÚSpring CloudÉϹ¹½¨Î¢·þÎñ¼Ü¹¹Ê±£¬ÕâÀïÓм¸¸ö»ù±¾¸ÅÄîÐèÒªÊ×ÏȳÎÇåÏ¡£Ê×ÏÈ£¬ÄãÐèÒªÒªÏÈ´´½¨Configuration ServiceºÍDiscovery ServiceÁ½¸ö»ù´¡·þÎñ¡£ÈçÏÂͼËùʾ£º

ÉÏÃæµÄͼƬ˵Ã÷ÁËËĸö΢·þÎñÒÔ¼°¸÷¸ö·þÎñÖ®¼äµÄÒÀÀµ¹ØÏµ¡£

Configuration service´¦ÓÚ×î¶¥¶Ë£¬»ÆÉ«±êʶ£¬¶øÇÒ±»ÆäËü΢·þÎñËùÒÀÀµ¡£

Discovery service´¦ÓÚ×îµÍ¶Ë£¬À¶É«±êʶ£¬Í¬Ê±Ò²±»ÆäËü·þÎñËùÒÀÀµ¡£

ÂÌÉ«±êʶµÄÁ½¸ö΢·þÎñÊÇÎÒÃDZ¾ÏµÁв©ÎÄÖÐÓõ½µÄÁ½¸öÓ¦Óð¸Àý£ºµçÓ°ºÍ¹ÛÓ°½¨Òé¡£

Configuration Service

Configuration ServiceÔÚ΢·þÎñ¼Ü¹¹ÖÐÊÇÒ»¸ö·Ç³£ÖØÒªµÄ×é¼þ¡£Èç12ÒªËØÓ¦ÓÃÀíÂÛËù˵£¬ ΢·þÎñÓ¦ÓõÄÅäÖÃÓ¦¸Ã´æ´¢ÔÚ»·¾³ÖУ¬¶ø²»ÊDZ¾µØÏîÄ¿ÖС£

Configuration service(ÅäÖ÷þÎñ)ÊÇÒ»¸ö±Ø²»¿ÉÉٵĻù´¡×é¼þµÄÔ­ÒòÊÇÒòΪËü¿ÉÒÔ¶ÔËùÓÐͨ¹ýµã¶ÔµãºÍ¼ìË÷µÄ»ù´¡·þÎñ½øÐзþÎñ¹ÜÀí¡£

¼ÙÉèÎÒÃÇÓжà¸ö²¿Êð»·¾³¡£±ÈÈçÎÒÃÇÓÐÒ»¸öÁÙʱ»·¾³ºÍÒ»¸öÉú²ú»·¾³£¬Õë¶Ôÿ¸ö»·¾³µÄÅäÖý«»áÊDz»Í¬µÄ¡£Ã¿Ò»¸öconfiguration service ½«»áÓÉÒ»¸ö¶ÀÁ¢µÄGit²Ö¿âÀ´´æ·Å»·¾³ÅäÖá£Ã»ÓÐÆäËü»·¾³Äܹ»·ÃÎʵ½Õâ¸öÅäÖòֿ⣬ËüÖ»ÊÇÌṩ¸Ã»·¾³ÖÐÔËÐеÄÅäÖ÷þÎñ°ÕÁË¡£

µ±Configuration serviceÆô¶¯ºó£¬Ëü½«»áÖ¸ÏòÄÇЩ¸ù¾ÝÅäÖÃÎļþÅäÖõÄ·¾¶²¢Æô¶¯¶ÔÓ¦·þÎñ¡£Ã¿Ò»¸ö΢·þÎñͨ¹ý¶ÁÈ¡×Ô¼ºÅäÖÃÎļþÖеľßÌå»·¾³À´ÔËÐС£ÔÚÕâÒ»¹ý³ÌÖУ¬ÅäÖÃÊÇͨ¹ý°æ±¾¹ÜÀíÀ´½øÐеÄÄÚ²¿ºÍ¼¯Öл¯¹ÜÀí£¬¸ü¸ÄÅäÖò»ÐèÒªÖØÆô·þÎñ¡£

ͨ¹ýSpring CloudÌṩµÄ·þÎñÖÕ¶Ë£¬Äã¿ÉÒÔ¸ü¸Ä»·¾³ÅäÖ㬲¢ÏòDiscovery service(·¢ÏÖ·þÎñ)·¢ËÍÒ»¸öË¢ÐÂÐźţ¬ËùÓеÄÓû§¶¼»áÊÕµ½ÐµÄÅäÖÃ֪ͨ¡£

Discovery Service

Discovery Service(·¢ÏÖ·þÎñ)ÊÇÁíÒ»¸öÖØÒªµÄ΢·þÎñ¼Ü¹¹µÄ×é¼þ¡£Discovery Service¹ÜÀíÔËÐÐÔÚÈÝÆ÷ÖеÄÖÚ¶à·þÎñʵÀý£¬¶øÕâЩʵÀý¹¤×÷ÔÚ¼¯Èº»·¾³Ï¡£ÔÚÕâЩӦÓÃÖУ¬ÎÒÃÇʹÓÿͻ§¶ËµÄ·½Ê½³ÆÖ®Îª´Ó·þÎñµ½·þÎñ¡£¾Ù¸öÀý×Ó£¬ÎÒʹÓÃSpring Cloud Feign £¬ÕâÊÇÒ»¸ö»ùÓÚRestful·ç¸ñµÄ΢·þÎñÌṩµÄ¿Í»§¶Ë¿ªÔ´ÏîÄ¿£¬ËüÊÇ´ÓNetflix OSS projectÏîÄ¿ÖÐÅÉÉú³öÀ´µÄ¡£

@FeignClient("movie") public interface MovieClient 
{ @RequestMapping(method = RequestMethod.GET, value = "/movies"
) PagedResources findAll(); @RequestMapping(method = RequestMethod.GET, value = "/movies/{id}") 
Movie findById(@RequestParam("id") String id); @RequestMapping
(method = RequestMethod.POST, value = "/movies", produces = MediaType.APPLICATION_JSON_VALUE) 
void createMovie(@RequestBody Movie movie); }

ÔÚÉÏÃæµÄÀý×ÓÖУ¬ÎÒ´´½¨ÁËÒ»¸öFeign ¿Í»§¶Ë£¬²¢Ó³ÉäÁËÒ»¸öREST API·½·¨À´±©Â¶µçÓ°·þÎñ¡£Ê¹ÓÃ@FeignClient×¢½â£¬¿ÉÒÔÉùÃ÷ÎÒÏëҪΪmovie΢·þÎñ¶ø´´½¨µÄ¿Í»§¶ËAPI¡£½ÓÏÂÀ´ÎÒÉùÃ÷ÁËÒ»¸öÎÒÏëҪʵÏֵķþÎñÓ³É䡣ͨ¹ýÔÚ·½·¨ÉÏÉùÃ÷Ò»¸öURL¹æÔòÀ´ÃèÊöÒ»¸öREST APIµÄ·ÓɹæÔò¡£

¸üÁîÈËÐ˷ܵÄÊÇ£¬ÕâÒ»ÇÐÔÚSpring CloudÖж¼ºÜÈÝÒ×£¬ÎÒËùÒª×öµÄ½ö½öÊÇÖªµÀservice IDÀ´´´½¨ÎÒµÄFeign ¿Í»§¶Ë¡£·þÎñµÄURLµØÖ·ÔÚÔËÐÐʱ»·¾³ÊÇ×Ô¶¯ÅäÖõģ¬ÒòΪÿһ¸öÔÚ¼¯ÈºÖеÄ΢·þÎñ½«»áÔÚÆô¶¯Ê±Í¨¹ý°ó¶¨serviceidµÄ·½Ê½À´½øÐÐ×¢²á¡£

΢·þÎñ¼Ü¹¹ÖÐµÄÆäËü·þÎñ£¬Ò²ÊÇͨ¹ýÉÏÃæÌáµ½µÄ·½Ê½ÔËÐС£ÎÒÖ»ÐèÒªÖªµÀ½øÐÐͨѶ·þÎñµÄserviceid£¬ËùÓеIJÙ×÷¶¼ÊÇͨ¹ýSpring×Ô¶¯°ó¶¨µÄ¡£

API Gateway

API Gateway ·þÎñÊÇSpring CloudµÄÁíÒ»¸öÖØÒª×é¼þ(¹ØÓÚËüµÄ½éÉÜ¿ÉÒÔÔĶÁ±¾ÆªÎÄÕÂ)¡£Ëü¿ÉÒÔÓÃÀ´¹ÜÀí¼¯Èº·þÎñÖеÄÁìÓòʵÌå¡£ÏÂͼµÄÂÌÉ«Áù±ßÐÎÊÇÎÒÃÇÌṩµÄÊý¾ÝÇý¶¯·þÎñ£¬Ö÷ÒªÓÃÀ´¹ÜÀí×Ô¼ºµÄʵÌåÀàºÍÊý¾Ý¿â¡£Í¨¹ýÌí¼ÓAPI Gateway·þÎñ£¬ÎÒÃÇ¿ÉÒÔΪͨ¹ýÏÂÃæÂÌÑÕÉ«µÄ·þÎñΪÿһ¸öAPI·ÓÉ´´½¨Ò»¸ö´úÀí±©Â¶½Ó¿Ú¡£

¼ÙÉèÍÆ¼ö·þÎñºÍµçÓ°·þÎñ¶¼±©Â¶ËûÃÇ×Ô¼ºµÄREST APIÔÚ×Ô¼º¹ÜÀíµÄÓòʵÌåÉÏ¡£API gatawayͨ¹ýdiscovery serviceºÍ´ÓÆäËü·þÎñ×¢ÈëµÄ»ùÓÚ´úÀí·ÓÉµÄ API·½·¨¡£Í¨¹ýÕâÖÖ·½Ê½£¬°üÀ¨ÍƼö·þÎñºÍµçÓ°·þÎñ½«ÓµÓÐÒ»¸öÍêÕû¶¨ÒåµÄ·ÓÉ£¬Í¨¹ý±©Â¶µÄREST API»ñµÃ±¾µØµÄ΢·þÎñ¡£API Gateway½«»áÖØ¶¨Òå·ÓÉÇëÇóµ½·þÎñʵÀý£¬ÕâЩÇëÇó¶¼ÊÇ»ùÓÚHTTPµÄ¡£

ʾÀýÏîÄ¿

ÎÒÒѾ­ÔÚGitHubÉÏ´´½¨ÁËÒ»¸öʵÀýÏîÄ¿£ºhttps://github.com/kbastani/spring-cloud-microservice-example£¬Õâ¸öÏîÄ¿ÊÇÒ»¸ö¶Ëµ½¶ËµÄÔ­ÉúÔÆÆ½Ì¨£¬Ê¹ÓÃSpring Cloud¹¹½¨Êµ¼ÊµÄ΢·þÎñ¼Ü¹¹¡£

»ù±¾¸ÅÄî:

ʹÓÃDocker½øÐм¯³É²âÊÔ

»ìºÏ³Ö¾Ã»¯

΢·þÎñ¼Ü¹¹

·þÎñ·¢ÏÖ

APIÍø¹Ø

Docker

ʹÓÃDocker¶Ôÿһ¸ö·þÎñ½øÐй¹½¨ºÍ²¿Êð¡£Ê¹ÓÃDocker ComposeÔÚÒ»¸ö¿ª·¢»úÉϽøÐж˵½¶ËµÄ¼¯³É²âÊÔ¡£

»ìºÏ³Ö¾Ã»¯

»ìºÏ³Ö¾Ã»¯Æäʵ¾ÍÊÇ˵ʹÓöàÖÖÊý¾Ý¿âÀ´´æ´¢¡£²»Í¬µÄ΢·þÎñʵÀý¶¼»áʹÓÃËüÃÇ×Ô¼ºµÄÊý¾Ý¿â£¬²¢Í¨¹ýREST·þÎñ»òÕßÏûÏ¢×ÜÏßÀ´Í¨ÐÅ£¬¾Ù¸öÀý×Ó£¬Äã¿ÉÒÔʹÓûùÓÚÒÔÏÂÊý¾Ý¿âÀ´¹¹½¨Î¢·þÎñ£º

Neo4j(ͼÐλ¯)

MongoDB(Îĵµ»¯)

MySQL(¹ØÁª)

΢·þÎñ¼Ü¹¹

Õâ¸öÀý×ÓÑÝʾÁËÈçºÎʹÓÃ΢·þÎñ´´½¨Ò»¸öеÄÓ¦Óá£ÓÉÓÚÔÚÏîÄ¿ÖеÄÿһ¸ö΢·þÎñÖ»ÓÐÒ»¸öµ¥Ò»µÄ¸¸ÏîÄ¿¡£¿ª·¢ÕßΪ´ËµÃµ½µÄÊÕÒæÊÇ¿ÉÒÔÔÚ±¾»úÉÏÔËÐкͿª·¢Ã¿Ò»¸ö΢·þÎñ¡£Ìí¼ÓÒ»¸öеÄ΢·þÎñ·Ç³£¼òµ¥£¬µ±·¢ÏÖ΢·þÎñʱ½«»á×Ô¶¯·¢ÏÖÔËÐÐʱµÄ¼¯Èº»·¾³ÉÏ¡£

Service Discovery

ÏîÄ¿Öаüº¬Á½¸ö·¢ÏÖ·þÎñ£¬Ò»¸öÔÚNetflix Eureka£¬ÁíÒ»¸öʹÓÃÁË

Consul from Hashicorp¡£¶àÖÖ·¢ÏÖ·þÎñÌṩÁ˶àÖÖÑ¡Ôñ£¬Ò»¸öÊÇʹÓÃ(Consul)À´×öDNS·þÎñ¼¯Èº£¬ÁíÒ»¸öÊÇ(Consul)»ùÓÚ´úÀíµÄAPI Íø¹Ø¡£

API Íø¹Ø

ÿһ¸ö΢·þÎñ¶¼¹ØÁªEureka£¬ÔÚÕû¸ö¼¯ÈºÖмìË÷API·ÓÉ¡£Ê¹ÓÃÕâ¸ö²ßÂÔ£¬Ã¿Ò»¸öÔÚ¼¯ÈºÉÏÔËÐеÄ΢·þÎñÖ»ÐèҪͨ¹ýÒ»¸ö¹²Í¬µÄAPIÍø¹Ø½øÐиºÔؾùºâºÍ±©Â¶½Ó¿Ú£¬Ã¿Ò»¸ö·þÎñÒ²»á×Ô¶¯·¢ÏÖ²¢½«Â·ÓÉÇëÇóת·¢µ½×Ô¼ºµÄ·ÓÉ·þÎñÖС£Õâ¸ö´úÀí¼¼ÊõÓÐÖúÓÚ¿ª·¢Óû§½çÃæ£¬×÷Ϊƽ̨ÍêÕûµÄ APIͨ¹ý×Ô¼ºµÄÖ÷»úÓ³ÉäΪ´úÀí·þÎñ¡£

Docker ʵÀý

ÏÂÃæµÄʵÀý½«»áͨ¹ýMavenÀ´¹¹½¨£¬Ê¹ÓÃDockerΪÿһ¸ö΢·þÎñ¹¹½¨ÈÝÆ÷¾µÏñ¡£ÎÒÃÇ¿ÉÒÔºÜÓÅÑŵÄʹÓÃDocker ComposeÔÚÎÒÃÇ×Ô¼ºµÄÖ÷»úÉϴȫ²¿µÄ΢·þÎñ¼¯Èº¡£

¿ªÊ¼¹¹½¨

ÔÚÕâ֮ǰ£¬ÇëÏÈÒÆ²½ÖÁÏîÄ¿µÄGitHub ²Ö¿â¡£

https://github.com/kbastani/spring-cloud-microservice-example

¿Ë¡»òÕßforkÕâ¸öÏîÄ¿²¢ÇÒ°ÑÔ´ÂëÏÂÔØµ½×Ô¼ºµÄµçÄÔÉÏ¡£ÏÂÔØÍê±Ïºó£¬ÄãÐèҪʹÓÃMavenºÍDockerÀ´±àÒëºÍ¹¹½¨±¾µØµÄÈÝÆ÷¾µÏñ¡£

ÏÂÔØDocker

Ê×ÏÈ£¬Èç¹ûÄ㻹ûÓÐDockerÇëÏÈÏÂÔØËü¡£¿ÉÒÔ¸úËæÕâ¸öÖ¸ÄÏÀ´»ñÈ¡Docker:https://docs.docker.com/installation/£¬È»ºóÔÚ¿ª·¢»úÉϰ²×°²¢ÔËÐС£

µ±È»ÄãÒ²ÐèÒª°²×°Docker Compose(https//docs.docker.com/compose/)£¬Õâ¸öÖ¸ÄϽ«»á°ïµ½Äã:https://docs.docker.com/compose/install/¡£

»·¾³ÒªÇó

Äܹ»ÔËÐÐʵÀý³ÌÐò£¬ÐèÒªÔÚÄãµÄ¿ª·¢»úÉϰ²×°ÏÂÃæµÄÈí¼þ£º

Maven 3

Java 8

Docker

Docker Compose

¹¹½¨ÏîÄ¿

ͨ¹ýÃüÁîÐз½Ê½À´¹¹½¨µ±Ç°ÏîÄ¿£¬ÔÚÏîÄ¿µÄ¸ùĿ¼ÖÐÔËÐÐÈçϵÄÃüÁ

¡¡$ mvn clean install

ÏîÄ¿½«»á¸ù¾Ýpom.xmlÖеÄÿһ¸öÏîÄ¿ÉùÃ÷ÖÐÏÂÔØÏàÓ¦µÄÒÀÀµjar°ü¡£Ã¿Ò»¸ö·þÎñ¶¼½«»á±»¹¹½¨£¬Í¬Ê±MavenµÄDocker²å¼þ½«»á×Ô¶¯´Ó±¾µØDocker RegistryÖй¹½¨Ã¿Ò»¸öÈÝÆ÷¾µÏñ¡£Docker½«»áÔÚ¹¹½¨³É¹¦ºó£¬¸ù¾ÝÃüÁîÐÐÔËÐÐmvn clean installÀ´Çå³ýÏàÓ¦µÄ×ÊÔ´¡£

ÔÚÏîÄ¿³É¹¦¹¹½¨ºó£¬Ä㽫»á¿´µ½ÈçϵÄÊä³ö£º

ͨ¹ýDocker compose Æô¶¯¼¯Èº

ÏÖÔÚÿһ¸ö¾µÏñ¶¼³É¹¦¹¹½¨Íê±Ï£¬ÎÒÃÇʹÓÃDocker ComposeÀ´¼ÓËÙÆô¶¯ÎÒÃǵļ¯Èº¡£ÎÒÒѾ­½«Docker ComposeµÄyamlÎļþ°üº¬½øÁËÏîÄ¿ÖУ¬´ó¼Ò¿ÉÒÔ´ÓGitHubÉÏ»ñÈ¡¡£

ÏÖÔÚÎÒÃÇͨ¹ýÏÂÃæµÄÃüÁîÐÐÆô¶¯Î¢·þÎñ¼¯Èº£º

¡¡¡¡$ docker-compose up

Èç¹ûÒ»ÇÐÅäÖö¼ÊÇÕýÈ·µÄ£¬Ã¿Ò»¸öÈÝÆ÷¾µÏñ½«»áͨ¹ýÔÚDockerÉϵÄÐéÄâÈÝÆ÷ºÍ×Ô¶¯·¢ÏÖµÄÍøÂç·þÎñÀ´ÔËÐС£µ±ËûÃÇ¿ªÊ¼Ë³ÐòÆô¶¯Ê±£¬Ä㽫»á¿´µ½Ò»ÏµÁеÄÈÕÖ¾Êä³ö¡£Õâ¿ÉÄÜÐèÒªÒ»¶Îʱ¼äÀ´Íê³É£¬È¡¾öÓÚÔËÐÐÄãʵÀý³ÌÐòµÄ»úÆ÷ÐÔÄÜ¡£

Ò»µ©ÈÝÆ÷Æô¶¯³É¹¦£¬Ä㽫»áͨ¹ýEurekaÖ÷»ú¿´µ½Í¨¹ýDiscovery service×¢²áÉÏÀ´µÄÓ¦Ó÷þÎñ¡£

ͨ¹ýÃüÁîÐÐÖն˸´ÖÆÕ³ÌùÏÂÃæµÄÃüÁîµ½DockerÖж¨ÒåµÄ$DOCKER_HOST»·¾³±äÁ¿ÖС£

$ open $(echo \"$(echo $DOCKER_HOST)\"| \sed 's/tcp:\/\//http:\/\//g'| \sed 's/[0-9]\{4,\}/8761/g'| \sed 's/\"//g')

Èç¹ûEurekaÕýÈ·µÄÆô¶¯£¬ä¯ÀÀÆ÷½«»áÆô¶¯²¢´ò¿ªEureka·þÎñµÄÒDZíÅÌ£¬ÈçÏÂͼËùʾ£º

ÎÒÃǽ«»á¿´µ½Ã¿Ò»¸öÕýÔÚÔËÐеķþÎñʵÀýºÍ״̬¡£Í¨¹ýÏÂÃæµÄÃüÁîÀ´»ñÈ¡Êý¾ÝÇý¶¯·þÎñ£¬ÀýÈç movie ·þÎñ¡£

¡¡¡¡$ open $(echo \"$(echo $DOCKER_HOST)/movie\"| \sed 's/tcp:\/\//http:\/\//g'|
 \sed 's/[0-9]\{4,\}/10000/g'| \sed 's/\"//g')

Õâ¸öÃüÁ»á·ÃÎʸù¾Ýµ¼º½Íø¹ØÖÕ¶ËÌṩµÄ´úÀí·½Ê½·ÃÎÊmovie·þÎñµÄREST APIÖÕ¶Ë¡£ÕâЩREST APIʹÓà HATEOAS À´ÅäÖã¬ËüÊÇÒ»¸öͨ¹ýÄÚǶÁ´½ÓµÄ·½Ê½Ö§³Ö×Ô¶¯·¢ÏÖ·þÎñµÄ½Ó¿Ú¡£

{ "_links" : { "self" : { "href" : "http://192.168.59.103:10000/movie" },
 "resume" : { "href" : "http://192.168.59.103:10000/movie/resume" }, 
"pause" : { "href" : "http://192.168.59.103:10000/movie/pause" }, 
"restart" : { "href" : "http://192.168.59.103:10000/movie/restart" },
 "metrics" : { "href" : "http://192.168.59.103:10000/movie/metrics" }, 
"env" : [ { "href" : "http://192.168.59.103:10000/movie/env" }, 
{ "href" : "http://192.168.59.103:10000/movie/env" } ], 
"archaius" : { "href" : "http://192.168.59.103:10000/movie/archaius" },
 "beans" : { "href" : "http://192.168.59.103:10000/movie/beans" },
 "configprops" : { "href" : "http://192.168.59.103:10000/movie/configprops" },
 "trace" : { "href" : "http://192.168.59.103:10000/movie/trace" }, 
"info" : { "href" : "http://192.168.59.103:10000/movie/info" }, 
"health" : { "href" : "http://192.168.59.103:10000/movie/health" }, 
"hystrix.stream" : { "href" : "http://192.168.59.103:10000/movie/hystrix.stream" },
 "routes" : { "href" : "http://192.168.59.103:10000/movie/routes" }, 
"dump" : { "href" : "http://192.168.59.103:10000/movie/dump" }, 
"refresh" : { "href" : "http://192.168.59.103:10000/movie/refresh" }, 
"mappings" : { "href" : "http://192.168.59.103:10000/movie/mappings" }, 
"autoconfig" : { "href" : "http://192.168.59.103:10000/movie/autoconfig" } } }

×ܽá

ÕâÊÇʹÓÃSpring CloudºÍDocker¹¹½¨Î¢·þÎñ¼Ü¹¹µÄϵÁв©ÎĵĵÚÒ»²¿·Ö¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃǽӴ¥µ½ÁËÈçϵĸÅÄî:

Service Discovery

Externalized Configuration

API Gateway

Service Orchestration with Docker Compose

   
2422 ´Îä¯ÀÀ       28
 
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
 
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
 
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

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

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
Windows Azure ÔÆ¼ÆËãÓ¦ÓÃ

ĦÍÐÂÞÀ­ ÔÆÆ½Ì¨µÄ¹¹½¨ÓëÓ¦ÓÃ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ù
ijÑз¢ÖÐÐÄ Openstackʵ¼ù
ÖªÃûµç×Ó¹«Ë¾ ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦ÓÃ
ijµçÁ¦ÐÐÒµ »ùÓÚÔÆÆ½Ì¨¹¹½¨ÔÆ·þÎñ
ÔÆ¼ÆËãÓëWindows AzureÅàѵ
±±¾© ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ