第 10 周总结
一、微服务
传统的巨无霸系统存在诸多弊端,比如:编译、部署困难。代码分支管理困难。数据库连接容易耗尽,数据库拆分困难。代码耦合度高,新增业务困难。
解决方法主要有两种,横向拆分和纵向拆分。纵向拆分是将应用拆分成多个子系统,而横向拆分则是将可以复用的业务拆分出来,独立部署,减少与老系统的耦合。
微服务框架的要求:
1.失效转移,实现高可用。
2.负载均衡,避免压力集中在某台或某几台服务器。
3.高效的远程通信。
4.对应用最少侵入,应用不会因为使用了微服务框架,就只能分布式部署。
5.版本管理。服务提供者可以通过升级版本来保留对原接口的访问。
微服务架构的3个核心元素:
1.服务提供者
2.注册中心
3.服务消费者
Service Mesh 在消费者与其他元素之间增加了一层。用于处理服务间的通信。通常表现为一组轻量级网络代理,他们与应用程序部署在一起,而对应用程序透明。
事件溯源
将用户请求处理过程中的每次状态变化都记录到事件日志中,并按时间序列存储。
• 利用事件溯源,可以精确复现任何用户状态,进行复核审计。
• 利用事件溯源,可以有效监控用户状态变化,并在此基础上实现分布式事务。
二、网关
作用
1.统一接入,高性能、高并发、高可靠、负载均衡、统一记录日志等。
2.流量管理与容错,服务降级、服务熔断、服务限流。
3.安全防护,防刷控制、黑白名单。
4.协议适配。
管道技术
三、OAuth2.0协议
流程
四、DDD
战略设计包括:领域、子域、界限上下文、上下文映射图。
战术设计包括实体、值对象、聚合、CQRS、事件溯源。
通过战略设计,划分模块和服务的边界及依赖关系,对微服务架构的设计至关重要。
五、组件设计原则
组件内聚原则主要讨论哪些类应该聚合在同一个组件中,以便组件既能提供相对完整的功能,又不至于太过庞大。
复用发布等同原则是说,软件复用的最小粒度应该等同于其发布的最小粒度。也就是说,如果你希望别人以怎样的粒度复用你的软件,你就应该以怎样的粒度发布你的软件。
共同封闭原则是说,我们应该将那些会同时修改,并且为了相同目的而修改的类放到同一个组件中。
共同复用原则是说,不要强迫一个组件的用户依赖他们不需要的东西。
组件内聚原则讨论的是组件应该包含哪些功能和类,而组件耦合原则讨论组件之间的耦合关系应该如何设计。
无循环依赖原则说,组件依赖关系中不应该出现环。
稳定依赖原则说,组件依赖关系必须指向更稳定的方向。根据稳定依赖原则,不稳定的组件应该依赖稳定的组件,而不是反过来。
稳定抽象原则说,一个组件的抽象化程度应该与其稳定性程度一致。也就是说,一个稳定的组件应该是抽象的,而不稳定的组件应该是具体的。
总的来说,还是要遵守高内聚、低耦合。
评论