| ±à¼ÍƼö: |
| ±¾ÎÄÀ´×ÔÓÚ51cto£¬±¾ÎĽéÉÜÁËʲôÊÇSpring
Cloud£¬Spring CloudÖ÷ÒªµÄ¹¦Äܼ°Spring Cloud·þÎñÖÎÀí¡£ |
|
ʲôÊÇ΢·þÎñ
΢·þÎñ¼Ü¹¹·ç¸ñÊÇÒ»ÖÖ½«Ò»¸öµ¥Ò»Ó¦ÓóÌÐò¿ª·¢ÎªÒ»×éСÐÍ·þÎñµÄ·½·¨£¬Ã¿¸ö·þÎñÔËÐÐÔÚ×Ô¼ºµÄ½ø³ÌÖУ¬·þÎñ¼äͨÐŲÉÓÃÇáÁ¿¼¶Í¨ÐÅ»úÖÆ£¨Í¨³£ÓÃHTTP×ÊÔ´API£©¡£ÕâЩ·þÎñÎ§ÈÆÒµÎñÄÜÁ¦¹¹½¨²¢ÇÒ¿Éͨ¹ýÈ«×Ô¶¯²¿Êð»úÖÆ¶ÀÁ¢²¿Êð¡£ÕâЩ·þÎñ¹²ÓÃÒ»¸ö×îСÐ͵ļ¯ÖÐʽµÄ¹ÜÀí£¬·þÎñ¿ÉÓò»Í¬µÄÓïÑÔ¿ª·¢£¬Ê¹Óò»Í¬µÄÊý¾Ý´æ´¢¼¼Êõ¡£
΢·þÎñ¼Ü¹¹Ó¦¸Ã¾ß±¸ÒÔÏÂÌØÐÔ£º
ÿ¸ö΢·þÎñ¿É¶ÀÁ¢ÔËÐÐÔÚ×Ô¼ºµÄ½ø³ÌÀï¡£
һϵÁжÀÁ¢ÔËÐеÄ΢·þÎñ¹²Í¬¹¹½¨ÆðÕû¸öϵͳ¡£
ÿ¸ö·þÎñΪ¶ÀÁ¢µÄÒµÎñ¿ª·¢£¬Ò»¸ö΢·þÎñÖ»¹Ø×¢Ä³¸öÌØ¶¨µÄ¹¦ÄÜ£¬ÀýÈç¶©µ¥¹ÜÀí£¬Óû§¹ÜÀíµÈ¡£
΢·þÎñÖ®¼äͨ¹ýһЩÇáÁ¿µÄͨÐÅ»úÖÆ½øÐÐͨÐÅ£¬ÀýÈçͨ¹ýRESTful API½øÐе÷Óá£
¿ÉÒÔʹÓò»Í¬µÄÓïÑÔÓëÊý¾Ý´æ´¢¼¼Êõ
È«×Ô¶¯²¿Êð»úÖÆ
΢·þÎñ¼Ü¹¹µÄÓŵã
Ò×ÓÚ¿ª·¢ºÍά»¤
Ò»¸ö΢·þÎñÖ»»á¹Ø×¢Ò»¸öÌØ¶¨µÄÒµÎñ¹¦ÄÜ£¬ËùÒÔËüÒµÎñÇåÎú£¬´úÂëÁ¿½ÏÉÙ¡£
µ¥¸ö΢·þÎñÆô¶¯½Ï¿ì
µ¥¸ö΢·þÎñ´úÂëÁ¿½ÏÉÙ£¬ËùÒÔÆô¶¯»á±È½Ï¿ì¡£
¾Ö²¿ÐÞ¸ÄÈÝÒײ¿Êð
µ¥ÌåÓ¦ÓÃÖ»ÒªÓÐÐ޸ģ¬¾ÍµÃÖØÐ²¿ÊðÕû¸öÓ¦Óã¬Î¢·þÎñ½â¾öÁËÕâÑùµÄÎÊÌâ¡£
¼¼ÊõÕ»²»ÊÜÏÞ
ÔÚ΢·þÎñ¼Ü¹¹ÖУ¬¿ÉÒÔ½áºÏÏîĿҵÎñ¼°ÍŶӵÄÌØµã£¬ºÏÀíµØÑ¡Ôñ¼¼ÊõÕ»¡£
°´ÐèÉìËõ
¿É¸ù¾ÝÐèÇó£¬ÊµÏÖϸÁ£¶ÈµÄÀ©Õ¹¡£
΢·þÎñ¼Ü¹¹ÃæÁÙµÄÌôÕ½
ÔËάҪÇó¸ß
¸ü¶àµÄ·þÎñÒâζןü¶àµÄÔËάͶÈë¡£
·Ö²¼Ê½¹ÌÓеĸ´ÔÓÐÔ
ʹÓÃ΢·þÎñ¼Ü¹¹ÊÇ·Ö²¼Ê½ÏµÍ³¡£¶ÔÓÚÒ»¸ö·Ö²¼Ê½ÏµÍ³£¬ÏµÍ³ÈÝ´í£¬ÍøÂçÑÓ³Ù£¬·Ö²¼Ê½ÊÂÎñµÈ¶¼»á´øÀ´¾Þ´óµÄÌôÕ½¡£
½Ó¿Úµ÷Õû³É±¾¸ß
΢·þÎñÖ®¼äͨ¹ý½Ó¿Ú½øÐÐͨÐÅ¡£Èç¹ûÐÞ¸Äijһ¸ö΢·þÎñµÄAPI£¬¿ÉÄÜËùÓÐʹÓÃÁ˸ýӿڵÄ΢·þÎñ¶¼ÐèÒª×öµ÷Õû¡£
ÖØ¸´ÀͶ¯
ºÜ¶à·þÎñ¿ÉÄܶ¼»áʹÓõ½ÏàͬµÄ¹¦ÄÜ£¬¶øÕâ¸ö¹¦Äܲ¢Ã»Óдﵽ·Ö½âΪһ¸ö΢·þÎñµÄ³Ì¶È£¬Õâ¸öʱºò£¬¿ÉÄܸ÷¸ö·þÎñ¶¼»á¿ª·¢ÕâÒ»¹¦ÄÜ£¬´Ó¶øµ¼Ö´úÂëÖØ¸´¡£
΢·þÎñÕûÌå¼Ü¹¹Í¼

