ps:在面试时候问到微服务,而自己对此一无所知,真的是阅历限制了自己的想象。
微服务的定义和优缺点
先了解一下与微服务对应的单体式(Monolithic)式架构。在Monolithic架构中,系统通常采用分层架构模式,按技术维度对系统进行划分,比如持久化层、业务逻辑层、表示层。 Monolithic架构主要存在以下问题:
- 系统间通常以API的形式互相访问,耦合紧密导致难以维护;
- 各业务领域需要采用相同的技术栈,难以快速应用新技术;
- 对系统的任何修改都必须整个系统一起重新部署/升级,运维成本高;
- 在系统负载增加时,难以进行水平扩展;
- 当系统中一处出现问题,会影响整个系统;
微服务架构是一种架构风格,它将一个复杂的应用拆分成多个独立自治的服务,服务与服务间通过松耦合的形式交互。
主要特点:单一职责,自治
微服务优点:逻辑清晰、简化部署、可扩展、灵活组合、技术异构、高可靠
缺点:复杂度高(异常处理,一致性、代码复用),运维复杂(整体了解)、影响性能(时延)
待续。。。