1、什么是微服务
微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。
微服务架构 = 80%的SOA服务架构思想 + 100%的组件化架构思想 + 80%的领域建模思想
2、通俗理解
由于业务间的逻辑越来越复杂,我们就不把这些业务全部杂糅在一起,每个业务都分开来做,这就是微服务,而微服务就是一种特殊的分布式。
3、优缺点
优点:上面的单体系统全部运行于一个进程之内,资源相互影响,添加功能可能会影响其它功能,导致维护麻烦。 而微服务一切分为不同的模块,运行于自身进程内,而且不同的服务可以使用不同的语言充分发挥优势。
缺点:引入了分布式的复杂性,如接口一致性。 不过很多问题强大的Spring Cloud都已经提供了解决方案!
图1.1:
1、什么是SOA
SOA(Service-Oriented Architecture),中文全称:面向服务的架构。
SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸。
2、通俗理解
SOA把系统分离成不同的服务,使用接口来进行数据交互,最终达到整合系统的目的。
3、优缺点
优点:敏捷性、一致性、业务流程的改进、灵活性、数据统一、运行监控、利用操作平台。
缺点:组织结构的改变、组织权力结构的改变、业务面临的新挑战、IT变得简单之前会越来越复杂、没有数据视图、监控复杂性、技术不匹配。
4、SOA的三大特征
1)独立的功能实体
2)大数据量低频访问
3)基于文本的消息传递
注:集群是个物理形态,分布式是个工作方式。
1、什么是分布式
分布式就是把一个大而复杂的业务计算分配到多个业务节点机器上,即多个节点机器构成一个完整的业务链。
一个业务分拆多个子业务,部署在不同的服务器上。
一个系统分为很多个子系统,这些子系统相互配合完成整个的业务逻辑叫做分布式,分布式中每一个节点都可以配置集群.。
(而集群指的是将几台服务器集中在一起,实现同一业务。)
将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区别分布式的方式是根据不同机器不同业务。
上面:service A、B、C、D 分别是业务组件,通过API Geteway进行业务访问。
注:分布式需要做好事务管理。
例如:
2、单体应用和分布式的比较
注:集群是个物理形态,分布式是个工作方式。
1、什么是集群
集群就是具有完整功能的系统群集,一个集群节点坏了,其它节点能照常运行,这是不是像一个并联电路?一个并联电路节点坏了,其它节点还是能够正常工作的。
集群的功能作用就是为了增加整个系统的负载和吞吐量,所以一般我们把集群和负载均衡拿到一起来讨论和研究,当然,集群的另一个显著功能就是做系统的容错,为了保证系统稳健、长久的运行下去,一个集群节点的故障不会导致整个系统完蛋,对于客户而言是透明的,只要能正常访问,他们都不知道您系统中或许某几个系统节点已经罢工了,这样就涉及到云计算中的弹性分配,我们能根据系统的高峰、低谷期动态增加或者减少集群节点。
2、通俗理解
同一个业务,部署在多个服务器上。(即:多台服务器部署相同应用构成一个集群)
3、集群的两大特性、能力、技术
特性:可扩展性、高可用性
能力:负载均衡、错误恢复
技术:集群地址、内部通信
注:内部通信是集群能正常运转的基础,它使得集群具有均衡负载和错误恢复的能力。
1)分布式和集群的区别:
集群:同一个业务,部署在多个服务器上
分布式:一个业务分拆多个子业务,部署在不同的服务器上
2)微服务和SOA的区别:
SOA(Service Oriented Architecture)“面向服务的架构”:他是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在与操作系统进程中。各个服务之间 通过网络调用。
微服务架构:其实和 SOA 架构类似,微服务是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。
3)微服务和分布式的区别及联系
1.分布式属于微服务
2.区别及联系
分布式:分散压力。
微服务:分散能力。
分布式:
不同模块部署在不同服务器上;
作用:分布式解决网站高并发带来问题;
集群:相同的服务;
多台服务器部署相同应用构成一个集群;
作用:通过负载均衡设备共同对外提供服务;
SOA[组装服务/ESB企业服务总线]:
业务系统分解为多个组件,让每个组件都独立提供离散,自治,可复用的服务能力;
通过服务的组合和编排来实现上层的业务流程;
作用:简化维护,降低整体风险,伸缩灵活;
微服务[找到服务/微服务网关open API];
架构设计概念,各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合)其它特性(单一职责,边界,异步通信,独立部署)是分布式概念的跟严格执行;
SOA到微服务架构的演进过程;
作用:各服务可独立应用,组合服务也可系统应用(巨石应用[monolith]的简化实现策略-平台思想).
4)ESB和微服务API网关
1.ESB(企业服务总线),简单 来说 ESB 就是一根管道,用来连接各个服务节点。为了集 成不同系统,不同协议的服务,ESB 做了消息的转化解释和路由工作,让不同的服务互联互通;
2.API网关:API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。
未完待续。。。。。。
参考文章:
https://blog.csdn.net/zpoison/article/details/80729052
https://my.oschina.net/zkpursuit/blog/1612545
https://www.aliyun.com/jiaocheng/179833.html
https://www.cnblogs.com/xzwblog/p/7255364.html
https://blog.csdn.net/qq_32297447/article/details/79081112