·þÎñ×¢²áÓÚ·¢ÏÖ
¸÷¸ö·þÎñÔÚÆô¶¯Ê±£¬½«×Ô¼ºµÄÍøÂçµØÖ·µÈÐÅÏ¢×¢²áµ½·þÎñ·¢ÏÖ×é¼þÖУ¬·þÎñ·¢ÏÖ×é¼þ»á´æ´¢ÕâЩÐÅÏ¢¡£
·þÎñÏû·ÑÕß¿ÉÒÔ´Ó·þÎñ·¢ÏÖ×é¼þ²éѯ·þÎñÌṩÕßµÄÍøÂçµØÖ·£¬²¢Ê¹ÓøõØÖ·µ÷Ó÷þÎñÌṩÕߵĽӿڡ£
¸÷¸ö΢·þÎñÓë·þÎñ·¢ÏÖ×é¼þʹÓÃÒ»¶¨»úÖÆ£¨ÀýÈçÐÄÌø£©Í¨ÐÅ¡£·þÎñ·¢ÏÖ×é¼þÈ糤ʱ¼äÎÞ·¨ÓëijΪ·þÎñʵÀýͨÐÅ£¬¾Í»á×¢Ïú¸ÃʵÀý¡£
΢·þÎñÍøÂçµØÖ··¢Éú±ä¸ü£¨ÀýÈçʵÀýÔö¼õ»òÕßIP¶Ë¿Ú·¢Éú±ä»¯µÈ£©Ê±£¬»áÖØÐÂ×¢²áµ½·þÎñ·¢ÏÖ×é¼þ¡£Ê¹ÓÃÕâÖÖ·½Ê½£¬·þÎñÏû·ÑÕß¾ÍÎÞÐëÈ˹¤ÐÞ¸ÄÌṩÕßµÄÍøÂçµØÖ·ÁË¡£

