微服务架构
- 简介
- 出现原因
- 架构工作原理
- 技术案例
- 架构优缺点
简介
微服务是一种架构风格, 按照业务板块来划分应用代码, 使单个应用的职责更清晰, 相互之间可以做到独立升级迭代
出现原因
- 扩展性差, 应用程序无法轻松扩展, 因为每次需要更新应用程序时, 都必须重新构建整体系统
- 持续开发困难: 一个很小的代码改动, 也需要重新部署整个应用, 无法频繁并轻松的发布版本
- 不可靠: 即使系统的一个功能不起作用, 可能导致真个系统无法工作
- 不灵活: 无法使用不同的技术构建单体应用程序
- 代码维护难: 所有功能耦合在一起, 新人不知道从何下手
架构工作原理
一个系统应用拆分成了多个微服务, 如用户服务, 交易服务和商品服务, 相互之间协作支持整个商城的应用
技术案例
架构优缺点
- 优点
- 灵活性高: 服务独立测试, 部署, 升级, 发布
- 独立扩展: 每个服务可以各自进行扩展
- 提高容错性: 一个服务问题, 并不会让整个系统瘫痪
- 新技术的应用容易, 支持多种编程语言
- 缺点
- 运维复杂度高: 业务不断发展, 应用和服务都会不断变多, 应用和服务的部署变得复杂, 同一个服务器上部署多个服务还要解决运行环境冲突的问题, 此外, 对于如大促这类需要动态扩缩容的场景, 需要水平扩展服务的性能, 就需要在新增的服务上准备运行环境, 部署服务等, 运维将变得十分困难
- 资源使用变多: 所有这些独立运行的微服务都需要占用内存和CPU
- 处理故障困难: 一个请求跨多个服务调用, 需要查看不同服务的日志完成问题定位