微服务概览
- 组件服务化
- 基础框架库
- service代码 + 基础框架库 + 第三方依赖 = 业务微服务
- rpc + mq = 轻量级通讯
- 基础框架库
- 业务组织服务化
- 大前端 -> 网关(BFF)-> 业务 -> 平台 -> 基础设施
- 大前端 -> 网关(BFF)-> 业务 -> 平台 -> 基础设施
- 去中心化
- 技术:
- 数据:独立DB&cache
- 治理:
- 技术:
- 基础设施自动化
- CICD:gitlab + gitlab Hooks + k8s
- Testing:测试环境 + 单元测试 + API自动化测试
- Prod:k8s,Prometheus、ELK、Conrtol Panle
- CICD:gitlab + gitlab Hooks + k8s
Design For Failtrue <发送时保守,接收时开放,最大限度的保持接口兼容>
API Gateway
- Chrome -> API Gateway -> BFF -> Microservice
- BFF 可以是 SSR 或者是接口聚合与兼容层
- BFF 可以按照业务场景划分多个BFF
- BFF图片示例
- BFF 可以是 SSR 或者是接口聚合与兼容层
- Chrome -> API Gateway -> BFF -> Microservice

- 微服务拆分
- 业务部门拆分
- DDD划分不同业务边界元素
- 边界是<解决不同业务问题>的问题域
- 对应的解决方案
- 边界是<解决不同业务问题>的问题域
- CQRS
- 命令端<负责做复杂更新创建删除逻辑>
- 查询端<只负责查询>
- 命令端<负责做复杂更新创建删除逻辑>
- 业务部门拆分

- 特性
- 基于HTTP2
- 支持多语言
- 基于HTTP2
HealthCheck
客户端发现
- 更加微服务,少一次网络跳转
- 更加微服务,少一次网络跳转
- 服务端发现
- 只需要知道服务的域名即可(我们现在使用的就是服务端发现)
- 只需要知道服务的域名即可(我们现在使用的就是服务端发现)
- B站服务发现 - 魔改 eureka
- AP系统
- 保证最终一致性;如果某些服务异常,但是没有通知到discover服务,同时discover服务还没有来的及去心跳检查;自身的healthcheck可以保证剔除异常用户;
- 可用性必须保证,否则就蹦了
- 分区容错性,当某个节点挂了,仍然有其他几个服务提供数据访问能力;
- 保证最终一致性;如果某些服务异常,但是没有通知到discover服务,同时discover服务还没有来的及去心跳检查;自身的healthcheck可以保证剔除异常用户;
- 服务提供者会发送注册,新增,移除命令到discover服务
- 消费者发送生产者healthCheck
- 长轮训,如果30秒内有变化,则返回,否则则挂起,30秒超时
- 一个discover服务收到注册信息广播给其他discover服务
- discover定期检测服务提供者是否有数据,失效则剔除;如果短时间大量心跳丢失,将开启自我保护,保留过期服务不删除
- AP系统
