【架构】简单理解微服务架构

微服务

1.1 单体应用与微服务

微服务对应的是传统架构, 传统的软件架构是把所有都打在一个包里面, 也就是单体应用。

单体应用在部署上和后期管理维护上会愈来愈越庞大和难以管理, 而且约束开发成员使用的技术栈, JAVA的程序必须使用JAVA, 但是可能团队里有的擅长PHP,有的擅长Go。 针对这些问题就有人提出了微服务的概念, 可以让适合的语言干适合的事情。

单体应用想要增加服务器只能把整个项目都丢到一台新的服务器上,但每个模块对并发的要求不一样, 比如产品服务模块是需求较多的,压力比较大, 但是订单模块需求就比较少,你也无法拆开, 而微服务不一样, 可以单独对产品服务 这个需求比较大的微服务进行增加服务器, 并且在功能升级时可以实现部分升级, 让用户感觉不到什么异样。

单体应用与微服务

2.1 微服务到底是什么

微服务只是业务层面上的架构, 技术层面的架构属于你选用某框架

  • ✅微服务属于架构层面的设计模式【结构层面的设计模式】
  • ✅微服务的设计概念以业务功能为主
  • ✅微服务独立提供对应的业务功能
  • ✅微服务不拘泥于具体的实现语言
  • ✅微服务架构 ≈ 模块化开发 + 分布式计算

2.1 易于扩展的分布式

微服务的架构不管是横向扩展还是纵向扩展都比较的友好

2.1.1 横向扩展

针对业务进行扩展, 当需要新增业务时只需要增加一个微服务即可

2.1.2 纵向扩展

纵向扩展是对计算压力上的扩展, 针对某一块增加服务器,增强其计算能力, 然后使用Nginx进行反向代理

3.1 微服务的特点

  • 小, 且专注于做⼀件事情
  • 处于独立的进程中
  • 轻量级的通信机制
  • 松耦合、独立部署

4.1 合理使用微服务

微服务不是灵丹妙药,并不能适应所有的情况。 微服务需要在范围内被合理的使用。

  • 业务复杂度高
  • 团队规模大
  • 业务需要长期演进
  • 最后——没有银弹【人月神话】

5.1 微服务——集成与部署

  • 持续集成——jekins
  • 虚拟化——虚拟机
  • 容器——Docker
你的支持将鼓励我继续创作