FegionʵÏÖÉùÃ÷ʽRESTµ÷ÓÃ
REST£¨Representational State Transfer £©£¬ÓÃÖÐÎÄ·ÒëΪ"¾ßÏó״̬´«Êä"(Ò²ÓУº"´ú±íÐÔ״̬´«Êä")¡£ÊÇÓÉ
Roy Thomas Fielding²©Ê¿ ÔÚ2000Äê¾Í¶Á¼ÓÖÝ´óѧŷÎÄ·ÖУÆÚ¼äÔÚѧÊõÂÛÎÄÖÐÌá³öµÄÒ»¸öÊõÓï¡£REST
¶¨ÒåÁËÒ»×éÌåϵ¼Ü¹¹ÔÔò£¬Äú¿ÉÒÔ¸ù¾ÝÕâЩ£¬°üÀ¨Ê¹Óò»Í¬ÓïÑÔ±àдµÄ¿Í»§¶ËÈçºÎͨ¹ý HTTP ´¦ÀíºÍ´«Êä×ÊԴ״̬¡£FeignÊÇÒ»¸öÉùÃ÷ʽµÄWebService¿Í»§¶Ë¡£Ê¹ÓÃFeignÄÜÈñàдWebService¿Í»§¶Ë¸ü¼Ó¼òµ¥£¬ËüµÄʹÓ÷½·¨ÊǶ¨ÒåÒ»¸ö½Ó¿Ú£¬È»ºóÔÚ½Ó¿ÚÉÏÌí¼Ó×¢½â£¬Í¬Ê±Ò²Ö§³ÖJAX-RS±ê×¼µÄ×¢½â¡£FeignÒ²Ö§³Ö¿É²å°ÎʽµÄ±àÂëÆ÷ºÍ¡Á¡Á¡Á¡£SpringCloud¶ÔFeign½øÐÐÁË·â×°£¬Ê¹ÆäÖ§³ÖSpringMVC±ê×¼×¢½âºÍHttpMessageConverters¡£Feign¿ÉÒÔÓëEurekaºÍRibbon×éºÏʹÓÃÒÔÖ§³Ö¸ºÔؾùºâ¡£
ʹÓÃHystrixʵÏÖ΢·þÎñµÄÈÝ´í´¦Àí
HystrixÊÇÓÉNetflix¿ªÔ´µÄÒ»¸öÑÓ³ÙºÍÈÝ´í¿â£¬ÓÃÓÚ¸ôÀë·ÃÎÊÔ¶³Ìϵͳ£¬·þÎñ»òÕßµÚÈý·½¿â£¬·ÀÖ¹¼¶ÁªÊ§°Ü£¬´Ó¶øÌáÉýϵͳµÄ¿ÉÓÃÐÔºÍÈÝ´íÐÔ¡£HystrixÖ÷Ҫͨ¹ýÒÔϼ¸µãʵÏÖÑÓ³ÙºÍÈÝ´í¡£
°ü¹üÇëÇó£ºÊ¹ÓÃHystrixCommand°ü¹ü¶ÔÒÀÀµµÄµ÷ÓÃÂß¼£¬Ã¿¸öÃüÁîÔÚ¶ÀÁ¢Ïß³ÌÖÐÖ´ÐС£ÕâʹÓõ½ÁËÉè¼ÆÄ£Ê½Öеġ°ÃüÁîģʽ¡±¡£
ÌøÕ¢»úÖÆ£ºµ±Ä³·þÎñµÄ´íÎóÂʳ¬¹ýÒ»¶¨ãÐֵʱ£¬Hystrix¿ÉÒÔ×Ô¶¯»òÕßÊÖ¶¯ÌøÕ¢£¬Í£Ö¹ÇëÇó¸Ã·þÎñÒ»¶Îʱ¼ä¡£
×ÊÔ´¸ôÀ룺HystrixΪÿ¸öÒÀÀµ¶¼Î¬»¤ÁËÒ»¸öСÐ͵ÄÏ̳߳أ¨»òÕßÐźÅÁ¿£©¡£Èç¹û¸ÃÏ̳߳ØÒÑÂú£¬·¢Íù¸ÃÒÀÀµµÄÇëÇó¾Í±»Á¢¼´¾Ü¾ø£¬¶ø²»ÊÇÅŶӵȺò£¬´Ó¶ø¼ÓËÙʧ°ÜÅж¨¡£
¼à¿Ø£ºHystrix¿ÉÒÔ½üºõʵʱµØ¼à¿ØÔËÐÐÖ¸±êºÍÅäÖñ仯£¬ÀýÈç³É¹¦£¬Ê§°Ü£¬³¬Ê±ÒÔ¼°±»¾Ü¾øµÄÇëÇóµÈ¡£
»ØÍË»úÖÆ£ºµ±ÇëÇóʧ°Ü£¬³¬Ê±£¬±»¾Ü¾ø£¬»òµ±¶Ï·Æ÷´ò¿ªÊ±£¬Ö´ÐлØÍËÂß¼¡£»ØÍËÂß¼¿ÉÓÉ¿ª·¢ÈËÔ±×ÔÐÐÌṩ£¬ÀýÈç·µ»ØÒ»¸öȱʡֵ¡£
×ÔÎÒÐÞ¸´£º¶Ï·Æ÷´ò¿ªÒ»¶Îʱ¼äºó£¬»á×Ô¶¯½øÈë¡°°ë¿ª¡±×´Ì¬¡£
Èç¹ûûÓÐÈÝ´í´¦Àí£¬¡°»ù´¡·þÎñ¹ÊÕÏ¡±µ¼Ö¡°¼¶Áª¹ÊÕÏ¡±´Ó¶øÐγÉÓұߵÄÑ©±ÀЧӦ

