微服务

//todo 排版,笔记转移 扩展方案: 1. 根据请求属性路由请求,每个实例负责部分用户 2. 水平扩容整个实例 3. 每个实例的功能进行水平扩容 ,功能性分解

每个服务拥有自己的数据库,功能上 每个模块都可以独立开发测试,部署和扩展

一项请求往往会在多个服务之间跳转: 1. 健康检查api 2. 日志聚合 3. 分布式追踪,每一个外部请求分配唯一ID。 4. 异常追踪,程序异常发送到异常追踪服务。 5. 应用指标,计数器等 6. 审计日志,记录用户行为。

弊端: 运维复杂性,必须要高度自动化 跨服务的事务查询 测试 协调更多开发团队

语义化API版本控制:semver.org HTTP: v1/ v2/ MIME中包含版本号 REST:通过CDN缓存GET请求。在一个请求中获取多个资源。 弊端:客户端必须使用服务发现定位服务实例。很难映射HTTP动词

局部故障处理:断路器,在连续失败次数超过一定阈值后立即解决调用,防止故障传导和扩散。 处理网络超时,并发数等。


评论