-- ·|­û / µù¥U -- ¡@
¡@±b¸¹¡G
¡@±K½X¡G
¡@ | µù¥U | §Ñ°O±K½X
3/26 ·s®Ñ¨ì¡I 3/19 ·s®Ñ¨ì¡I 3/14 ·s®Ñ¨ì¡I 12/12 ·s®Ñ¨ì¡I
ÁʮѬyµ{¡EQ & A¡E¯¸°È¯d¨¥ª©¡E«ÈªA«H½c
¢x 3ds Max¢x Maya¢x Rhino¢x After Effects¢x SketchUp¢x ZBrush¢x Painter¢x Unity¢x
¢x PhotoShop¢x AutoCad¢x MasterCam¢x SolidWorks¢x Creo¢x UG¢x Revit¢x Nuke¢x
¢x C#¢x C¢x C++¢x Java¢x ¹CÀ¸µ{¦¡¢x Linux¢x ´O¤J¦¡¢x PLC¢x FPGA¢x Matlab¢x
¢x Àb«È¢x ¸ê®Æ®w¢x ·j¯Á¤ÞÀº¢x ¼v¹³³B²z¢x Fluent¢x VR+AR¢x ANSYS¢x ²`«×¾Ç²ß¢x
¢x ³æ´¹¤ù¢x AVR¢x OpenGL¢x Arduino¢x Raspberry Pi¢x ¹q¸ô³]­p¢x Cadence¢x Protel¢x
¢x Hadoop¢x Python¢x Stm32¢x Cortex¢x Labview¢x ¤â¾÷µ{¦¡¢x Android¢x iPhone¢x
¥i¬d®Ñ¦W,§@ªÌ,ISBN,3dwoo®Ñ¸¹
¸Ô²Ó®ÑÄy¤ÀÃþ

Spring Cloud»PDocker°ª¦}µo·LªA°È¬[ºc³]­p¹ê¬I

( ²Åé ¦r)
§@ªÌ¡G³¯»à°·Ãþ§O¡G1. -> µ{¦¡³]­p -> JAVA -> Spring
¡@¡@¡@2. -> §@·~¨t²Î -> Docker
ĶªÌ¡G
¥Xª©ªÀ¡G¹q¤l¤u·~¥Xª©ªÀSpring Cloud»PDocker°ª¦}µo·LªA°È¬[ºc³]­p¹ê¬I 3dWoo®Ñ¸¹¡G 49217
¸ß°Ý®ÑÄy½Ð»¡¥X¦¹®Ñ¸¹¡I

¡i¯Ê®Ñ¡j
NT°â»ù¡G 395 ¤¸

¥Xª©¤é¡G6/1/2018
­¶¼Æ¡G360
¥úºÐ¼Æ¡G0
¯¸ªø±ÀÂË¡G
¦L¨ê¡G¶Â¥Õ¦L¨ê»y¨t¡G ( ²Åé ª© )
¥[¤JÁʪ«¨® ¢x¥[¨ì§Úªº³Ì·R
(½Ð¥ýµn¤J·|­û)
ISBN¡G9787121341618
§@ªÌ§Ç¡@|¡@ĶªÌ§Ç¡@|¡@«e¨¥¡@|¡@¤º®e²¤¶¡@|¡@¥Ø¿ý¡@|¡@§Ç
(²Åé®Ñ¤W©Ò­z¤§¤U¸ü³sµ²¯Ó®É¶O¥\, ®¤¤£¾A¥Î¦b¥xÆW, ­YŪªÌ»Ý­n½Ð¦Û¦æ¹Á¸Õ, ®¤¤£«OÃÒ)
§@ªÌ§Ç¡G

ĶªÌ§Ç¡G

«e¨¥¡G

²³æ¦a»¡¡A·LªA°È´N¬O¤@ºØ¨Ï¥Î»´¶q¯Å¬[ºc³]­pªº²Õ¥ó¤Æªº¤pÀ³¥Î¡A³oºØ¤pÀ³¥Î¥uÃöª`¤@©w­S³òªº·~°È¥\¯à¡A©¹©¹¥u­t³d°µ¦n¤@¥ó¨Æ±¡¡C³q¹L«Ü¦h³o¼Ëªº¤pÀ³¥Î¡A§Q¥Î¤@ºØ°ª®Ä¦ÓÆF¬¡ªººÞ²z¾÷¨î¡A¥i¥H²Õ¦¨¤@­Ó¥\¯à¥þ­±¥B·~°ÈÂ×´Iªº¤j«¬¥­»O¡C³oºØºÞ²z¾÷¨î¥]¬AªA°Èªºª`¥U»Pµo²{¡BªA°Èªº¸ô¥Ñ»P­t¸ü§¡¿ÅºÞ²z¡BªA°È¤§¶¡Â²³æ¦Ó§Ö±¶ªº³q«Hµ¥¥\¯à¡C

»´¶q¯Åªº·LªA°È¬[ºc³]­p¤èªk¡A¬O¦bÄvª§¿E¯Pªº¤¬ÁpºôÀô¹Ò¤¤½Ï¥Í¦}¥Bµo®i°_¨Óªº¡A«D±`¾A¦X¤¬ÁpºôÀ³¥Î§Ö³t­¡¥N©M³W¼Ò¤ÆÂX±iªº¯SÂI¡C·í­·Ãû¤@®ÉªºSOA¬[ºc¦]¬°¨ä­«¶q¯Åªº³]­p¤èªk¡A¦}¤£¯à¾AÀ³·~°È§Ö³tÅܧó©M°ª³tµo®iªº­n¨D®É¡A·LªA°È¬[ºc»´¶q¯Åªº³]­p­·®æªº¥X²{µLºÃ¬O³n¥ó¤uµ{³]­pªº±Ï¬P¡A¥¦µ¹³n¥ó¤uµ{³]­p­«·sª`¤J¤F¤@ªÑ·sÂA¬¡ÅDªº¦å²G¡C

¤¬Ápºô¸gÀÙ¿E¯PÄvª§ªº¯S©Ê¡A­P¨Ï·~°È»Ý¨D¸g±`µo¥ÍÅܤơA³o´N­n¨D§Þ³N¶}µo¥²¶·¨ã¦³«D±`§Ö³tªºÅTÀ³¯à¤O¡A¥H§Ö³t·m¥e¥«³õ¥ý¾÷¡AÅé²{¤@ºØ¡§°ª¤â¹L©Û¡B°ß§Ö¤£¯}¡¨ªº­·®æ¡C¦Ó¥B¡A²£«~¤@¸g±À¥X¡A¥²¶·¸g±`¶i¦æ½Õ¾ã©M­¡¥N¡A¥H¨Ï¨ä©l²×³£¯à³B¤_¡§¥XÃþ©ÞµÑ¡BÅb¥ßÂû¸s¡¨ªº¦a¦ì¡C§ó¬°­«­nªº¤@­±¬O¤¬Ápºô¸gÀÙ¥¨¤jªº¥«³õ¼ç¤O¡A¥²µM·|IJµoÀ³¥Î²£«~¨«¤W³W¼Ò¤ÆÂX±iªº¹D¸ô¡A³oºØÂX±i¦³®É¬Æ¦Ü¬OÃz¬µ©Êªº¡A³o¹ï²£«~ªº©Ê¯à©Mí©w©Ê³£´£¥X¤F«e©Ò¥¼¦³ªº°ª­n¨D¡C