ʹÓÃZuul¹¹½¨Î¢·þÎñÍø¹Ø
ZuulÊÇNetflix¿ªÔ´µÄ΢·þÎñÍø¹Ø£¬Ëü¿ÉÒÔºÍEureka£¬Ribbon£¬HystrixµÈ×é¼þÅäºÏʹÓá£ZuulµÄºËÐÄÊÇһϵÁеĹýÂËÆ÷£¬ÕâЩ¹ýÂËÆ÷¿ÉÒÔÍê³ÉÒÔϹ¦ÄÜ¡£
Éí·ÝÈÏÖ¤Ó밲ȫ
¶¯Ì¬Â·ÓÉ
ѹÁ¦²âÊÔ
¸ºÔØ·ÖÅä
¾²Ì¬ÏìÓ¦´¦Àí
¶àÇøÓòµ¯ÐÔ
Zuul´ó²¿·Ö¹¦ÄÜÊÇͨ¹ý¹ýÂËÆ÷ʵÏֵģ¬ÈçÓÒͼËùʾ¡£

ʹÓÃSpring CloudConfigͳһ¹ÜÀí΢·þÎñÅäÖÃ
Spring Cloud ConfigÖ§³ÖÔÚGit, SVNºÍ±¾µØ´æ·ÅÅäÖÃÎļþ£¬Ê¹ÓÃGit»òÕßSVN´æ´¢¿â¿ÉÒԺܺõØÖ§³Ö°æ±¾¹ÜÀí£¬SpringĬÈÏÅäÖÃÊÇʹÓÃGit´æ´¢¿â¡£¾ßÓÐÈçÏÂÓŵ㣺
¼¯ÖйÜÀíÅäÖãºÒ»¸öʹÓÃ΢·þÎñ¼Ü¹¹µÄÓ¦ÓÃϵͳ¿ÉÄÜ»á°üº¬³É°ÙÉÏǧ¸ö΢·þÎñ£¬Òò´Ë¼¸ÖÖ¹ÜÀíÅäÖÃÊǷdz£ÓбØÒªµÄ¡£
²»Í¬»·¾³²»Í¬ÅäÖãºÀýÈ磬Êý¾ÝÔ´ÅäÖÃÔÚ²»Í¬µÄ»·¾³£¨¿ª·¢£¬²âÊÔ£¬Ô¤·¢²¼£¬Éú²úµÈ£©ÖÐÊDz»Í¬µÄ¡£
ÔËÐÐÆÚ¼ä¿É¶¯Ì¬µ÷Õû£ºÀýÈç¿É¸ù¾Ý¸÷¸ö΢·þÎñµÄ¸ºÔØÇé¿ö£¬¶¯Ì¬µ÷ÕûÊý¾ÝÔ´Á¬½Ó³Ø´óС»òÈÛ¶ÏãÐÖµ£¬²¢ÇÒÔÚµ÷ÕûÅäÖÃÊDz»Í£Ö¹Î¢·þÎñ¡£
ÅäÖÃÐ޸ĺó¿É×Ô¶¯¸üС£ÈçÅäÖÃÄÚÈÝ·¢Éú±ä»¯£¬Î¢·þÎñÄܹ»×Ô¶¯¸üÐÂÅäÖá£

Spring Cloud·þÎñÖÎÀí
×¢²áÖÐÐÄ¼à¿Ø

ÈÝ´í´¦Àí¼à¿Ø

΢·þÎñ½¡¿µ¼ì²é

΢·þÎñµ÷ÓÃ×·×Ù

|