CCCC微服务架构设计:功能与数据库独立
需积分: 5 43 浏览量
更新于2024-08-05
收藏 50KB PPTX 举报
"CCCC微服务架构师设计是关于如何有效地将大型应用分解成一系列小而自治的微服务的讨论。这种设计方法旨在提高系统的可扩展性、灵活性和可靠性。"
微服务架构是一种软件开发方法,它提倡将单一应用程序构建为一组小型、独立的服务,每个服务都围绕特定业务功能进行构建,并且可以通过轻量级机制(如REST API)相互通信。这种架构的核心优点包括:
1. **功能模块化**:根据功能来划分服务,例如BenOwner、SafeKeep、Document、DataMakerChecker和Reports。每个服务都有自己的职责,降低服务间的相互依赖。
2. **独立数据库**:每个微服务拥有自己的数据库,这有助于减少数据库压力,提升响应速度,因为数据表只存储单一类型的数据,从而优化Redis缓存的命中率。此外,独立数据库还可以增强数据一致性,避免因多模块共享数据库导致的事务、死锁、索引失效等问题。
3. **RESTful通信**:服务间通过简单的、同步的REST调用来进行通信,确保接口标准化,降低交互复杂性。
4. **数据库拆分策略**:在拆分数据库时,对于高频率交互的服务(如BenOwnerService和SafeKeepService),可能需要考虑冗余字段来拆分共享表,以减少耦合。而对于低频服务,若原本有表间关联,可考虑合并,以简化模块结构。
5. **Schedule模块与数据对接模块**:这两个模块与功能服务间通过异步调用解耦,利用消息队列(MQ)技术,提高系统稳定性。数据对接模块可能需要处理跨数据库的数据存储问题,因此需要配置多数据源以确保数据可靠性。
6. **挑战与难点**:微服务架构的实施面临的主要挑战包括代码的大量修改、历史数据的迁移,以及如何处理像DMCfilestoreMQ这样的共用组件。ScheduleService和上下游数据服务之间的协调也需要谨慎设计。
微服务架构设计的关键在于正确地划分服务边界,有效地管理数据库拆分,以及妥善处理服务间的通信和数据同步。同时,必须考虑到系统的整体性和复杂性,以确保在提升系统性能的同时,不引入新的复杂性或风险。
586 浏览量
8183 浏览量
862 浏览量
235 浏览量
227 浏览量
2021-02-27 上传
133 浏览量
104 浏览量
AHU_
- 粉丝: 31
- 资源: 15
最新资源
- capstone-uav-2020.github.io
- Yii Framework 应用程序开发框架 v2.0.18
- finegenki.github.io
- 行业文档-设计装置-一种具有储物舱的换档杆手柄.zip
- 一起来捉妖驱动包11.0.zip
- 基于dlib的人脸识别和情绪检测
- 交付系统:BTH课程PA1450的自主交付系统项目
- React
- part_3a_decoder_model.zip
- dev.finance
- 速卖通店小秘发货-实时显示运费/利润/拆包提醒/渠道推荐等功能插件
- Gardening-Website:园艺网站,带有图片轮播,有关各种蔬菜的信息以及要提交的玩具表格
- VC++ 简单的图片操作类
- Hotel-key
- .emacs.d:我的Emacs设置
- 马克斯定时采集生成工具 v1.0