单块架构和微服务优缺点

周末趁着休息的时候,学习了下慕课网的天气系统,趁机总结下单块架构和微服务的优缺点,方便以后翻阅

  • 单块架构的优点和缺点
优点 缺点
功能划分清楚 功能太大,太杂
层次关系良好 升级系统风险高
每一层独立 维护成本增加
技术单一(成本低,适合全栈开发) 交付周期边长
部署简单 可伸缩性差
部署简单 监控困难(当系统出现问题,很难检测哪一块出现问题)
  • 如何设计微服务系统
方式 简介
服务拆分 将服务拆分的小而精,比如采集服务,数据清理服务等
服务注册 将服务注册至注册中心,可以让其他服务进行消费
服务发现 服务在调用其他服务时,可以查看服务注册表,通过名称来调用服务的接口
服务消费 调用其他服务,称为消费服务,调用者称为消费者,提供者也称为供应商
统一入口 服务多了,可以统一入口,直接通过统一入口调用即可
配置管理 通过配置管理平台,可以简化配置过程
熔断机制 熔断是系统的防护机制,高并发情况下,服务堆积起来,可以采用熔断,把所有的请求挡住,大大降低服务会崩溃 的可能
自动扩展 服务根据当前情况进行自动扩展,比如部署了十台主机,十个实例,当访问增多时,可以 扩展到二十台等
  • 微服务的拆分意义
名称 简介
易于实现 基于spring boot ,迭代很快
易于维护 不必像单块架构一样,修改某个功能,可能会牵扯到其他功能,大而杂,难以厘清
易于部署 基于springboot,一般内嵌tomcat,可以直接放到tomcat中
易于更新 拆分后,业务清晰,耦合度大大降低,不会影响其他服务
形成闭环 从需求→开发→集成→测试→部署,大大加快速度
  • 微服务的拆分方法
名称 简介
横向拆分 按照服务进行拆分
纵向拆分 比如三层架构就是横向拆分
ddd拆分 Domain-Driven Design 领域驱动设计

猜你喜欢

转载自blog.csdn.net/qq_38306425/article/details/104879497