¹ï¤_³n¥ó³]­p©M¶}µo¡A°ß¦³»´¸Ë¤W°}¤~¯à®É¨è¥Rº¡¬¡¤O¡A©l²×¨ã¦³¨R¾W³´°}ªº¤z«l©M±j§§ªº¥Í©R¤O¡C·LªA°È¬[ºc»´¶q¯Åªº³]­pÆ[©À¤Î¨äº¥¶i¦¡ªº¶}µo¯SÂI¡A¥¿¬OÅé²{¤F³oºØ»P®É­Ñ¶iªº¥ý¶i³]­p«ä·Q¡C

¦b·LªA°È¬[ºc³]­p¹ê¬Iªº¹ê½î¤¤¡ANetflix OSS¬O¤j®a©Ò¤½»{ªº³Ì¦­¨Ï¥Î·LªA°È¬[ºc³]­pªº¨å­S¡ASpring¹Î¶¤¦b¨ä¶}·½²Õ¥óªº°ò¦¤W¡A²Õ«Ø¤F¤@­Ó°ò¤_Spring Boot ¶}µo®Ø¬[ªºSpring Cloud¤u¨ã®M¥ó¡CSpring Cloud¤u¨ã®M¥ó¬°¶}µoªÌ´£¨Ñ¤F¤@­Ó§¹¾ã¦Ó°t®Mªº¤u¨ã²Õ¥ó¡A¨Ï·LªA°È¬[ºcªº¹ê¬I©M¶}µoÅܱo§ó¥[´¶³q©M®e©ö¡CSpring Cloud¤u¨ã®M¥ó´£¨Ñ¤F¥]¬A¦ý¤£­­¤_ªA°Èª`¥UºÞ²z¡B´¼¯à¸ô¥Ñ¡B­t¸ü§¡¿ÅªA°È¡Bº²Â_®e¿ù©MªA°È­°¯Å¾÷¨î¡B¶°¤¤°t¸mºÞ²z¡BªA°ÈºÊ±±»P¸òÂܵ¥¥\¯à²Õ¥ó©MªA°È¡C

¥»®Ñ±N¸Ô²Ó¤¶²Ð¦p¦ó¨Ï¥ÎSpring Cloud¤u¨ã®M¥ó¨Ó³]­p©M¶}µo·LªA°È¡A¦}¥B¤£¥u¬O°±¯d¦bªí­±¤W¹ïSpring Cloud¦U­Ó¤u¨ã²Õ¥ó¥»¨­ªº¨Ï¥Î»¡©ú©M¤¶²Ð¡A¦Ó¬O±q¬[ºc³]­p¥Xµo¡A»¡©ú¤F¦p¦ó§ó¦n¦a±N·LªA°È¬[ºcªº³]­p²z©ÀÀ³¥Î¤_¥Í²£¹ê½î¤¤¡A¦}¦b¹ê»ÚÀ³¥Î¤¤¥[²`¹ïSpring Cloud¤u¨ã®M¥óªº²z¸Ñ©M´x´¤ªºµ{«×¡C¦P®ÉÁÙ±N¤¶²Ð«ç¤\¨Ï¥ÎDocker©MJenkinsµ¥¤u¨ã¨Ó¶i¦æ·LªA°Èªº³¡¸p©Mµo¥¬¡A¦}³q¹Lºc«Ø¤@¨t¦C°ª¥i¥Î©ÊªºªA°È¾¹¬[ºc³]­p¡AÄÄ­z¤Fºc«Ø¤@­Óí©w¡B¥i¾a¦}¥B¯à°÷¾AÀ³³W¼Ò¤Æµo®iªºÀ³¥Î¥­»Oªº¤èªk¡C
¥»®Ñ±N±q¬[ºc³]­p¡BÀ³¥Î¶}µo©M¹Bºû³¡¸p¤T­Ó¤è­±¥Xµo¡A¹ï·LªA°È¬[ºc³]­pªº¹ê¬I¶i¦æ¥þ¤è¦ìªº¤¶²Ð©M¸Ô²Ó»¡©ú¡A¦b³o¤@¹Lµ{¤¤±N¨Ï¥Î¤@­Ó¤¬Ápºô¥­»Oªº¹ê¨Ò®i¶}¤ÀªR©M²`¤J¹ê½î¡C
³q¹L¹ï¥»®Ñªº¨t²Î¾Ç²ß¡A¥i¥HÅýŪªÌ±N·LªA°È¬[ºcªº³]­p¤èªk§Ö³tÀ³¥Î¤_¥Í²£¹ê½î¤¤¡A¬°¶}µo¹Î¶¤©M¥ø·~´£¨Ñ°í¤£¥iºRªºÄvª§¤O¡C
Åý§Ú­Ì¤@°_§V¤O¡A¦@¦P±´¯Á§a¡IÅý¥ý¶iªº§Þ³N²v¥ý¦¨¬°§Ú­Ì¥ý¶iªº¥Í²£¤O¡C

¥»®ÑªºÅªªÌ¹ï¶H
¥»®ÑªºÅªªÌ¹ï¶H¬°¼s¤jªºJava¶}µoªÌ¡B¨t²Î¬[ºc®v©M¨t²Î¹Bºû¤H­û¡C¥»®Ñ¯S§O¾A¦X¨Ï¥Î¹LSpring¶}·½®Ø¬[©Î¨ã¦³Spring®Ø¬[°ò¦ª¾ÃѪº¼s¤j¥Î¤á¸sÅé¡C
¥»®Ñ³¹¸`²Õ¦¨
¥»®Ñ¥Ñ¤T³¡¤À²Õ¦¨¡A¦U³¡¤À¤Î¨ä³¹¸`ªºµ²ºc¦p¤U©Ò¥Ü¡C
²Ä¤@³¡¤À ¬[ºc½g
²Ä1³¹ ·LªA°È¬[ºc»PSpring Cloud
²Ä2³¹ ·LªA°È¬[ºc³Ì¨Î³]­p
²Ä3³¹ ¹q°Ó¥­»O·LªA°È³]­p¹ê¨Ò
²Ä¤G³¡¤À ¶}µo½g
²Ä4³¹ ¶}µo¤u¨ã¿ï¥Î¤ÎSpring Boot°ò¦
²Ä5³¹ ¹q°Ó¥­»O·LªA°È¤uµ{³]­p
²Ä6³¹ ·LªA°Èªv²z°ò¦ªA°È¶}µo
²Ä7³¹ Rest API·LªA°È¶}µo
²Ä8³¹ Web UI·LªA°È¶}µo
²Ä9³¹ ¹q°Ó¥­»O²¾°Ê°Ó«°¶}µo
²Ä10³¹ °Ó®aºÞ²z¦Z»O»PSSO³]­p
²Ä11³¹ ¥­»OºÞ²z¦Z»O¶}µo
²Ä¤T³¡¤À ¹Bºû½g
²Ä12³¹ ªA°È¾¹¬[ºc³]­p»PDocker¨Ï¥Î
²Ä13³¹ ¼Æ¾Ú®w¶°¸s³]­p»P°ª¥i¥ÎŪ¼g¤ÀÂ÷¹ê¬I
²Ä14³¹ ¤À¥¬¦¡¤å¥ó¨t²Îµ¥°ò¦³]¬I¦w¸Ë»P°t¸m
²Ä15³¹ ¨Ï¥Î¦Û°Ê¤Æºc«Ø¤u¨ãJenkins¹ê²{CI/CD
­PÁÂ
«D±`·PÁªø´Áµ¹¤©§Ú¤ä«ù©M¹ªÀyªºªB¤Í­Ì¡A¦]¬°¦³¤F§A­Ìªº¤ä«ù©M¹ªÀy¡A¤~Åý§Ú·P¨ìµL¤ñªº©¯ºÖ©M´g·N¡CÁÙ­n·PÁ´¿¸g»P§Ú¤@°_¶i¦æ¹L·LªA°È¶}µoªº¤p¥ë¦ñ­Ì¡A¥O¤HªY¼¢ªº¬O¡A§Ú¤w¸g§I²{¤F¤§«eªº©Ó¿Õ¡A±N·LªA°È¬[ºc³]­pªº¸gÅç¶×½s¦¨®Ñ¡C³Ì¦Z­n·PÁ®a¤H¹ï§Úªº¤ä«ù¡A¦b¥»®Ñ¼g§@ªº¹Lµ{¤¤¡A§Ú´X¥G±N©Ò¦³ªºªÅ¶~®É¶¡³£ªá¶O¦b¼g§@¤§¤¤¡A¦Ó©¿²¤¤F¹ï§A­Ìªº³­¦ñ¡A¹ï¦¹§Ú²`·Pºp·N¡C
¦pªG®Ñ¤¤¦³¤£¹ïªº¦a¤è©ÎªÌ¥ô¦ó¯Äº|¡AÁÙ·q½Ð¤j®a¤£§[½ç±Ð¡A§Ú±N·P¿E¤£ºÉ¡C
µ§ ªÌ
¤º®e²¤¶¡G

¥»®Ñ±q¬[ºc³]­p¡BÀ³¥Î¶}µo©M¹Bºû³¡¸p¤T­Ó¤è­±¥Xµo¡A¹ï·LªA°È¬[ºc³]­pªº¹ê¬I¶i¦æ¤F¥þ¤è¦ìªºÄÄ­z©M²`¤J¹ê½î¡A¦}µ²¦X¥Í²£¹ê»ÚÁ¿¸Ñ¤FSpring Cloud¡BDocker©MJenkinsµ¥¤u¨ãªº¨ãÅé¨Ï¥Î¤èªk¡C®Ñ¤¤³q¹L¤@­Ó¤¬Ápºô¹q°Ó¥­»O¹ê¨Ò¹ê²{¤F°ª¦}µoªº·LªA°È¬[ºc³]­p¡A¦}³q¹L¸Ô²Óªº¶}µo©M¹ê¬I¹Lµ{¡Aºt¥Ü¤Fºc«Ø¤@­Ó¦w¥þ¥i¾a¡Bí©w°ª®Ä¦}¥i«ùÄòÂX®iªº¨t²Î¥­»Oªº¤èªk¡C¥»®Ñ¾A¦X¤¬ÁpºôÀ³¥Î¶}µo³]­p¤H­û°Ñ¦Ò¾Ç²ß¡C

