【java_web】 什么是微服务

解释了什么是微服务:

https://baijiahao.baidu.com/s?id=1609470628776404706&wfr=spider&for=pc

微服务和分布式的区别:

https://blog.csdn.net/adsadadaddadasda/article/details/81223231

以上链接做资料的整理

  1. 为什么要用微服务?

在我向你讲解微服务之前,我们先来看看在微服务出现以前流行的架构——一体化架构

通俗地讲,你可以认为,一体化架构就像一个大容器,这个应用包含的所有的软件组件都被装配起来并紧紧地打包在一起。

下面列出了一体化架构面临的挑战

● 不灵活——无法使用多种技术去构建一体化应用

● 不可靠——即便系统中只有一个功能不工作了,也会造成整个系统不工作

● 不可扩展——应用无法被轻易地被扩展,因为每次应用需要被升级,都必须重新构建整个系统

● 阻塞持续集成——应用中的很多功能无法同时被构建和部署

● 迭代速度慢——一体化应用中新开发的代码需要很长时间来构建,因为需要一个一个地构建每一块功能。

● 不适用于复杂应用——复杂应用的功能有耦合度很高的依赖

  1. 什么是微服务?

微服务,又叫微服务架构,是一种软件架构方式。它将应用构建成一系列按业务领域划分模块的、小的自治服务。

在微服务架构中,每个服务都是自我包含的,并且实现了单一的业务功能。
微服务架构

● 来自不同设备的不同客户,会尝试使用不用的服务,比如搜索、构建、配置和其他的管理功能。

● 基于服务的领域和功能,这些服务被分离了,并且被分配给了单独的微服务。

● 这些微服务有它们自己的负载均衡器、专有的执行环境,同时还能在它们自己的数据库中获取数据。

● 微服务间彼此的通信是通过一个无状态的服务器进行的,这个服务器要么是REST的,要么就是一个消息总线。

● 借助“服务发现”,微服务可以知道它们通信的路径,并发挥工作能力,比如自动化、监控等。

● 这些由微服务执行的功能通过API网关传达给了客户。

● 所有内部节点都被连接到了API网关,因此,所有连接到API网关的用户都会自动连接到这个完整的系统。

  1. 微服务的特点

● 解耦:同一系统内的服务大部分可以被解耦。因此应用,作为一个整体,可以轻易地被构建、修改和扩展。

● 组件化:微服务可以被看成相互独立的组件,这些组件可以被轻易地替换和升级。

● 业务能力:微服务很小,它们可以专注于某种单一的能力

● 自治:开发者和团队可以独立地工作,提高开发速度。

● 持续交付:允许持续发布软件新版本,通过系统化的自动手段来创建、测试和批准新版本。

● 职责明确:微服务不把应用看成一个又一个的项目。相反,它们把应用当成了自己需要负责的项目。

● 去中心化管理:关注于使用正确的工具来完成正确的工作。这也就是说,没有标准化的方式或者技术模式。开发者们有权选择最好的工具来解决问题。

● 敏捷性:微服务支持敏捷开发。任何新功能都可以被快速开发或丢弃。

  1. 微服务架构的优势

● 独立开发:基于各个微服务所独有的功能,它们可以被轻易开发出来。

● 独立部署:基于它们所提供的服务,它们可以被独立地部署到应用中。

● 错误隔离:即便其中某个服务发生了故障,整个系统还可以继续工作。

● 混合技术栈:可以使用不同的语言和技术来为同一个应用构建不同的服务。

● 按粒度扩展:可以根据需求扩展某一个组件,不需要将所有组件全部扩展

  1. 微服务和分布式的区别

5.1 分布式:

将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区别分布式的方式是根据不同机器不同业务。
service A、B、C、D 分别是业务组件,通过API Geteway进行业务访问。

注:分布式需要做好事务管理。

5.2 分布式是否属于微服务?

答案是肯定的。微服务的意思也就是将模块拆分成一个独立的服务单元通过接口来实现数据的交互。

5.3 微服务架构

微服务的设计是为了不因为某个模块的升级和BUG影响现有的系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。

微服务和分布式的区别

分布式和微服的架构很相似,只是部署的方式不一样而已。

分布式服务架构与微服务架构概念的区别与联系是怎样的

分布式:分散压力。

微服务:分散能力。

当下理解

分布式:

不同模块部署在不同服务器上;

作用:分布式解决网站高并发带来问题;

集群:相同的服务;

多台服务器部署相同应用构成一个集群;

作用:通过负载均衡设备共同对外提供服务;

SOA[组装服务/ESB企业服务总线];

业务系统分解为多个组件,让每个组件都独立提供离散,自治,可复用的服务能力;

通过服务的组合和编排来实现上层的业务流程;

作用:简化维护,降低整体风险,伸缩灵活;

微服务[找到服务/微服务网关open API];

架构设计概念,各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合)其它特性(单一职责,边界,异步通信,独立部署)是分布式概念的跟严格执行;

SOA到微服务架构的演进过程;

作用:各服务可独立应用,组合服务也可系统应用(巨石应用[monolith]的简化实现策略-平台思想).

猜你喜欢

转载自blog.csdn.net/chenghan_yang/article/details/85470876