【架构师】微服务的拆分有哪些原则?

简介: 微服务拆分需遵循七大原则:职责单一、围绕业务、中台化公共模块、按系统保障级别分离、技术栈解耦、避免循环依赖,并遵循康威定律使架构与组织匹配,提升可维护性与协作效率。

一百个架构师眼中,有100种微服务拆分的方式,那么我简单总结几个我在做类似的事情的时候会参考的一些原则:


1、职责。我们学面向对象的第一天,就被告知要职责单一,而一个微服务也一样,他应该聚焦于一件事儿,否则他就不够"微",至少在电商中,我们要把用户和交易拆分开。


2、业务。我们说技术是为了业务服务的,所以微服务的构建需要围绕着业务来做,不同的业务需要独立出来,比如保险业务中,投保和理赔,就是不同的业务,那么就可以把他们拆分开。


3、中台化。当我们在做业务拆分、职责划分后,可能会有一些公共的部分,这部分内容分别在各自微服务实现一份也可以,单独独立出来也是可行的,所以如果考虑中台化的思想,一些公共的部分,是可以独立拆分出来的。


4、系统保障。在做微服务拆分的时候,可能需要根据不同的系统保障级别做拆分,比如秒杀和日常交易,就可以单独拆开,针对秒杀做单独的可用性保障。还有一种就是在线任务和离线任务,也是可以拆分开的,各自做可用性保障。


在线任务:就是你应用中一直都在运行的任务,比如你的订单系统,他的下单、退款正常这些操作都是在线任务。

离线任务:一般是那种异步扫表、或者定时执行的任务,比如订单的到期关闭等。


5、技术栈。要考虑技术栈,不同的技术栈,不要硬往一起融,最后只会让这个系统无法维护。


6、依赖关系。拆分之后,各个微服务之间,不要有循环依赖。依赖应该是单向的,而不是循环的,循环依赖会给服务治理,链路追踪带来很大的挑战,并且存在循环依赖一定是拆分的不够合理。


7、康威定律。最后一点,康威定律,应用架构要和组织架构一一对应。组织架构决定了业务架构、应用架构。说白了,就是多个团队一起维护一个微服务,一定会在沟通、(发布)冲突、谁来干等问题。

目录
相关文章
|
7月前
|
消息中间件 架构师 Kafka
【架构师】如何做技术选型?
技术选型无绝对优劣,关键在于“更合适”。需综合评估功能满足度、可扩展性、安全性、性能等非功能性需求,同时考量使用人数、社区活跃度、迭代速度、学习与维护成本,以及与现有技术体系的匹配度,权衡利弊后做出最优选择。
318 4
|
7月前
|
消息中间件 存储 负载均衡
【高可用】什么是异地多活、同城容灾?
异地多活与同城容灾均为提升系统高可用的分布式架构。前者实现跨地域数据中心实时同步与故障切换,保障全球服务连续性;后者聚焦同城内快速容灾,通过高速网络实现低延迟、高可靠的数据同步与负载均衡,适用于对延迟敏感的业务场景。
367 11
|
2月前
|
运维 数据库 数据安全/隐私保护
【微服务】微服务 vs 单体架构 区别、服务拆分原则、DDD领域驱动设计
本文构建“架构对比→拆分准则→DDD方法论→落地实践→避坑指南”闭环体系,系统剖析单体与微服务的本质差异、演进路径及反模式;详解微服务拆分八大原则与六大禁忌;深度整合DDD战略设计(限界上下文即服务边界)与战术设计(四层架构+聚合建模),提供从0到1的渐进式落地路径与各阶段最佳实践。
|
7月前
|
Java Spring
IDEA调出services窗口
本教程分两步指导:首先点击指定选项,然后在Templates中添加Spring Boot并应用,即可调出services窗口,快速完成配置。
424 11
|
7月前
|
Java Nacos Sentinel
Spring Cloud Alibaba 深度实战:Nacos + Sentinel + Gateway 整合指南
本指南深入整合Spring Cloud Alibaba核心组件:Nacos实现服务注册与配置管理,Sentinel提供流量控制与熔断降级,Gateway构建统一API网关。涵盖环境搭建、动态配置、服务调用与监控,助你打造高可用微服务架构。(238字)
1992 10
|
7月前
|
消息中间件 架构师 Java
【Java架构师】各个微服务之间有哪些调用方式?
微服务拆分后需跨进程通信,常见方式包括HTTP调用(如RESTful、OpenFeign、@HttpExchange)、RPC框架(如Dubbo、gRPC、Thrift)、消息队列(如Kafka、RabbitMQ)及服务网格(如Istio)。不同场景下可依据性能、异步、跨语言等需求选择合适方案。
1309 0
|
10月前
|
消息中间件 自然语言处理 运维
微服务不是银弹!这4个设计原则让你少踩90%的坑
本文深入解析微服务架构与领域驱动设计(DDD)的核心理念与实践方法,帮助开发者正确拆分服务边界,避免常见误区,提升系统可维护性与扩展性,适用于复杂业务场景下的高效开发与团队协作。
956 1
|
7月前
|
缓存 监控 Java
拆解一个真实电商项目:微服务架构中的服务治理与性能优化
本课程以母婴电商重构为背景,系统讲解微服务架构落地实践。涵盖服务拆分、Nacos治理、分布式缓存、事务、限流熔断等核心问题,结合Spring Cloud Alibaba技术栈,提供完整项目代码与40小时实战视频,助力开发者掌握从单体到分布式架构的演进能力。
234 14
|
11月前
|
消息中间件 缓存 监控
MQ消息积压 / Rocketmq 积压 最全的处理方案。 (秒懂+图解+史上最全)
MQ消息积压 / Rocketmq 积压 最全的处理方案。 (秒懂+图解+史上最全)
MQ消息积压 / Rocketmq 积压 最全的处理方案。 (秒懂+图解+史上最全)
|
7月前
|
消息中间件 缓存 JSON
http 调用优化 的11大绝招 (图解+秒懂+史上最全)
http 调用优化 的11大绝招 (图解+秒懂+史上最全)