¥Ø¿ý¡G

²Ä¤@³¡¤À ¬[ ºc ½g
1 ·LªA°È¬[ºc»PSpring Cloud 2
1.1 ·LªA°È·§©Àªº¥Ñ¨Ó 2
1.2 ·LªA°Èªº©w¸q 3
1.3 ·LªA°È¬[ºc»P¾ãÅ馡¬[ºcªº°Ï§O 5
1.4 ·LªA°È¬[ºc»PSOAªº¤ñ¸û 8
1.5 ¬°¤°¤\­n¨Ï¥Î·LªA°È¬[ºc 9
1.6 ¬°¹ê¬I·LªA°È¬[ºc°µ¦n·Ç³Æ 10
1.6.1 «ä·QÆ[©ÀªºÂàÅÜ 10
1.6.2 ¹Î¶¤ºÞ²z¤è¦¡ªº§ïÅÜ 11
1.6.3 ¦Û°Ê¤Æ°ò¦³]¬Iªº«Ø³] 11
1.7 ¬°¤°¤\­n¨Ï¥ÎSpring Cloud 12
1.8 Spring Cloud²Õ¥ó¤¶²Ð 13
1.9 Spring Cloudªºª©¥»»¡©ú 15
1.10 ¤pµ² 17
2 ·LªA°È¬[ºc³Ì¨Î³]­p 18
2.1 ¦X²z¹º¤À·LªA°È 19
2.2 ·LªA°Èªv²z 19
2.3 Rest API·LªA°È³]­p 21
2.3.1 ¨Ï¥Î¼Æ¾Ú®w¶°¸s 22
2.3.2 Ū¼g¤ÀÂ÷³]­p 22
2.3.3 ¨Ï¥Î½w¦s 22
2.3.4 «OÃÒRest API·LªA°Èªº¿W¥ß©Ê 23
2.4 Web UI·LªA°È³]­p 23
2.4.1 ¨Ï¥ÎFeignClient¹ê²{­t¸ü§¡¿Å½Õ¥Î 23
2.4.2 ¨Ï¥ÎHystrix¹ê²{®e¿ù³]­p 23
2.4.3 ¨Ï¥Î«Dªý¶ëªº²§¨B½sµ{§Þ³N¹ê²{°ª¦}µo½Õ¥Î 24
2.4.4 ¨Ï¥Î¤À¥¬¦¡¤å¥ó¨t²Î 24
2.5 ·LªA°È¤§¶¡½Õ¥Î³W«h³]­p 24
2.6 ¼Æ¾Ú³Ì²×¤@­P©Ê³]­p 25
2.7 ¤À¥¬¦¡¶°¸s¬[ºc³]­p 26
2.8 ·LªA°È¹B¦æÀô¹Ò¦w¥þ³]­p 27
2.9 ¤pµ² 27
3 ¹q°Ó¥­»O·LªA°È³]­p¹ê¨Ò 29
3.1 ¹q°Ó¥­»OÁ`Åé³]­p 29
3.1.1 Á`Åé·~°È¬yµ{³]­p 29
3.1.2 Á`Åé·~°È¥\¯à³]­p 31
3.2 ¹q°Ó¥­»O·~°È¼Ò«¬³]­p 32
3.2.1 ²¾°Ê°Ó«°·~°È¼Ò«¬ 32
3.2.2 °Ó®aºÞ²z¦Z»O·~°È¼Ò«¬ 33
3.2.3 ¥­»OºÞ²z¦Z»O·~°È¼Ò«¬ 33
3.3 ³Ð«ØRest API·LªA°È 34
3.4 ³Ð«ØWeb UI·LªA°È 36
3.4.1 ²¾°Ê°Ó«°Web UI·LªA°È 36
3.4.2 °Ó®aºÞ²z¦Z»OªºWeb UI·LªA°È 37
3.4.3 ¥­»OºÞ²z¦Z»OWeb UI·LªA°È 37
3.5 ¹q°Ó¥­»O·LªA°ÈÅé¨tµ²ºc 38
3.6 ¤pµ² 39
²Ä¤G³¡¤À ¶} µo ½g
4 ¶}µo¤u¨ã¿ï¥Î¤ÎSpring Boot°ò¦ 41
4.1 ¶}µo¤u¨ã¿ï¾Ü 42
4.2 ¶}µoÀô¹Ò°t¸m 42
4.3 ³Ð«ØSpring Boot¤uµ{ 43
4.4 ¨Ï¥ÎJPA 47
4.4.1 ¼Æ¾Ú·½°t¸m 48
4.4.2 JPA°t¸m 48
4.4.3 ¼Æ¾Ú¹êÅé³]­p 49
4.4.4 ¦sÀx®w±µ¤f³]­p 49
4.4.5 ³æ¤¸´ú¸Õ 50
4.5 ¨Ï¥ÎThymeleaf 51
4.5.1 ±±¨î¾¹³]­p 51
4.5.2 µø¹Ï³]­p 52
4.6 ¹B¦æ»P³¡¸p 52
4.7 ¤pµ² 53
5 ¹q°Ó¥­»O·LªA°È¤uµ{³]­p 54
5.1 ·LªA°È¤uµ{µ²ºc 54
5.2 ¹q°Ó¥­»O·LªA°È¤uµ{²Õ«Ø 56
5.3 ¼Æ¾Ú®w¿ï«¬ 56
5.4 ·LªA°È¤uµ{³Ð«Ø¨BÆJ 57
5.5 ¶µ¥Ø°ò¥»°t¸m 59
5.6 ³Ð«Ø¼Ò¶ô 63
5.7 ¤pµ² 65
6 ·LªA°Èªv²z°ò¦ªA°È¶}µo 66
6.1 ª`¥UºÞ²z¤¤¤ß 67
6.1.1 ³Ð«Øª`¥UºÞ²z¤¤¤ß 67
6.1.2 ¹B¦æª`¥UºÞ²z¤¤¤ß 69
6.1.3 ·LªA°È«ç¼Ë¨Ï¥Îª`¥UºÞ²z¤¤¤ß 69
6.1.4 ºc«Ø°ª¥i¥Îªºª`¥UºÞ²z¤¤¤ß 71
6.2 °t¸mºÞ²z¤¤¤ß 72
6.2.1 ³Ð«Ø°t¸mºÞ²z¤¤¤ß 72
6.2.2 ·LªA°È¦p¦ó¨Ï¥Î°t¸mºÞ²z¤¤¤ß 75
6.2.3 ¦b½u§ó·s°t¸m«H®§ 76
6.3 ·LªA°ÈºÊ±±¤¤¤ß 77
6.3.1 ¨Ï¥ÎÂ_¸ô¾¹»öªí½L¹ê²{ºÊ±± 78
6.3.2 »E¦XªA°ÈºÊ±±ºÞ²z¤¤¤ß 80
6.4 ªA°È¸òÂܤÀªR¤¤¤ß 85
6.4.1 ³Ð«ØªA°È¸òÂܤÀªR¤¤¤ß 85
6.4.2 ¦b·LªA°È¤¤±Ò¥ÎªA°È¸òÂÜ¥\¯à 89
6.5 ¤é§Ó¤ÀªR¥­»O 92
6.5.1 ³Ð«Ø¤é§Ó¤ÀªR¥­»O 92
6.5.2 ¨Ï¥Î¤é§Ó¤ÀªR¥­»O 92
6.6 ¤pµ² 93
7 Rest API·LªA°È¶}µo 95
7.1 »â°ì·~°È¶}µo 95
7.1.1 ¨Ï¥ÎDruid¼Æ¾Ú·½ 97
7.1.2 JPA¤Î¨ä°t¸m 99
7.1.3 ¼Æ¾Ú¹êÅé«Ø¼Ò 100
7.1.4 ¬d¸ß¹ï¶H³]­p 103
7.1.5 ¹êÅé«ù¤[¤Æ³]­p 105
7.1.6 «ù¤[¤Æ´ú¸Õ 106
7.1.7 »â°ìªA°È¶}µo 108
7.1.8 »â°ìªA°Èªº³æ¤¸´ú¸Õ 110
7.1.9 ¨Ï¥ÎRedis¹ê²{½w¦s³]­p 111
7.2 Rest APIÀ³¥Î¶}µo 116
7.2.1 Rest APIÀ³¥Î°t¸m 116
7.2.2 ±Ò°Êµ{§Ç³]­p 118
7.2.3 ±µ¤f¶}µo 118
7.3 ¨Ï¥Î®ø®§³B²z¨Æ¥ó 122
7.3.1 ®ø®§¥Í²£ªÌ³]­p 123
7.3.2 ®ø®§®ø¶OªÌ³]­p 124
7.3.3 ¨Ï¥Î®ø®§´ú¸Õ 127
7.4 ¤pµ² 128
8 Web UI·LªA°È¶}µo 130
8.1 °ª¦}µo±µ¤f½Õ¥Î¤À¼h³]­p 130
8.2 ³q¹LFeignClient½Õ¥ÎRest API 131
8.3 ¨Ï¥ÎHystrixÂ_¸ô¾¹ 133
8.4 ¨Ï¥Î«Dªý¶ë²§¨B½sµ{¤èªk 135
8.4.1 CompletableFuture¤¶²Ð 136
8.4.2 ©Ê¯à¤ñ¸û´ú¸Õ 139
8.5 WebÀ³¥Î¶}µo 144
8.5.1 ¶µ¥Ø¤Þ¥Î°t¸m 144
8.5.2 À³¥Îµ{§Ç°t¸m 145
8.5.3 ·~°È¥\¯à¶}µo 147
8.6 ¶}µoÀô¹Òªº¼ö³¡¸p³]¸m 153
8.7 ¨Ï¥Î¤À¥¬¦¡¤å¥ó¨t²Î 156
8.7.1 ¤À¥¬¦¡¤å¥ó¨t²Î«È¤áºÝ¶}µo 156
8.7.2 °Ó«~¹Ï¤ù¤W¶Ç³]­p 158
8.7.3 ´I¤å¥»½s¿è¾¹¤W¶Ç¤å¥ó³]­p 159
8.7.4 «Ø¥ß¥»¦a¤å¥ó«H®§®w 162
8.8 ¤pµ² 165
9 ¹q°Ó¥­»O²¾°Ê°Ó«°¶}µo 166
9.1 ²¾°Ê°Ó«°­º­¶³]­p 167
9.2 ¨Ï¥Î­t¸ü§¡¿Åªº¾É¯è³]­p 173
9.3 «ö¤ÀÃþ¬d¸ß³]­p 175
9.4 °Ó«~¸Ô±¡­¶³]­p 178
9.5 ÁʶR¤U³æ¹ê²{ 180
9.6 ¥Î¤áµn¿ý»P½ã¤á¤Á´«³]­p 183
9.6.1 ¥Î¤áµn¿ý³]­p 183
9.6.2 ¤Á´«½ã¸¹³]­p 185
9.7 ­q³æ¬d¸ß³]­p 187
9.8 ¶°¦¨´ú¸Õ 190
9.9 ¤pµ² 191
10 °Ó®aºÞ²z¦Z»O»PSSO³]­p 192
10.1 °Ó®aÅv­­ºÞ²zÅé¨t³]­p¤Î¶}µo 193
10.1.1 °Ó®aÅv­­Åé¨t«Ø¼Ò 194
10.1.2 °Ó®aÅv­­Åé¨tªº«ù¤[¤Æ³]­p 198
10.1.3 °Ó®aÅv­­Åé¨tªº»â°ìªA°È¶}µo 200
10.2 °Ó®aºÞ²z·LªA°È¶}µo 203
10.2.1 °Ó®a»â°ìªA°È¼h³æ¤¸´ú¸Õ 203
10.2.2 °Ó®aªA°Èªº±µ¤f¶}µo 207
10.3 SSO³]­p 212
10.3.1 SSO°ò¥»°t¸m 212
10.3.2 ¦bSSO¤¤¨Ï¥Î°Ó®aªºÅv­­Åé¨t 213
10.3.3 ¥Î¤áµn¿ý³]­p 215
10.3.4 ¦³ÃöÅçÃÒ½Xªº»¡©ú 217
10.3.5 SSOªº¥D­¶³]­p 219
10.3.6 OAuth2ªA°ÈºÝ³]­p 221
10.4 SSO«È¤áºÝ³]­p 223
10.4.1 «È¤áºÝªº¶µ¥ØºÞ²z°t¸m 223
10.4.2 «È¤áºÝªº¦w¥þºÞ²z°t¸m 224
10.4.3 Åv­­ÅçÃÒ¹ê²{­ì²z 225
10.4.4 ¦p¦ó¦bÀ³¥Î¤¤±µ¤JSSO 227
10.4.5 ¦³Ãö¸ó¯¸½Ð¨D°°³y¨¾±sªº¬ÛÃö³]¸m 229
10.4.6 ®Ú¾Ú¥Î¤áÅv­­¦Û°Ê¤À°tµæ³æ 229
10.5 ¤pµ² 231
11 ¥­»OºÞ²z¦Z»O¶}µo 232
11.1 ¥­»OºÞ²z¦Z»O»â°ì³]­p 232
11.1.1 »â°ì¹êÅé«Ø¼Ò 232
11.1.2 ¹êÅ骺¦æ¬°³]­p 235
11.1.3 »â°ìªA°È¶}µo 235
11.1.4 »â°ìªA°È³æ¤¸´ú¸Õ 238
11.2 ¥­»OºÞ²z¦Z»O³X°Ý±±¨î³]­p 239
11.2.1 ¨Ï¥Î¥­»OºÞ²zªº¥Î¤áÅé¨t 239
11.2.2 Åv­­ºÞ²z³]­p 241
11.3 °Ó®aªºª`¥U³]­p 244
11.4 °Ó®aµæ³æÅé¨tºÞ²z¶}µo 247
11.4.1 ¤ÀÃþµæ³æºÞ²z¶}µo 247
11.4.2 ¼Ò¶ôµæ³æºÞ²z¶}µo 248
11.4.3 ³X°Ý¸ê·½ºÞ²z¶}µo 251
11.5 °Ó®a¨¤¦âºÞ²z¶}µo 254
11.6 ¤pµ² 256
²Ä¤T³¡¤À ¹B ºû ½g
12 ªA°È¾¹¬[ºc³]­p»PDocker¨Ï¥Î 258
12.1 ªA°È¾¹²Õ«Ø 258
12.2 ¦w¥þªºªA°È¾¹¬[ºc³]­p 259
12.2.1 ¨¾¤õùÙ¦w¸Ë¤Î°t¸m 259
12.2.2 «Ø¥ß¦w¥þªº§½°ìºôÀô¹Ò 263
12.3 ªA°È¾¹¸ê·½¤À°t 265
12.4 CentOS¦w¸Ë 268
12.4.1 IP¦a§}³]¸m 269
12.4.2 ¦w¥þ³]¸m 269
12.4.3 »y¨¥°t¸m 269
12.4.4 ®É¶¡¦P¨B°t¸m 270
12.5 Docker©Mdocker-compose¦w¸Ë 270
12.5.1 Docker¦w¸Ë¤Î¨Ï¥Î 271
12.5.2 docker-compose¦w¸Ë¤Î¨Ï¥Î 274
12.6 ¨Ï¥ÎDocker·f«Ø·LªA°Èªv²zÀô¹Ò 278
12.6.1 ªA°È¾¹1ªº³¡¸p°t¸m 278
12.6.2 ªA°È¾¹2ªº³¡¸p°t¸m 280
12.7 ¨Ï¥ÎDocker³¡¸p¤é§Ó¤ÀªR¥­»O 282
12.8 ¨Ï¥ÎDocker³¡¸p·LªA°ÈÀ³¥Î 285
12.9 ¤pµ² 285
13 ¼Æ¾Ú®w¶°¸s³]­p»P°ª¥i¥ÎŪ¼g¤ÀÂ÷¹ê¬I 287
13.1 MySQL¦w¸Ë 288
13.2 ¥D±q¦P¨B³]¸m 290
13.3 ¥D¥D¦P¨B³]¸m 293
13.4 ¼Æ¾Ú®w¥N²z¤¤¶¡¥ó¿ï¾Ü 295
13.5 ¨Ï¥ÎOneProxy¹ê²{Ū¼g¤ÀÂ÷³]­p 296
13.5.1 OneProxy¦w¸Ë 296
13.5.2 °ª¥i¥ÎŪ¼g¤ÀÂ÷°t¸m 297
13.6 OneProxy¤À®w¤À°Ï³]­p 301
13.6.1 «ö­S³ò¤À®w¤Àªí 302
13.6.2 «ö­È¤À®w¤Àªí 302
13.6.3 «ö«¢§Æºâªk¤À®w¤Àªí 303
13.7 Âù¾÷¼ö³Æ³]­p 305
13.8 ¤pµ² 306
14 ¤À¥¬¦¡¤å¥ó¨t²Îµ¥°ò¦³]¬I¦w¸Ë»P°t¸m 307
14.1 °ª¥i¥Îªº¤À¥¬¦¡¤å¥ó¨t²Îºc«Ø 307
14.1.1 FastDFS¦w¸Ë 309
14.1.2 ¸òÂܪA°È¾¹°t¸m 309
14.1.3 ¦sÀx¸`ÂI°t¸m 310
14.1.4 ¤W¶Ç¤å¥ó´ú¸Õ 311
14.1.5 Nginx¦w¸Ë¤Î­t¸ü§¡¿Å°t¸m 312
14.1.6 ¶}¾÷±Ò°Ê³]¸m 316
14.2 GitLab¦w¸Ë 321
14.3 Redis¦w¸Ë 323
14.4 RabbitMQ¦w¸Ë 325
14.5 ¤pµ² 326
15 ¨Ï¥Î¦Û°Ê¤Æºc«Ø¤u¨ãJenkins¹ê²{CI/CD 327
15.1 «ùÄò¥æ¥I¤u§@¬yµ{ 329
15.2 Jenkins¦w¸Ë 330
15.3 Jenkins°ò¥»°t¸m 332
15.4 Jenkins¦Û°Ê³¡¸p¹ê¨Ò 334
15.4.1 ³Ð«Ø¥ô°È 335
15.4.2 ¥ô°È°t¸m 336
15.4.3 °õ¦æ¥ô°È 339
15.5 ¤pµ² 342
¦Z °O 344
°Ñ¦Ò¤åÄm 345
§Ç¡G