- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
云原生时代,分布式系统设计必备知识
图谱
我们身处于一个充斥着分布式系统解决方案的计算机时代,无论是支付宝、微
信这样顶级流量产品、还是区块链、IOT 等热门概念、抑或如火如荼的容器生
态技术如 Kubernetes,其背后的技术架构核心都离不开分布式系统。
为什么要懂分布式架构设计
系统学习分布式架构设计对于技术人的成长非常关键,对于云原生开发者而言
如何设计出符合云原生设计哲学的应用,往往离不开分布式系统知识与方法论
的运用。如何设计出高弹性、可配置、可分布、高性能、高容错、更安全、更
韧性、快交付的云原生应用往往是衡量开发者水准的重要参考。
然而分布式系统是一个很大的概念,从架构设计、研发流程、运维部署、工程
效率等多个角度均有很深的知识可以挖掘,学习成本和难度相对较大。
近期,我整理了过去阅读过的一些和分布式相关书刊和文章,加上自己做分布
式开发的一些的心得分享给大家,本文作为开篇,总体上给出知识概览,后续
将分篇结合代码实践来进行阐述。起草仓促,水平有限,欢迎大家一起学习指
正。
一、设计
网关模式,Gateway
功能
• 请求路由,客户端直接调用 Gateway,Gateway 负责路由转发到注册服
务上
• 服务注册,后端服务将 API 注册,Gateway 负责路由
• 负载均衡,支持多种负载策略
• round robin
• 随机均衡算法
• 多权重负载
• session 粘连
• 其它
• 安全特性,支持 HTTPS,账户鉴权,及其它安全特性支持
• 灰度发布,可以针对服务版本或者租户等特性做灰度发布
• API 聚合,将多个后端接口聚合,减少客户端调用次数
• API 编排,通过编排来串接多个 API 完成特定业务
设计要点
• 可用性,必须保证高可用
• 扩展性,可以灵活扩展以支持特定业务比如特定业务流控
• 高性能,通常使用异步 IO 模型框架实现,比如 Java netty,Go
Channel
• 安全,如加密通信,鉴权,DDOS 防御等
• 运维
• 应用监控,包括容量,性能,异常检测等
• 弹性伸缩,具备高弹性能力,以低成本应对高峰值
• 架构
• 与业务解耦合,提供扩展扩展机制比如 Plugin,Serverless 的思路支
持后端业务
• 服务隔离,可以按照后端服务划分网关,做到不同服务使用不同网关
• 网关部署靠近后端,保证网络损耗最小,性能最佳
边车模式,Sidecar
价值
• 分离控制与逻辑,分离业务逻辑与路由,流控,熔断,幂等,服务发
现,鉴权等控制组件
• 适用场景
• 老系统改造扩展,Sidebar 进程与服务进程部署在同一个节点,通过网
络协议通讯
• 多语言混合分布式系统扩展
• 应用程序由多方提供
设计要点
• 标准服务协议,Sidebar 到 Service,Sidebar 到 Sidebar 协议尽可能
与语言解耦
• 聚合控制逻辑比如流控,熔断,幂等,重试,减少业务逻辑
• 不要使用对服务侵入的方式进行进程间通讯如信号量,共享内存,优先
使用本地网络通讯的方式比如 TPCP 或者 HTTP
服务网格,Service Mesh
新一代微服务架构,本质是服务间通信的基础设施层。
特点
• 应用间通讯中间层
• 轻量级网络代理
• 解耦应用程序
• 应用程序无感知
主流框架
• Istio
• Linkerd
分布式锁
解决方案
• Redis 分布式锁,SETNX key value PX expiretime
文档评论(0)