欢迎来到天天文库
浏览记录
ID:8219430
大小:2.11 MB
页数:21页
时间:2018-03-10
《微服务-冯常健-云平台的微服务架构与实践 》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、云平台的微服务架构与实践冯常健目录PART01微服务架构PART02技术选型PART03业务拆分和重构PART04持续集成PART05总结微服务架构模式Microservicearchitecturalstyleisanapproachtodevelopingasingleapplicationasasuiteofsmallservices,eachrunninginitsownprocessandcommunicatingwithlightweightmechanisms.--JamesLewis&MartinFowler特征:•原子业务•独立部署•通信协议轻量单体架构应用微服
2、务架构应用为什么要微服务化?单体应用面临问题•工程结构庞大•升级代价大•扩展性差•稳定性差•人员变更影响大•技术栈单一ܔଫአӱۓೆړங๐ۓ۸ଫአ1ଫአ2•开发效率低ଫአ3ଫአ4服务通信1)同步:RPC,RESTful等•实现方便•协议通用•架构简洁2)异步:消息队列•系统解耦•提高吞吐Docker+Kubernetes+OpenStack+应用服务ᨮ࣐ᤍහഝପਂؙᖨਂKVMKVMKVM业务架构前端服务OpenAPI控制服务容器服务构建服务弹性服务集群服务实负镜镜时载监像像容器服均日数控检中务衡志据服心容器务查服服务务网络目录变量A微服务架构6!TrafficFlow+C
3、LProxyCLWebCLOpenAPI๐ۓNLBS&CL;KCLᯈᗝ=4CLᦊᦤӾஞ๐ۓMQNOSETCDKVM2+"6(<988>A<!'SN1111PodPodC):C*CC๐////CLL,L3LLۓRedisLMySQL DockerDaemon7$CL如何进行消息队列的选型•协议:AMQP、STOMP、XMPP、私有协议等•消息是否需要持久化•吞吐量•高可用支持,是否单点•分布式扩展能力•消息堆积能力和重放能力•开发便捷,易于维护•社区成熟度引入消息队列的得与失1)消息队列能解决的问题•异步•解耦•
4、削峰2)使用消息队列带来的问题•编程复杂性、运维复杂性•可靠传输•高可用•扩展性服务发现–消息服务器&注册中心设计目标:实现一个路由灵活、可扩展、数据可靠传输、高可用的消息服务器,同时兼做注册中心。微服务通信–路由设计BUILDCBUILDPBUILD.host1binding=BUILDCBUILD.host2binding=BUILD.host1binding=BUILD.host2CTRLCTRLPXbinding=CTRLCtype:topic...CTRL.host1binding=WEB.host1WEBWEBPCWEB.host1ၾ௳๐ۓ&ဳٙӾஞ要点:·Exch
5、ange类型为topic。·BindingKey就是队列名。·每个服务(BUILD/CTRL/WEB等)启动后会初始化一条AMQP连接,3个channel复用。微服务通信–路由设计BUILDCBUILDPBUILD.host1binding=BUILDCBUILD.host2binding=BUILD.host1binding=BUILD.host2CTRLCTRLPXbinding=CTRLCtype:topic...CTRL.host1binding=WEB.host1WEBWEBPCWEB.host1ၾ௳๐ۓ&ဳٙӾஞ应用场景:·点对点(P2P)或请求有状态服务(Rout
6、eKey:${TYPE}.${HOST})·请求无状态服务(RouteKey:${TYPE})·组播(RouteKey:${TYPE}.*)·广播(RouteKey:*.*)服务发现和治理·消息服务器就是服务注册中心·服务注册:自注册(服务名+机器名)·服务注销:离线即注销·服务生产者根据场景指定RouteKey·自带负载均衡属性·服务优雅升级·流量控制业务拆分与重构一些经验•模块化可以越早越好,但微服务化不必•数据表命名约束,包名约束•数据最终一致性,重试+幂等•业务边界不确定,就再等等•逐步拆分,平滑过渡•把业务中扩展性差的服务独立出去业务拆分与重构(案例一:Timer)Jo
7、bWeb/API๐ۓJobୌ๐ۓJobMQJobJobഴګ๐ۓJob๐ۓJobJobWeb/API๐ۓୌ๐ۓഴګ๐ۓ•按职能划分,非业务边界•支持高可用,需分布式锁支持MQ•只负责触发,不负责业务执行ਧձۓ๐ۓ๐ۓ业务拆分与重构(案例二:ServiceProxy)https://c.163.comlocation/router/rdsrouter/ncr...Web/API๐ۓrouter/apirouter/nosහഝପ๐ۓMQᖨਂ๐ۓhttps://c.163.
此文档下载收益归作者所有