±à¼ÍƼö: |
ÎÄÕÂÖ÷Òª½éÉÜÁË΢·þÎñ¡°Ãëɱ¡±¼Ü¹¹ÔÓз½°¸¼°ÐÂÔö·½°¸¡¢ºËÐÄÖ§³ÅÎļþ¡¢Ãëɱϵͳ³¡¾°Ìص㡢ÏÞÁ÷ÒÔ¼°¸ºÔØÓë·ÖÁ÷µÈµÈÄÚÈÝ¡£
±¾ÎÄÀ´×ÔÓÚ΢ÐŹ«ÖںŠ- ËÑÔÆ¿â¼¼ÊõÍŶӣ¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼¡¢ÍƼö¡£ |
|
·ÖÎö£¬ÔÚ×öÃëɱϵͳµÄÉè¼ÆÖ®³õ£¬Ò»Ö±ÔÚ˼¿¼ÈçºÎÈ¥Éè¼ÆÕâ¸öÃëɱϵͳ£¬Ê¹Ö®ÔÚÏÖÓеļ¼Êõ»ù´¡ºÍÈÏÖª·¶Î§ÄÚ£¬Äܹ»×öµ½×îºÃ£»Í¬Ê±Ò²Äܳä·ÖµÄÀûÓù«Ë¾ÏÖÓеÄÖмä¼þÀ´Íê³ÉϵͳµÄʵÏÖ¡£
ÎÒÃǶ¼ÖªµÀ£¬Õý³£È¥ÊµÏÖÒ»¸öWEB¶ËµÄÃëɱϵͳ£¬Ç°¶ËµÄ´¦ÀíºÍºó¶ËµÄ´¦ÀíÒ»ÑùÖØÒª£»Ç°¶ËÒ»°ã»á×öCDN£¬ºó¶ËÒ»°ã»á×ö·Ö²¼Ê½²¿Êð£¬ÏÞÁ÷£¬ÐÔÄÜÓÅ»¯µÈµÈһϵÁеIJÙ×÷£¬²¢Íê³ÉÒ»Ð©ÍøÂçµÄÓÅ»¯£¬±ÈÈçIDC¶àÏß·£¨µçÐÅ¡¢ÁªÍ¨¡¢Òƶ¯£©µÄ½ÓÈ룬´ø¿íµÄÉý¼¶µÈµÈ¡£¶øÓÉÓÚĿǰϵͳǰ¶ËÊÇ»ùÓÚ΢ÐÅС³ÌÐò£¬ËùÒÔ¹ØÓÚǰ¶Ë²¿·ÖµÄÓÅ»¯¾Í¾¡¿ÉÄܶ¼ÊÇÔÚ´úÂëÖÐÍê³É£¬CDNÕâÒ»²½¾Í¿ÉÒÔÃâÁË£»
ÔÓз½°¸£º
ͨ¹ý·Ö²¼Ê½ËøµÄ·½Ê½¿ØÖÆ×îÖÕ¿â´æ²»³¬Âô£¬²¢¿ØÖÆ×îÖÕÄܹ»½øÈ뵽ϵ¥»·½ÚµÄ¶©µ¥£¬Èëµ½¶ÓÁÐÖÐÂýÂýÈ¥Ïû·Ñϵ¥
ÐÂÔö·½°¸
ÇëÇó½øÀ´Ö®ºó£¬Í¨¹ý»î¶¯¿ªÊ¼ÅжϺÍÖØ¸´ÃëɱÅжÏÖ®ºó£¬¼´½øÈëµ½ÏûÏ¢¶ÓÁУ¬È»ºóÔÚÏûÏ¢µÄÏû·Ñ¶ËÈ¥×ö¿â´æÅжϵȲÙ×÷£¬Í¨¹ýÏûÏ¢¶ÓÁдﵽÏ÷·åµÄ²Ù×÷
Æäʵ£¬ÎÒ¾õµÃÁ½ÖÖ·½°¸¶¼ÊÇ¿ÉÒԵģ¬Ö»ÊǾßÌåÓÃÔÚʲôÑùµÄ³¡¾°£»ÔÓз½°¸¸üÊʺÏÁ÷Á¿Ïà¶Ô½ÏСµÄƽ̨£¬¶øÇÒÕû¸öÁ÷³ÌÒ²»á¸ü¼Ó¼òµ¥£»¶øÐÂÔö·½°¸ÔòÊÇÐí¶à³¬´óÐÍÆ½Ì¨²ÉÓõķ½°¸£¬Í¨¹ýÏûÏ¢¶ÓÁдﵽÏ÷·åµÄÄ¿µÄ£»¶øÕâÁ½ÖÖ·½°¸¶¼¼ÓÁËÕæÊµÄܽøÈëµÄÇëÇóÏÞÖÆ£¬Í¨¹ýredisµÄÔ×Ó×ÔÔöÀ´¼Ç¼ÇëÇóÊý£¬µ±ÇëÇóÁ¿´ïµ½¿â´æµÄn±¶Ê±£¬ºóÃæÔÙ½øÈëµÄÇëÇó£¬ÔòÖ±½Ó·µ»Ø»î¶¯Ì«»ð±¬µÄÌáʾ¡£Õû±à£ºÎ¢ÐŹ«Öںţ¬ËÑÔÆ¿â¼¼ÊõÍŶӣ¬ID£ºsouyunku
¼Ü¹¹½éÉÜ
¼Ü¹¹½éÉÜ ºó¶ËÏîÄ¿ÊÇ»ùÓÚSpringCloud+SpringBoot´î½¨µÄ΢·þÎñ¿ò¼Ü¼Ü¹¹
ǰ¶ËÔÚ΢ÐÅС³ÌÐòÉ̳ÇÉÏ
ºËÐÄÖ§³Å×é¼þ
·þÎñÍø¹Ø Zuul
·þÎñ×¢²á·¢ÏÖ Eureka+Ribbon
ÈÏÖ¤ÊÚȨÖÐÐÄ Spring Security OAuth2¡¢JWTToken
·þÎñ¿ò¼Ü Spring MVC/Boot
·þÎñÈÝ´í Hystrix
·Ö²¼Ê½Ëø Redis
·þÎñµ÷ÓÃ Feign
ÏûÏ¢¶ÓÁÐ Kafka
Îļþ·þÎñ ˽ÓÐÔÆÅÌ
¸»Îı¾×é¼þ UEditor
¶¨Ê±ÈÎÎñ xxl-job
ÅäÖÃÖÐÐÄ apollo
¹ØÓÚÃëɱµÄ³¡¾°Ìصã·ÖÎö
ÃëɱϵͳµÄ³¡¾°Ìصã
1¡¢Ãëɱʱ´óÁ¿Óû§»áÔÚͬһʱ¼äͬʱ½øÐÐÇÀ¹º£¬ÍøÕ¾Ë²Ê±·ÃÎÊÁ÷Á¿¼¤Ôö£»
2¡¢Ãëɱһ°ãÊÇ·ÃÎÊÇëÇóÁ¿Ô¶Ô¶´óÓÚ¿â´æÊýÁ¿£¬Ö»ÓÐÉÙ²¿·ÖÓû§Äܹ»Ãëɱ³É¹¦£»
3¡¢ÃëɱҵÎñÁ÷³Ì±È½Ï¼òµ¥£¬Ò»°ã¾ÍÊÇ϶©µ¥²Ù×÷£»
Ãëɱ¼Ü¹¹µÄÉè¼ÆÀíÄî
ÏÞÁ÷£º¼øÓÚÖ»ÓÐÉÙ²¿·ÖÓû§Äܹ»Ãëɱ³É¹¦£¬ËùÒÔÒªÏÞÖÆ´ó²¿·ÖÁ÷Á¿£¬Ö»ÔÊÐíÉÙ²¿·ÖÁ÷Á¿½øÈë·þÎñºó¶Ë£¨ÔÝδ´¦Àí£©£»
Ï÷·å£º¶ÔÓÚÃëɱϵͳ˲ʱµÄ´óÁ¿Óû§Ó¿È룬ËùÒÔÔÚÇÀ¹º¿ªÊ¼»áÓкܸߵÄ˲ʱ·åÖµ¡£ÊµÏÖÏ÷·åµÄ³£Ó÷½·¨ÓÐÀûÓûº´æ»òÕßÏûÏ¢Öмä¼þµÈ¼¼Êõ£»
Òì²½´¦Àí£º¶ÔÓڸ߲¢·¢ÏµÍ³£¬²ÉÓÃÒì²½´¦Àíģʽ¿ÉÒÔ¼«´óµØÌá¸ßϵͳ²¢·¢Á¿£¬Òì²½´¦Àí¾ÍÊÇÏ÷·åµÄÒ»ÖÖʵÏÖ·½Ê½£»
Äڴ滺´æ£ºÃëɱϵͳ×î´óµÄÆ¿¾±×îÖÕ¶¼¿ÉÄÜ»áÊÇÊý¾Ý¿âµÄ¶Áд£¬Ö÷ÒªÌåÏÖÔڵĴÅÅ̵ÄI/O£¬ÐÔÄÜ»áºÜµÍ£¬Èç¹ûÄܰѴ󲿷ֵÄÒµÎñÂß¼¶¼°áµ½»º´æÀ´´¦Àí£¬Ð§ÂÊ»áÓм«´óµÄÌáÉý£»
¿ÉÍØÕ¹£ºÈç¹ûÐèÒªÖ§³Ö¸ü¶àµÄÓû§»òÕ߸ü´óµÄ²¢·¢£¬½«ÏµÍ³Éè¼ÆÎªµ¯ÐÔ¿ÉÍØÕ¹µÄ£¬Èç¹ûÁ÷Á¿À´ÁË£¬ÍØÕ¹»úÆ÷¾ÍºÃ£»

