微服务
本篇文章以4个点,围绕进行去讲解,让大家对微服务有个简单的了解,后期我为分享SpringCloud
实现微服务的各个组件的讲解以及源码实战案例,请及时关注我的博客!!!
什么是微服务呢
先来简单了解一下微服务
微服务:是一种架构思想。
微服务架构的系统是个(分布式系统
) ,按业务领域划分为(独立的服务单元
),有自动化运维、容错、快速演进的特点。
到底什么是微服务呢
重点来了
微服务:
就是将一个大的应用,拆分成多个小的模块,每个模块都有自己的功能和职责,每个模块可以进行交互
。
具体各个模块是怎么交互的后期我会以源码+逻辑图分享在我的博客。
微服务架构的风格,就是将单一程序开发成一个微服务每个微服务运行在自己的进程中
,并使用轻量级机制通信
,通常是HTTP RESTFUL API 。这些服务围绕业务能力来划分构建的,并通过完全自动化部署机制来独立部署这些服务可以使用不同的编程语言
以及不同数据存储技术
,以保证最低限度的集中式管理
。
微服务的特点
那么微服务又有哪些优点呢?
它能够解决传统单体架构系统的痛点,同时也能满足越来越复杂的业务需求
。
分为
一个独立运行的程序`,服务单元。- 服务之间通过 HTTP 协议相互通信。 http 是一个万能的协议 (web 应用都支持的模式)。
- 自动化部署。
- 可以用不同的编程语言。
- 可以用不同的存储技术。
- 服务集中化管理。
- 微服务是一个
分布式系统
。
微服务的不足
- 微服务的复杂度
- 分布式事务问题
- 服务的划分(按照功能划分 还是按照组件来划分呢) 分工
- 服务的部署(不用自动化部署 自动化部署)
单体架构的不足
上面讲到的微服务架构,对微服务有一个简单的了解,那么架构又有什么好处和不足之处呢?
1.
业务越来越复杂,单体应用的代码量越来越大,代码的可读性、可维护性和可扩展性下降新人接手代码所需的时间成倍增加,业务扩展带来的代价越来越大。
2.
随着用户越来越多,程序承受的并发越来越高,单体应用的并发能力有限。
3
测试的难度越来越大,单体应用的业务都在同个程序中,随着业务的扩张、复杂度的增加单体应用修改业务或者增加业务或许会给其他业务带来定的影响,导致测试难度增加。