GO 进阶学习笔记
第一课 Go 架构实践 - 微服务(微服务概览与治理)
一、微服务概览
单体架构
单体的原因(缺点):应用太复杂,无法拓展,可靠性低应对方式:化繁为简,分而治之
微服务起源
SOA(面向服务)& 微服务核心:小而美代码少,bug 少,易测试,易维护,易迭代
单一职责:专注,低耦合
微服务定义
服务关注单一业务 原子服务
服务间轻量级通信 独立进程
可自动独立部署 隔离部署
可用不同语言和存储技术 去中心化治理服务
微服务缺点
分布式应用:需要进行进程间通信,导致消息速度慢,服务不可用等局部失效问题
分区的数据库架构:一致性的保证如何测试基于微服务架构的应用也很复杂服务模块间的依赖关系复杂
组件服务化
传统方式:库与应用绑定,运行在进程中,库的改变引起应用的重新部署
方式
kit 微服务基础库
service 业务代码 + kit 依赖 + 第三方依赖
rpc + message queue
按业务组织服务
服务所提供的能力需要与业务功能相对应
去中心化
数据、治理、技术
去中心化有利于服务的独立性和隔离
自动化的基础设施
自动化测试+部署
可用性兼容性
保持服务接口的兼容性发送的数据要保守,最小化发送必要信息
接收数据开放,最大限度容忍冗余数据
二、微服务设计
三、gRPC & 服务发现
四、多集群 & 多租户
版权声明: 本文为 InfoQ 作者【zach】的原创文章。
原文链接:【http://xie.infoq.cn/article/7abedf3b0b6e9af5633070cd5】。文章转载请联系作者。
评论