微服务简介
一、微服务的定义
微服务:用来描述将软件应用程序设计为独立部署的服务的一种特殊方式,其系统是一个分布式系统,按业务领域划分为独立的服务单元,有自动化运维、 容错、快速演进的特点,它能够解决传统单体架构系统的痛点,同时也能满足越来越复杂的业务需求。
单体架构存在的不足:
1)业务越来越复杂,单体应用的代码量越来越大,代码的可读性、可维护性和可扩展性下降
2)随着用户越来越多,程序承受的并发越来越高,单体应用的并发能力有限
3)测试的难度越来越大,单体应用的业务都在同一个程序中,随着业务的扩张,单体应用修改业务会给其他业务带来一定的影响,导致测试难度增加
单体架构使用服务器集群及存在的不足:
【单体服务的集群化】
1)系统仍然为单体应用 ,大量的业务必然会有大量的代码,代码的可读性和可维护性依然很差
2)面对海量的用户,数据库将会成为瓶颈,解决方案将使用分布式数据库,也就是将数据库进行分库分表
3)持续交付能力差,业务越复杂,代码越多,修改代码和添加代码所需的时间越长
微服务架构的风格就是将单一程序开发成一个微服务,每个微服务运行在自己的进程中,并使用轻量级机制通信【通常是 HTTP RESTFUL API】
这些服务围绕业务能力来划分构建的,并通过完全自动化部署机制来独立部署。 这些服务可以使用不同的编程语言,以及不同数据存储技术,以保证最低限度的集中式管理
二、微服务的特点
微服务具有如下特点:
1)按业务划分为一个独立运行的程序,即服务单元
2)服务之间通过 HTTP 协议相互通信
3)