springcloud - 微服务架构
单体应用
单体应用的优点
- 开发简单: 方便开发
- 便于共享: 单个归档文件中包含所有的功能,便于在团队之间以及不同的部署环境阶段进行共享.
- 易于测试: 测试便捷, 部署方便
单体应用的缺点
- 复杂性高: 所有功能都在一个应用中, 耦合度比较高
- 技术债务: 单体应用所用的技术都特别单一. 所以市场上的一些中间件,新技术无法应用到单体应用上
编程模式:面向接口编程
SOA多业务架构
编程模式:面向服务架构
它一种设计方法, 服务之间通过相互依赖最终异同一系列的功能,一个服务通常以独立的形式存在.
微服务架构
微服务的特点
- 面向服务
- 松耦合
- 模块化
- 分布式计算
- 平台无关
- 集中管理
微服务的优点
- 开发简单
- 技术栈灵活
- 各服务之间没有任何依赖关系
- 独立性强,可以按需拓展
- 可用性比较高
微服务的缺点
- 维护成本高
- 运维难度大
- 复杂
- 数据一致性差
- 重复工作
- 性能监控不及时
- 通信复杂
我们什么时候需要使用微服务
-
开发效率非常快的情况下需要:
应用进行微服务化后,规模和体积将边的非常轻量, 在编译,打包,分发,部署等环境都节约了大量的时间,开发效率明显提升 -
保证质量时需要:
微服务应用面向持续集成,友好度比较高, 自动化编译,单元和集成测试用例的执行和回归,提高应用的整理质量时需要用到微服务 -
稳定的时候需要
单体应用是牵一发动全身,微服务,牵一发,动一动 ,在微服务中,单一功能挂掉之后,不影响其他功能
我们什么时候不需要使用微服务
-
场景单一
应用只有几个特定的功能, 没有必要进行微服务独立开发时 -
逻辑简单
…