作者:钓鱼翁玩围脖 | 来源:互联网 | 2024-11-17 10:30
本文探讨了服务化的目标,包括将系统中的独立业务模块垂直划分,形成基础服务层,以及如何通过无状态的基础服务支持上游业务。同时,文章详细讨论了服务子系统的数量控制和划分注意事项,以确保系统的高效性和可维护性。
服务化的目标
1. 将系统中独立的业务模块垂直划分,形成基础服务层,每个服务层专注于特定的业务逻辑。
2. 基础服务层为上层业务功能的实现提供支持,这些服务本身是无状态的,可以根据系统负载动态扩展,以提高服务的可用性和性能。
服务子系统的数量控制
过多: 可能导致划分过细,破坏业务子系统的独立性(例如,支付订单、退款订单、用户、账户等)。此外,过多的服务会增加部署和维护的工作量,独立进程会占用更多的内存资源。
过少: 无法有效解耦业务逻辑,开发和维护难以分工,升级和维护的影响范围较大。
服务子系统划分注意事项:
- 避免在A服务中执行需要连接到B服务数据库的SQL查询,这会导致在垂直拆分数据库时出现问题。
- 避免服务子系统之间出现环状依赖调用(如A依赖B,B依赖C,C依赖A)。
- 尽量减少服务子系统之间的依赖链长度(如A依赖B,B依赖C,C依赖D...),最好不超过三个层级,以防止划分不当或过细。
- 尽量避免使用分布式事务,尽可能将相关操作放在同一个服务内,以简化事务管理。