微服务基本认识

1 什么是微服务

服务运行在自己的进程中,是一个小而独立的服务单元

使用轻量级通信机制,通常是http api

能够自动化独立部署

最低限度的集中式管理

2 单体架构的弊端

一个单体架构,就是一个架构中包含所有功能,当业务规模小的时候运行ok,但业务变庞大后,就会出现很多麻烦,

模块不清晰,彼此之间界限模糊,整个架构复杂

技术负债高,新接手的人员不容易明白各种细节,各种坑。

架构扩展难,由于单个服务不是独立的,需要整个单体架构联动调整,高耦合带来扩展难。

3 微服务优势

服务独立性:假设在后端体系上,分为路由转发层-主体业务层-后端调用模块层-数据缓存层-数据储存层。每个后端模块都相当于一个独立的项目,如果要加一个模块,只要部署一个进程就行。

层次清晰:假设还是上面的体系,不同的层次在不同的服务器上。

弹性调整:主体业务层是cpu/mem密集型,数据缓存层是mem密集型,数据储存层是磁盘io密集型,就可以针对性硬件调整。

松耦合:一大堆微服务组成整个分布式架构,微服务之间是彼此调用的关系,微服务可以独立部署,下线,升级等,对其他微服务影响降到最低。

轻量级启停:由于彼此之间的相对独立性,可以对一个进程进行启停操作,不用重启整个架构。

轻量级通信:微服务都是进程的形式,然后监听tcp端口,彼此之间通过套接字连接。

4 设计原则

单一职责:一个微服务的粒度应该是一个子功能,处理一种业务功能,不考虑其他的业务功能。

服务自治:一个微服务1-2个人就可以完成从开发,接入,测试,上线,维护整个流程。是一个独立的项目。

接口统一:微服务之间都是通过接口调用来联动的,所以要有明确的接口规范。

5 服务发现

在微服务架构中,每个服务必然会有多个进程在运行,甚至运行在不同的服务器上,提供负载均衡功能和防止单点故障。

猜你喜欢

转载自www.cnblogs.com/jabbok/p/9459314.html