微服务常见问题及解决方案

1、分解模式:如何把应用分成若干个小服务?

1)按业务功能分解,将应用分解成能产生业务价值的最小单元。

2)对于跨多个业务的类(如订单会被订单管理、订单交付多个服务用到)用领域驱动设计(DDD),使用子域和边界上下文的概念来着手解决。

2、集成模式

1)API网关模式

2)聚合器模式

3、数据库模式

1)按服务分配数据库,为每个微服务配一个独立的数据库;

2)按服务共享数据库,一个数据库不要超过3个微服务,否则会影响扩容、自治和独立性。

3)命令查询职责隔离

4、观测模式

1)日志聚合:将多台机器上多个服务实例的请求汇聚到一起搜索和分析

2)性能指标:服务出现问题及时发出告警

3)分布式追踪:追踪横跨多个微服务的问题点,如Spring Cloud Slueth + Zipkin Server,是一种常见的实现方式。

4)健康检查:确保负载均衡不会将请求发给不健康的结点

5、横切关注点

1)外部配置:外部化所有配置,确保应用启动时能加载。实现不重启服务刷新

2)服务发现模式

3)断路器模式

4)蓝绿部署模式

6、微服务架构模式:Sidecar 模式、链式微服务(Chained Microservice)、分支微服务(Branch Microservice)、事件溯源模式(Event Sourcing Pattern)、和持续交付方式等。

猜你喜欢

转载自www.cnblogs.com/doit8791/p/9863192.html