第 10 周总结

用户头像
alpha
关注
发布于: 2020 年 11 月 29 日

一、微服务

传统的巨无霸系统存在诸多弊端,比如:编译、部署困难。代码分支管理困难。数据库连接容易耗尽,数据库拆分困难。代码耦合度高,新增业务困难。

解决方法主要有两种,横向拆分和纵向拆分。纵向拆分是将应用拆分成多个子系统,而横向拆分则是将可以复用的业务拆分出来,独立部署,减少与老系统的耦合。



微服务框架的要求:

1.失效转移,实现高可用。

2.负载均衡,避免压力集中在某台或某几台服务器。

3.高效的远程通信。

4.对应用最少侵入,应用不会因为使用了微服务框架,就只能分布式部署。

5.版本管理。服务提供者可以通过升级版本来保留对原接口的访问。



微服务架构的3个核心元素:

1.服务提供者

2.注册中心

3.服务消费者



Service Mesh 在消费者与其他元素之间增加了一层。用于处理服务间的通信。通常表现为一组轻量级网络代理,他们与应用程序部署在一起,而对应用程序透明。



事件溯源

将用户请求处理过程中的每次状态变化都记录到事件日志中,并按时间序列存储。

• 利用事件溯源,可以精确复现任何用户状态,进行复核审计。

• 利用事件溯源,可以有效监控用户状态变化,并在此基础上实现分布式事务。



二、网关

作用

1.统一接入,高性能、高并发、高可靠、负载均衡、统一记录日志等。

2.流量管理与容错,服务降级、服务熔断、服务限流。

3.安全防护,防刷控制、黑白名单。

4.协议适配。

管道技术





三、OAuth2.0协议

流程



四、DDD

战略设计包括:领域、子域、界限上下文、上下文映射图。

战术设计包括实体、值对象、聚合、CQRS、事件溯源。

通过战略设计,划分模块和服务的边界及依赖关系,对微服务架构的设计至关重要。



五、组件设计原则

组件内聚原则主要讨论哪些类应该聚合在同一个组件中,以便组件既能提供相对完整的功能,又不至于太过庞大。

复用发布等同原则是说,软件复用的最小粒度应该等同于其发布的最小粒度。也就是说,如果你希望别人以怎样的粒度复用你的软件,你就应该以怎样的粒度发布你的软件。

共同封闭原则是说,我们应该将那些会同时修改,并且为了相同目的而修改的类放到同一个组件中。

共同复用原则是说,不要强迫一个组件的用户依赖他们不需要的东西。

组件内聚原则讨论的是组件应该包含哪些功能和类,而组件耦合原则讨论组件之间的耦合关系应该如何设计。

无循环依赖原则说,组件依赖关系中不应该出现环。

稳定依赖原则说,组件依赖关系必须指向更稳定的方向。根据稳定依赖原则,不稳定的组件应该依赖稳定的组件,而不是反过来。

稳定抽象原则说,一个组件的抽象化程度应该与其稳定性程度一致。也就是说,一个稳定的组件应该是抽象的,而不稳定的组件应该是具体的。



总的来说,还是要遵守高内聚、低耦合。



用户头像

alpha

关注

还未添加个人签名 2019.01.09 加入

还未添加个人简介

评论

发布
暂无评论
第10周总结