- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
微服务架构实践
微服务架构实践
1.初探微服务架构
2.深入微服务架构
3.微服务架构在电商大促活动中的实践
4.下一代微服务架构service mesh
展开查看详情
1 .ங๐ۓຝਫ᪢ ᰭ࿆ ࠔߝտմӱଫአຝ᮱ຝ 1
2 . ᛔ౯Օᕨ • 8ଙຝ݊ದࢫᴚᓕቘᕪḵ҅ሿձࠔ ߝտմӱ/ଫአຝ᮱ຝ҅ᨮᨱᬩ ០ଘ̵ݣኪࠟଘݣ໐ஞԻฃຝᥢ “̵ښ419ߝᇈᇙ”ᜓܕय़“̵616ଙӾ ᇙ”ܕय़ᒵຝҔ • ܲձᨬᘱದፊ҅ᗑฃṛᕆૡᑕ Ҕ • ࢵٖᶮᕆದय़տArchSummit قቖຝ શտᦖ̵ᗑฃԯฃᕪ᭲ᦖ ̶ 2
3 .ፓ୯ N 初探微服务架构 N 深s微服务架构 N 微服务架构在电商大o活动W的实践 N T一b微服务架构4ervice /eHh 3
4 .ڡറங๐ۓຝ 4
5 .ங๐ ۓVS ֛ܔଫአ ౮ ֛ܔଫአ ங๐ۓ x ᥢཛྷ • ֛ܔଫአ҅Ӟত҅ದᵙଶ̵֗౮֗҅ݢզள᭛ඪඅ҅ݎᘒங๐ۓӞতኧԭದᵙଶय़҅౮ፘտ ṛ • ᵋ፳ଫአᥢཛྷ҅ݎፘଫጱ౮᭑Ⴙṛ҅୮ᬡکxԻ݉ᅩ֛҅ܔଫአጱ౮᩼᩼ṛԭங๐҅ۓᘒங๐ۓጱ ս۠᭑Ⴙดሿ҅౮᭑Ⴙᖌ೮ᑞਧ • ୮Ӟতᭌೠጱฎ֛ܔଫአຝ҅୮ᥢཛྷಘୟکXᅩ҅੪ݢզᘍᡤᄍᬰکங๐ۓຝ҅ᘒইຎӞত੪ᭌೠ ԧங๐ۓຝ҅ڞᥝಥڡতጱṛ౮զ݊ದᵙଶ҅֕ݸ๗ጱ౮տ᩼᩼֗҅ս۠տ᩼᩼ดሿ 5
6 .Ջԍฎங๐ۓ ᇿᒈ! ᇿᒈ! ᛔလ! ᮱ᗟ! ᬰᑕ! !ݎ • ங๐ۓฎӞԶݶܐૡ֢ጱੜᘒᛔလጱ๐ۓ • ྯӻ๐ݎۓ౮ܔӞଫአጱ୵ୗ҅ྯӻଫአᬩᤈࣁܔӞጱᬰᑕӾ • ֵአᛔۖ۸᮱ᗟૡٍᬰᤈᇿᒈݎ • ྯӻ๐ݢۓզֵአӧݶጱݎզ݊ӧݶහഝਂؙದ 6
7 .ங๐ۓຝቘᦞचᏐ—଼শਧ ଼শਧғᕟᕢຝᒵݶᔮᕹຝ ᒫӞਧғᕟᕢဋ᭗ොୗ٬ਧᔮᕹᦡᦇ ᒫԫਧғᳵٚग़ӞկԪఘԞӧݢᚆ ؉ጱਠᗦ҅֕ํᳵ؉ਠӞկԪఘ ᒫӣਧғᕚࣳᔮᕹᕚࣳᕟᕢຝᳵ ํᄟࣁጱᨶݶாᇙ ᒫࢥਧғय़ጱᔮᕹᕟᕢฎྲੜᔮᕹ ๅݻԭړᥴ 7
8 .ங๐ۓᇙ ֛ܔᔮᕹ ங๐ۓ • ᕟկӨ๐ۓ • ࢱᕰӱۑۓᚆᬰᤈᕟᕢ • ړවလቘ • ړවහഝᓕቘ • चᏐᦡෞᛔۖ۸ 8
9 .ங๐ۓᇙ—ࢱᕰӱۑۓᚆᬰᤈᕟᕢ ֛ܔଫአ ڹᒒ ݸᒒ ᬩᖌ ங๐ۓ 9
10 .ங๐ۓᇙ—ړවහഝᓕቘ ங๐ۓ ֛ܔଫአ 10
11 . ԅՋԍفங๐ۓ ӱۓᥴᘠ ದ ᇿᒈᖌಷ ᇿᒈ᮱ᗟ ᇿᒈಘ ܋Ꮈݎපሲ ํපᵍᐶඳᵑ ೲᆙӱۓᬟኴ ӧݶጱࢫᴚᖌ ӧݶጱࢫᴚᖌ ྯӻ๐ݢۓզ ݢզ໑ഝӱۓ ݢզਫሿଚᤈ ྯӻ๐ۓᇿᒈ ೆړԅग़ӻᇿ ಷӧݶጱ๐ ಷӧݶጱ๐ۓ ᇿᒈ᮱ᗟ҅ ጱᥢཛྷݳቘᥢ Ꮈེྯ҅ݎෛ ᮱ᗟ̵ᇿᒈᬩ ᒈጱ๐҅ۓᥴ ݢ҅ۓզᰒ ᕟկ҅ྯӻࢫ ӧߥ҅ݢզ ښ๐ۓጱ᮱ᗟ ᶱፓᎸ҅ݎ᮷ ᖌ҅୮᮱ړ๐ ٬ԧӱ॔ۓ ӧݶጱӱۓ ᴚݢզڦړᥢ ਫሿᇿᒈ ᥢཛྷ҅ইຎӱ ݢզೲᆙӱۓ ڊۓሿඳᵑԏ ᳯ᷌҅ਫሿ አӧݶጱದ ښᛔ૩ጱ๐ ۱̵ᇿᒈၥ ۓᰁय़҅ڞ᮱ ҅ړښӧݶጱ ݢ҅ݸզਖ਼ඳ ӱۓᥴᘠ҅ӱ ຝ҅ํᰒ ҅ۓፘԏᳵ ᦶ̵ᇿᒈ᮱ ᗟጱ๐ۓᥢ ӱۑۓᚆڦړ ᵑํපᵍᐶ҅ ٖۓ᮱ṛٖ ጱᥴ٬ᚆ ӧߥ҅ྯ ᗟ҅ٺ᮱ᗟ ཛྷय़҅ইຎӱ ᤩೆᥴکӧݶ ᘒӧߥٌ՜ ᘸ҅ӱۓԏᳵ ኒ᷀҅ݶݢ ӻࢫᴚᘸᆌᛔ ᳵ҅܋᮱ ۓᰁੜ҅ݢڞ ጱࢫᴚ҅ӧݶ ๐ۓጱᑞਧ ຂᘠྯ҅ݳӻ զᭌೠݳᭇጱ ૩ᨮᨱጱ๐ۓ ᗟ᭛ଶ๋҅ᕣ զ᮱ᗟݣپ ጱࢫᴚᦡڦړ ҅ํපᵍᐶ ๐ۓᬟኴႴ ෛದᥴ٬᭬ ܋Ꮈݎපሲ ๐ۓ ᦇᛔ૩ጱ๐ ඳᵑጱࢱ҅ ศ҅ݶܔӻ کጱෛದᵙ ҅ۓᖽᎨ๐ۓ כᵑᔮᕹෆ֛ ๐ۓጱդᎱᰁ ᷌ Ի՞ᳵ҅ ጱᑞਧ ๅ̵ๅےฃ ܋๐ۓԻ՞ප ᖌಷ ሲ 11
12 .ই֜ୌங๐ۓຝ N 如何定义服务 N 如何发布和订阅服务 N 如何治理服务 N 如何监控服务 N 如何定h故障 N ...... 12
13 .ங๐ۓຝ • Ӟӻᓌܔጱங๐ۓຝ۱ތங๐ۓ Registry! ਮಁᒒ̵ங๐ۓ๐ۓᒒ̵ဳٙӾ ஞ̵ፊഴӾஞ ᦈᴅ ဳٙ ๐ • Serviceࣁۖސ҅ਖ਼ᛔ૩׀ጱ๐ ۓ ဳۓٙဳکٙӾஞ လ ᧣አ ቘ! • Clientࣁۖސ҅ဳٙӾஞᦈᴅᛔ Client! Service! Ӿ ૩ᵱᥝጱ๐ۓ ஞ! • Clientᦈᴅ๐ۓԏ᧣҅ݸአService ๐ۓ Ӥಸ෭ப Ӥಸ෭ப • ClientServiceਖ਼෭பӤಸک Monitor! Monitor • ๐ۓလቘӾஞਫሿᓕቘᴳᕆ̵ᴴ ၞ̵๐ۓ᪠ኧ̵๐ۓᨮ࣐ᤍᒵ 13
14 .๐ۓൈᬿ XMLᯈᗝ XMLᯈᗝݢզአԭdubboຝ̵Spring Cloudຝ ᒵ <beans> <dubbo:application name="demo-provider"/> <dubbo:registry address="zookeeper://127.0.0.1:2181"/> <dubbo:protocol name="dubbo" port="20890"/> <bean id="demoService" class="org.apache.dubbo.samples.basic.impl.DemoServiceImpl"/> <dubbo:service interface="org.apache.dubbo.samples.basic.api.DemoService" ref="demoService"/> </beans> IDL @idl @namespace(“com.hello.world”) Public class HelloWorldIDL{ IDL᭗ଉአԭThrift̵gRPC᧣አຝ @service(version=“1.0.0”) interface HelloWorld{ String sayHello(String helloMsg) } } 14
15 .๐ۓຝ N 服务通p协议OH552、5C2、U(2等P N 数据f输方式O同步、异步P N 数据序列化OJ41N序列化、2B序列化等P 15
16 .๐ݎۓ/ᦈᴅ • Serviceۖސਖ਼๐ဳۓٙک Registry҅ݶᖌ೮ӨRegistryጱஞ Registry! ᪡ਧ๗ಸਂၚᇫா • ClientࣁۖސဳٙӾஞᦈᴅᵱᥝ ᦈᴅ/ݒๅ᭗Ꭳ ဳٙ/ஞ᪡ ጱ๐҅ۓ୮๐ۖݒํۓ҅ Registryտ݊᭗ᎣClient๋ݐෛ ጱ๐ڜۓᤒ҅ๅෛࣈ๐ڜۓᤒ ᧣አ Client! Service! • Clientտਖ਼឴ݐጱ๐ڜۓᤒᖨਂࣁ ࣈ҅୮ClientӨRegistryԏᳵጱᗑᕶ ڊሿᳯ᷌҅ԞӧߥClientӨ Serviceጱ᧣አ • Registry׀๐ဳۓ̵ٙဳݍ̵ٙ ஞ᪡ಸ̵ᦈᴅ̵ݒๅັᧃᒵളݗ 16
17 .๐ۓ᪠ኧ # app1ጱၾᩇᘏݝᚆᦢᳯಅํᒒݗԅ20880ጱ๐ۓਫֺ # app2ጱၾᩇᘏݝᚆᦢᳯಅํᒒݗԅ20881ጱ๐ۓਫֺ --- N 灰度发布 scope: application force: true runtime: true enabled: true N A/B测试 key: governance-conditionrouter-consumer conditions: - application=app1 => address=*:20880 - application=app2 => address=*:20881 N 流量控制 # DemoServiceጱsayHelloොဩݝᚆᦢᳯಅํᒒݗԅ20880ጱ๐ ۓਫֺ N 机房选择 # DemoServiceጱsayHiොဩݝᚆᦢᳯಅํᒒݗԅ20881ጱ๐ۓ ਫֺ --- scope: service N ...... force: true runtime: true enabled: true key: org.apache.dubbo.samples.governance.api.DemoService conditions: - method=sayHello => address=*:20880 - method=sayHi => address=*:20881 17
18 .๐ۓᨮ࣐ᤍ ᵋᓒဩ ᧃᓒဩ ๋ၚ᧣አහᓒဩ Ӟᛘhashᓒဩ ܻቘғ๐ڜۓᤒӾ҅ ܻቘғ๐ڜۓᤒӾ҅ ܻቘғ๐ڜۓᤒӾ҅ ܻቘғ᭗ᬦߢڍහ҅ ᵋᭌೠӞӻ๐ۓਫֺ ׁེᧃ҅ᭌೠڊӞӻ ᭌೠၚᬳളහ๋ጱ ݢզਖ਼ᛔݶӞ᧣አො ᬰᤈ᧣አ̶Ӟᛱฎ໑ഝ ๐ۓਫֺᬰᤈ᧣አ̶Ӟ ๐ۓਫֺᬰᤈ᧣አ҅ྯ ጱਮಁᒒ᧗҅ྯེ᮷ ๐ڜۓᤒහ҅ྲইํ8 ᛱฎֵአහᕟ҅ྲইํ ӻ๐ۓਫֺڠୌӞӻᬳ ᧗کፘݶጱ๐ۓਫֺ ӻ๐҅ۓᵋኞ౮1~8 8ݣ๐ۓਫֺ҅ਧԎӞ ള҅ၚᬳളහے1, ԏᳵጱӞӻᵋහ҅ᵋ ӻහᕟ҅۱ތ1~8හ හฎ҅پ੪᧣አߺӻ ਁ҅Ӟེᧃහᕟݢܨ ๐ۓਫֺ ࣋วғԆᥝᭇአԭ๐ۓ ࣋วғԞฎԆᥝᭇአԭ ࣋วғ୮๐ۓਫֺಅࣁ ࣋วғᭇአԭᔄ֒๐ۓ ਫֺಅࣁᯈᗝ૧ ๐ۓਫֺಅࣁᯈᗝ ᚆ૧ྲय़ ᒒᖨਂԧਮಁᒒ᧗හ ӧय़҅ᚆचፘݶጱ ૧ӧय़҅ᚆचፘ ҅አ๋ၚ᧣አ ഝጱ࣋ว҅ྯེ᮷᧗ ࣋ว ݶጱ࣋ว හᓒဩ҅ݢզ឴ݐๅள ፘݶ๐ۓਫֺ҅ݢզכ ጱߥଫ ᵑੱݢᚆग़ጱ឴ݐᖨਂ 18
19 .๐ۓ᩻/᯿ᦶ ๐ۓ᩻ ๐ۓ᯿ᦶ ๐ۓ᩻ᳵᦡਧ҅ᵱᥝᭌೠӞӻ ݎ؍ጱ๐᧣ۓአ०ᨳӞᛱฎኧԭӻ ݳቘጱ᩻ᳵ҅᩻ᳵᦡᗝጱ ڦ๐ۓਫֺጱᗑᕶӧᑞਧᛘ०ᨳ ᬦᳩᘏᬦᎨ᮷ӧݢᤈ҅ݢզ᭗ᬦ ᘏ᩻ᒵ҅ࢩྌᴻԧᰒ๐ᦡۓ ړຉ᧣አ෭ப҅ᕹᦇڊ99.99%̵ ᗝ᩻ᳵԏक़҅ᬮտᦡᗝ᯿ᦶེ 99.9%̵99%ᒵӧݶᖌଶጱ๐᧣ۓ හ҅᭗ᬦ᯿ᦶ҅ਖ਼᧗ݎᭆٌک՜ አᳵ॒ԭग़ᳵզٖ҅ᆐݸٚ ๐ۓਫֺ҅ݢզीےአಁ᧗౮ۑ ໑ഝӱۓᵱ҅ਧڊӞӻݳቘጱ๐ ሲ ۓ᩻ᳵ 19
20 .๐ۓᆤෙ • ๐ۓᆤෙᇫாӞᛱړԅӣᐿ҅closedᇫா̵ openᇫா̵Half-Openᇫா close d • ᆤෙἕᦊ॒ԭclosedᇫாىܨᳮ ᧣አ०ᨳሲ ᧣አ • ୮Ӟਧᳵٖጱ०ᨳሲ᩻ᬦਧᴇ꧊҅ᆤෙ ౮ۑሲᬡຽ ᩻ᬦᴇ꧊ closedᇫாᬰفopenᇫா҅ྌਮಁᒒ ݎ᩸ጱ๐᧣ۓአտፗളᬬࢧ҅ӧտٚݻ๐ۓ ᒒ᧗ • ୮ᆤෙᆤෙӞྦྷᳵԏݸҁݢզᦡᗝ҂҅ ᆤෙӞྦྷᳵ Half- ྌտᬰفHalf-openᇫா҅๐ۓᒒտक़ open Open ํ׀ᴴጱ๐᧣ۓአ҅ইຎ᧣አ౮ۑሲᖀᖅӧ ᬡຽ҅ڞHalf-Openᇫா݈ԅopenᇫ ᧣አ౮ۑሲӧᬡຽ ா҅ইຎ᧣አ౮ۑሲᬡຽ҅ڞHalf-Openᇫ ாԅclosedᇫா҅๐ۓᒒྋଉक़׀๐ ᧣ۓአ 20
21 . ๐ۓᵞᗭᲙ • Failover҅०ᨳᛔۖڔഘ҅୮ڊሿ०ᨳ҅᯿ᦶٌ՜ զDubboԅֺ ๐ۓ • Failfast҅ள᭛०ᨳ҅ݎݝ᩸Ӟེ᧣አ҅०ᨳᒈܨ ಸᲙ҅᭗ଉአԭᶋᒵጱٟ֢ • Failsafe҅०ᨳਞڊ҅قሿଉ҅ፗളኼ҅᭗ ଉአԭٟف෭பᒵ֢ • Failback҅०ᨳᛔۖ௩॔҅ᦕݣݸ୯०ᨳ᧗҅ ਧ᯿҅ݎ᭗ଉአԭၾ௳᭗Ꭳᒵ֢ • Forking҅ଚᤈ᧣አग़ӻ๐ݝ҅ۓᥝӞӻ౮ܨۑ ᬬࢧ҅᭗ଉአԭਫᥝṛጱ֢҅֕ᵱ ᥝၵᩇྲग़ጱᩒრ 21
22 . ๐ۓᴴၞ • ऒᴴၞ҅ᰒෆӻᔮᕹݢզඪ೮ጱ๋य़QPS҅ᦡ ऒᴴၞ! ਧᔮᕹᕆጱᴴၞय़ੜ҅ᴠྊ᩻ᬦෆӻᔮᕹጱ๋य़ QPS๋҅ᕣਖ਼ᔮᕹܴྒ • IPᴴၞ҅ᰒӞԶ௶ධڋአಁ̵ἓԾአಁᒵ҅ᵱ ᥝ໑ഝIP؉ᴴၞ҅ྲইܔIPྯړᰦٖᦢᳯེහ᩻ᬦ IPᴴၞ! 1000҅ڞᰒᧆIP؉ᴴၞ • ളݗᴴၞ҅ํܔӻളݗጱᚆ؇૧ᘏӞԶಢ ᰁ឴ݐളྲݗᘙ҅ᵱᥝᰒྌᔄളݗ؉ളݗ ᴴၞ҅ᦢᳯܔളᦢݗᳯᰁᬦय़๋҅ᕣਖ਼ෆӻᔮᕹ ളݗᴴၞ! ंڋ 22
23 .๐ۓᴳᕆ ᛔۖᴳᕆ ىᴳᕆ ۖாᯈᗝᴳᕆ ݢզአ᩻ᴳᕆ̵० ىᴳᕆ҅Ӟᛱਖ਼ᴳᕆ ࣁဳٙӾஞٟۖفாᯈ ᨳེහᴳᕆ̵ඳᵑᴳᕆ ړࣁਂىୗᯈᗝӾ ᗝᥟፍᥢ҅ڞ᭗ᬦ๐ۓ ᒵ҅ਫሿᛔۖᴳᕆ ஞ҅ᵱᥝᬰᤈᴳᕆ֢ ᴳᕆԁᠰӻڊᲙ ҅ࣁᯈᗝӾஞ֢ܨ ጱᶋىᲫ๐҅ۓଚਧԎ ݢ ᴳᕆݸጱᬬࢧᒽኼ • ୮ᔮᕹᦢᳯᰁ᩻ᬦᶼਧጱQPSᴇ꧊҅ᵱᥝਖ਼ӞԶᶋ᯿ᥝጱ̵ᶋ໐ஞጱӱۓ ᬰᤈᴳᕆ҅ฮ؊ٌ๐ۓᬰᤈጱ᧣አ 23
24 . ๐ۓ᭄᪵ • ᨕྈDapperғDapper, a Large-Scale traceidғ10000 Spanidғ1 traceidғ10000 Spanidғ1.1 traceidғ10000 Spanidғ1.2 Distributed Systems Tracing Infrastructure ๐ۓB1 ๐ۓB2 ๐ۓB3 traceidғ10000 • traceid҅ຽᦕӞེ᧣አ᱾ֵ҅አtraceid ๐ۓA ݢզਖ਼ෆӻ᧣አ᱾Ӥಅํጱ᧣አԀ᩸҅ ᬰᘒਫሿق᱾᪠᭄᪵ ๐ۓC1 ๐ۓC2 ๐ۓC3 • spanid҅ຽᦕྯӞӻৼᜓᅩጱ᧣አ҅ਖ਼ traceidғ10000 traceidғ10000 traceidғ10000 ಅํጱspanid೪ള᩸҅੪ฎӞེ᧣አ᱾ Spanidғ2 Spanidғ2.1 Spanidғ2.2 ጱಅํ᧣አ 24
25 . ๐ۓፊഴ ᔮᕹᕆڦ ളݗᕆڦ • ᕹᦇᔮᕹᕆڦզ݊ളݗᕆڦӷᐿᖌଶፊഴ ຽහഝ ๋य़QPS QPS ᧗ེහ • ᰒߥଫᳵᕹᦇ҅ݢզᕹᦇߥଫᳵ 0~10ms̵10~50ms̵50ms~100ms̵ 100~500ms̵500~1000ms̵ ౮᧗ۑེහ ०ᨳ᧗ེහ ౮ۑሲ 1000~2000ms̵2000~5000ms̵ >5000msᒵ҅᭗ᬦᕹᦇᔮᕹ/ളߥݗଫ ᳵݢ҅ྲܛզଆۗᦡᗝ᩻ᳵզ݊ս۸ Top᧗ ०ᨳሲ ߥଫᳵᕹᦇ ᔮᕹզ݊ളݗᚆᒵ • ᰒଉ᧗҅०ᨳሲᬡکӞਧᴇ꧊҅ݢ ၞᰁۖྲ …… զݎಸᦄၾ௳ᒵ 25
26 .Ⴎفங๐ۓຝ 26
27 . ই֜ᭌೠங๐ۓຝ • ಘ҅ᵱᥝᘍᡤங๐ۓຝฎވඪ೮ಘ ҅ࣁݸᖅጱݎӾํԶۑᚆᵱᥝਧګ۸ Dubbo! SpringCloud! Thrift! gRPC! զ݊ಘ҅ڞฎވඪ೮ಘਖ਼֢ԅӞӻ உ᯿ᥝጱᘍᰁ ಘ! অ! অ! অ! অ! Java̵Python̵ Java̵Python̵C+ Java̵C++̵ • ҅ӧํݪلݶӧݶጱํ҅ݎ ! Java! Node.jsᒵҁᵱᥝ +̵Node.jsᒵग़ Python̵Node.jsᒵ Զࣁਂݪلग़ᐿྌࢩ҅ݎฎވඪ೮ sidecarᕟկඪ೮҂! ! ग़! զ݊ඪ೮֜ᐿݎԞฎᤍᰁᭌ ᭗!ᦓܐמ TCP/HTTP! HTTP! TCP! HTTP/2! ೠӞӻங๐ۓຝஉ᯿ᥝጱࢩᔰ ଧڜ۸!ᦓܐ Kryo/FST/Hessian! Jackson! Thrift! ProtoBuf! • ᭗ํ҅ᦓܐמጱ๐ۓ۸ຝݝඪ೮HTTPܐ ᦓ̵ํጱඪ೮TCPํ̵ᦓܐጱӷᘏ࣐ඪ ೮҅ӧݶጱᦓܐᚆӧ҅ݶইຎᚆᥝ ྲṛڞտᭌೠTCP҅ᦓܐইຎᚆ ᥝӧṛݢڞզᭌೠHTTPᦓܐ 27
28 . ই֜ᭌೠݳᭇጱဳٙӾஞ • ṛݢአ҅ဳٙӾஞጱṛݢአฎӞӻᶋ ଉ᯿ᥝጱᘍᰁ҅ളفங๐ۓຝԏ҅ݸಅ Eureka! ZooKeeper! Consul! etcd! ํ๐ۓ᮷ဳٙࣁဳٙӾஞ҅ইຎဳٙӾஞ APҁṛݢአ/ړ ṛݢአਂࣁᳯ᷌҅ਖ਼տߥک๐ۓ׀ᘏ ܄Კ҂! ඪ೮! ӧඪ೮! ӧඪ೮! ӧඪ೮! क़ูᶂᛔ૩ጱ๐ۓ CPҁӞᛘ/ړ ӧඪ೮! ඪ೮! ඪ೮! ඪ೮! ܄Კ҂! • හഝӞᛘ҅ဳٙӾஞಥ๐ဳۓٙզ݊ ग़හഝӾஞ! -! ඪ೮! ඪ೮! ඪ೮! ๐ᦈۓᴅ҅Ӟᛱ᮷տ֢ԅᵞᗭ᮱ᗟ҅உग़ Ӟᛘᓒဩ! -! paxos! raft! raft! ײᬮտ᮱ᗟࣁग़IDC಄҅ࢩྌහഝӞᛘ ݈౮ԅ౯ժጱӞӻᘍᰁ҅ই֜כᵑහഝ Ӟᛘ҅ၿ݊کCAPቘᦞ • ग़හഝӾஞ᮱ᗟ҅உग़ӱۓ๐࣐ۓտ᮱ᗟ ࣁग़IDC಄҅ࢩྌฎވඪ೮ग़හഝӾஞԞ ฎӞӻஉ᯿ᥝጱᘍᡤ 28
29 . ই֜ᭌೠݳᭇጱᯈᗝӾஞ • ᯈᗝኞප݊҅ᯈᗝࣁؙਂ௳מᯈᗝӾ ஞ҅୮ݸᖅᰒᯈᗝ௳מᬰᤈץද҅ݸฎ Apollo! Disconf! Spring-cloud-config! ݢވզ݊ள᭛വᭆᕳݱᔮᕹ҅ฎӞӻᶋ ଉ᯿ᥝጱᘍᡤᅩ ᯈᗝኞප! ਫ! ਫ! ᯿ސᘏಋۖrefresh! ᯈᗝๅෛവᭆ! ඪ೮! ඪ೮! ಋૡ!ݎ • ग़හഝӾஞ᮱ᗟ҅உग़ӱۓ๐࣐ۓտ᮱ᗟ ࣁग़IDC಄҅ࢩྌฎވඪ೮ग़හഝӾஞԞ ᯈᗝኴᶎ! ඪ೮! ඪ೮! ӧඪ೮҅ᵱᥝgitඪ೮! ฎӞӻஉ᯿ᥝጱᘍᡤ ᯈᗝਧ!ݐ ඪ೮! Client᯿ސ!ݐ ӧඪ೮! ग़හഝӾஞ! ඪ೮! ඪ೮! ඪ೮! • ฃአ҅ᯈᗝӾஞጱ֢ฃአԞஉ᯿ ᥝ҅ฎވݢ׀ᥤ۸֢ኴᶎ҅ฎݢވզ ள᭛ᖫᬋᯈᗝ௳מᒵ 29