概念
简而言之,microservice架构风格是一种方法来开发一个应用程序套件的小服务,每个运行在它自己的进程,与轻
量级通信机制,通常一个HTTP资源API。这些服务是建立在业务能力和独立部署的完全自动化部署机械。有一个最低限
度的集中管理这些服务,可以用不同的编程语言编写和使用不同的数据存储技术。
架构简介
Monolithic(一体式)架构:
MicroService(微服务)架构:
Monolithic架构优缺点
Monolithic比较适合小项目,优点是:
1、开发简单直接,集中式管理
2、基本不会重复开发
3、功能都在本地,没有分布式的管理开销和调用开销
Monolithic缺点:
1、开发效率低:所有的开发在一个项目改代码,递交代码相互等待,代码冲突不断
2、代码维护难:代码功能耦合在一起,信任不知道何从下手
3、部署不灵活:构建时间长,任何小修改必须重新构建整个项目,这个过程往往很长
4、稳定性不高:一个微不足道的小问题,可以导致整个应用挂掉
5、扩展性不够:无法满足高并发情况下的业务需求
MicroService架构优缺点
MicroService优点:
1、开发简单
2、技术栈灵活
3、服务独立无依赖
4、独立按需扩展
5、可用性高
MicroService缺点:
1、多服务运维困难
2、系统部署困难
3、服务间通信成本大
4、数据一致性难以保证
5、频繁的系统集成测试
6、重复工作量大
7、性能监控成本高
Monolithic架构与MicroService架构应用
微服务架构的目的
微服务的主要目的是拆分应用,实现敏捷开发和部署,下边的实例可以看出微服务与一体式架构相比,更加灵
活。
微服务架构解决问题
1、测试
2、分解应用到服务
主要体现在以下几方面:
1)分解业务能力和定义服务想用的业务功能。
2)分解领域驱动设计子域。
3)由动词或用例分解和定义服务负责特定的行为。如航运服务,负责完成订单。
4)由名词或资源分解一个服务,负责所有操作实体/给定类型的资源。例如一个帐户服务,负责管理用户帐户。
3、保持数据一致性
应用程序必须使用事件驱动的体系结构。服务发布一个事件时,其数据变化。
4、实现查询
一个常见的解决方案是使用命令查询责任分离并保持一个或多个物化视图保持最新的订阅的事件流数据变化时
发表的。