ÃëɱÉè¼ÆË¼Â·
ÓÉÓÚǰ¶ËÊÇÊôÓÚС³ÌÐò¶Ë£¬ËùÒÔ²»´æÔÚǰ¶Ë²¿·ÖµÄ·ÃÎÊѹÁ¦£¬ËùÒÔǰ¶ËµÄ·ÃÎÊѹÁ¦¾ÍÎÞ´Ó̸Æð£»
1¡¢ÃëɱÏà¹ØµÄ»î¶¯Ò³ÃæÏà¹ØµÄ½Ó¿Ú£¬ËùÓвéѯÄܼӻº´æµÄ£¬È«²¿Ìí¼ÓredisµÄ»º´æ£»
2¡¢»î¶¯Ïà¹ØÕæÊµ¿â´æ¡¢Ëø¶¨¿â´æ¡¢ÏÞ¹º¡¢Ïµ¥´¦Àí״̬µÈÈ«·Åredis£»
3¡¢µ±ÓÐÇëÇó½øÀ´Ê±£¬Ê×ÏÈͨ¹ýredisÔ×Ó×ÔÔöµÄ·½Ê½¼Ç¼µ±Ç°ÇëÇóÊý£¬µ±ÇëÇ󳬹ýÒ»¶¨Á¿£¬±ÈÈç˵¿â´æµÄ10±¶Ö®ºó£¬ºóÃæ½øÈëµÄÇëÇóÔòÖ±½Ó·µ»Ø»î¶¯Ì«»ð±¬µÄÏìÓ¦£»¶øÄܽøÈëÇÀ¹ºµÄÇëÇó£¬ÔòÊ×ÏȽøÈë»î¶¯IDΪÁ£¶ÈµÄ·Ö²¼Ê½Ëø£¬µÚÒ»²½½øÐÐÓû§¹ºÂòµÄÖØ¸´ÐÔУÑ飬Âú×ãÌõ¼þ½øÈëÏÂÒ»²½£¬·ñÔò·µ»ØÒÑϵ¥µÄÌáʾ£»Õû±à£ºÎ¢ÐŹ«Öںţ¬ËÑÔÆ¿â¼¼ÊõÍŶӣ¬ID£ºsouyunku4¡¢µÚ¶þ²½£¬Åжϵ±Ç°¿ÉËø¶¨µÄ¿â´æÊÇ·ñ´óÓÚ¹ºÂòµÄÊýÁ¿£¬Âú×ãÌõ¼þ½øÈëÏÂÒ»²½£¬·ñÔò·µ»ØÒÑÊÛóÀµÄÌáʾ£»
5¡¢µÚÈý²½£¬Ëø¶¨µ±Ç°ÇëÇóµÄ¹ºÂò¿â´æ£¬´ÓËø¶¨¿â´æÖмõ³ý£¬²¢½«Ïµ¥µÄÇëÇó·ÅÈëkafkaÏûÏ¢¶ÓÁУ»
6¡¢µÚËIJ½£¬ÔÚredisÖбê¼ÇÒ»¸öpollingµÄkey£¨ÓÃÓÚÂÖѯµÄÇëÇó½Ó¿ÚÅжÏÓû§ÊÇ·ñ϶©µ¥³É¹¦£©£¬ÔÚkafkaÏû·Ñ¶ËÏû·ÑÍê³É´´½¨¶©µ¥Ö®ºóÐèҪɾ³ý¸Ãkey£¬²¢ÇÒά»¤Ò»¸ö»î¶¯id+Óû§idµÄkey£¬·ÀÖ¹ÖØ¸´¹ºÂò£»
7¡¢µÚÎå²½£¬ÏûÏ¢¶ÓÁÐÏû·Ñ£¬´´½¨¶©µ¥£¬´´½¨¶©µ¥³É¹¦Ôò¿Û¼õredisÖеÄÕæÊµ¿â´æ£¬²¢ÇÒɾ³ýpollingµÄkey¡£Èç¹ûϵ¥¹ý³Ì³öÏÖÒì³££¬Ôòɾ³ýÏÞ¹ºµÄkey£¬·µ»¹Ëø¶¨¿â´æ£¬ÌáʾÓû§Ïµ¥Ê§°Ü£»
8¡¢µÚÁù²½£¬Ìṩһ¸öÂÖѯ½Ó¿Ú£¬¸øÇ°¶ËÔÚÍê³ÉÇÀ¹º¶¯×÷ºó£¬¼ì²é×îÖÕ϶©µ¥²Ù×÷ÊÇ·ñ³É¹¦£¬Ö÷ÒªÅжÏÒÀ¾ÝÊÇredisÖеÄpollingµÄkeyµÄ״̬£»
9¡¢Õû¸öÁ÷³Ì»á½«ËùÓе½ºó¶ËµÄÇëÇóÀ¹½ØµÄÔÚredisµÄ»º´æ²ãÃæ£¬³ýÁË×îÖÕÄÜ϶©µ¥µÄ¿â´æÏÞÖÆ¶©µ¥»áÓëÊý¾Ý¿â´æÔÚ½»»¥Í⣬»ù±¾ÉÏÎÞÆäËûµÄ½»»¥£¬½«Êý¾Ý¿âI/OѹÁ¦½µµ½ÁË×îµÍ£»
¹ØÓÚÏÞÁ÷
SpringCloud zuulµÄ²ãÃæÓкܺõÄÏÞÁ÷²ßÂÔ£¬¿ÉÒÔ·ÀֹͬһÓû§µÄ¶ñÒâÇëÇóÐÐΪ
1 zuul: 2 ratelimit:
3 key-prefix: your-prefix #¶ÔÓ¦ÓÃÀ´±êʶÇëÇóµÄkeyµÄǰ׺ 4 enabled:
true 5 repository: REDIS #¶ÔÓ¦´æ´¢ÀàÐÍ£¨ÓÃÀ´´æ´¢Í³¼ÆÐÅÏ¢£© 6 behind-proxy:
true #´úÀíÖ®ºó 7 default-policy: #¿ÉÑ¡ - Õë¶ÔËùÓеÄ·ÓÉÅäÖõIJßÂÔ£¬³ý·ÇÌØ±ðÅäÖÃÁËpolicies
8 limit: 10 #¿ÉÑ¡ - ÿ¸öË¢ÐÂʱ¼ä´°¿Ú¶ÔÓ¦µÄÇëÇóÊýÁ¿ÏÞÖÆ 9 quota: 1000
#¿ÉÑ¡- ÿ¸öË¢ÐÂʱ¼ä´°¿Ú¶ÔÓ¦µÄÇëÇóʱ¼äÏÞÖÆ£¨Ã룩 10 refresh-interval:
60 # Ë¢ÐÂʱ¼ä´°¿ÚµÄʱ¼ä£¬Ä¬ÈÏÖµ (Ãë) 11 type: #¿ÉÑ¡ ÏÞÁ÷·½Ê½ 12 - user 13
- origin 14 - url 15 policies: 16 myServiceId: #ÌØ¶¨µÄ·ÓÉ 17
limit: 10 #¿ÉÑ¡- ÿ¸öË¢ÐÂʱ¼ä´°¿Ú¶ÔÓ¦µÄÇëÇóÊýÁ¿ÏÞÖÆ 18 quota: 1000
#¿ÉÑ¡- ÿ¸öË¢ÐÂʱ¼ä´°¿Ú¶ÔÓ¦µÄÇëÇóʱ¼äÏÞÖÆ£¨Ã룩 19 refresh-interval:
60 # Ë¢ÐÂʱ¼ä´°¿ÚµÄʱ¼ä£¬Ä¬ÈÏÖµ (Ãë) 20 type: #¿ÉÑ¡ ÏÞÁ÷·½Ê½ 21 - user 22
- origin 23 - url |
¹ØÓÚ¸ºÔØÓë·ÖÁ÷
µ±Ò»¸ö»î¶¯µÄ·ÃÎÊÁ¿¼¶Ìرð´óµÄʱºò£¬¿ÉÄÜ´ÓÓòÃû·Ö·¢½øÀ´µÄnginx¾ÍËãÊÇ×öÁ˸߿ÉÓ㬵«Êµ¼ÊÉÏ×îÖÕ»¹Êǵ¥»úÔÚÏߣ¬Ê¼Öյв»¹ý³¬´óÁ÷Á¿µÄѹÁ¦Ê±£¬ÎÒÃÇ¿ÉÒÔ¿¼ÂÇÓòÃûµÄ¶àIPÓ³Éä¡£Ò²¾ÍÊÇ˵ͬһ¸öÓòÃûÏÂÃæÓ³Éä¶à¸öÍâÍøµÄIP£¬ÔÙÓ³Éäµ½DMZµÄ¶à×é¸ß¿ÉÓõÄnginx·þÎñÉÏ£¬nginxÔÙÅäÖÿÉÓõÄÓ¦Ó÷þÎñ¼¯ÈºÀ´¼õ»ºÑ¹Á¦¡£Õû±à£ºÎ¢ÐŹ«Öںţ¬ËÑÔÆ¿â¼¼ÊõÍŶӣ¬ID£ºsouyunku
ÕâÀïҲ˳´ø½éÉÜredis¿ÉÒÔ²ÉÓÃredis clusterµÄ·Ö²¼Ê½ÊµÏÖ·½°¸£¬Í¬Ê±springcloud
hystrix Ò²ÄÜÓзþÎñÈÝ´íµÄЧ¹û£»
¶ø¹ØÓÚnxinx¡¢springbootµÄtomcat¡¢zuulµÈһϵÁвÎÊýÓÅ»¯²Ù×÷¶ÔÓÚÐÔÄܵķÃÎÊÌáÉýÒ²ÊÇÖÁ¹ØÖØÒª£»
²¹³ä˵Ã÷Ò»µã£¬¼´Ê¹Ç°¶ËÊÇ»ùÓÚС³ÌÐòʵÏÖ£¬µ«ÊǻÏà¹ØµÄͼƬ×ÊÔ´¶¼·ÅÔÚ×Ô¼ºµÄÔÆÅÌ·þÎñÉÏ£¬ËùÒԻǰ»î¶¯Ïà¹ØµÄͼƬ×ÊÔ´ÉÏ´«CDNÒ²ÊÇÖÁ¹ØÖØÒª£¬·ñÔòÄÄÅÂÊÇÄãIDCÓÐ1GµÄÁ÷Á¿´ø¿í£¬Ò²»á·Ö·ÖÖÓ±»³ÔÍꣻ
Ö÷Òª´úÂëʵÏÖ
ÖÜÄ©³é¿ÕÕûÀíÁËÒ»¸öСdemo£¬°ÑÖ÷ÒªµÄÒµÎñÂß¼³é³öÀ´ÁË£¬ÓÉÓÚΪÁË·½±ã´¦Àí£¬ÔÝʱÊÇŪ³ÉÁ˵¥ÌåÓ¦Óã¬ÉÏÎÄÖÐÌáµ½µÄºÜ¶àµÄ×é¼þ²¢Ã»ÓÐÈ«²¿¼¯³É½øÀ´£¬Ö»±£ÁôÁ˺ËÐĵÄÒµÎñ´¦ÀíÂß¼£»ÈçÓÐÐèÒª£¬ÔÙ½«Ò»ÕûÌ׵Ŀò¼Ü¿ªÔ´³öÀ´ÁË£¨°üº¬ÁË΢·þÎñºó¶ËºÍ·ÖÀëÁ˵ÄVUE+elementUI+AdminLTEµÄºǫ́¹ÜÀí¿ò¼Ü£©£»
swaggerµØÖ·£º
http://localhost:8080/swagger -ui.html
git clone ÏîÄ¿ºóÆô¶¯¼´¿É·ÃÎÊ

ÉèÖÃ¿â´æ²ÎÊý
{ "stockNum":100,
"stallActivityId":1} |

ÉèÖÃÈ¥Ãëɱ²ÎÊý
{ "stallActivityId":
1, "purchaseNum": 1, "openId":
"this is a test openId", "formId":
"this is a test formId", "addressId":
100 } |

ÉèÖÃÂÖѯÇëÇóµÄ²ÎÊý
{ "stallActivityId":
1, "openId": "this is a test openId"
} |

gitµØÖ·
|