请选择 进入手机版 | 继续访问电脑版

什么是微服务、微服务解决的问题是什么

[复制链接]
小小海 发表于 2021-1-2 18:57:44 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
1、微服务办理的问题

传统的单体应用按照业务边界分别为小型的、可以独立摆设的服务单元,然后通过遵循轻量级的交互协议举行集成,成为这一理念下事实上的尺度开发模式和最佳实践。


  • 服务实例太多怎么办:当系统中存在大量独立服务时,如何有效识别和管理这些服务的实例?这将成为一大挑战!分布式系统,一定要可以或许实时对这些服务实例举行治理。— 服务治理
  • 服务调用关系太杂乱怎么办:服务数量所衍生的另一个问题,是服务调用之间的关系会变得杂乱,客户端与各个服务之间也会存在较高的耦合度,分布式系统需要提供简便而明确的入供词客户端访问。— api网关
  • 服务访问堕落了怎么办:分布式情况下的调用,与单体系统中的方法级调用差异。服务间的跨历程调用大概出现各种意想不到的问题,这就需要在服务访问堕落时举行公道的容错处置惩罚。— 服务容错
  • 设置信息散落在各个服务中怎么办:一旦系统被拆分成多个独立服务,分布式系统就需要确保分散在每个服务中的设置信息,以及所有服务在开发、测试和生产等情况中的设置信息得到统一管理。— 设置中心
  • 服务调用链路太长怎么办:服务远程调用的另一个问题是调用链路大概会很长,需要对整个调用链路举行监控和跟踪,从而高效发现服务调用过程中的异常场景和性能问题。— 链路跟踪

  • 服务治理:为了有效管理分布式系统中存在的大量服务实例,微服务架构引入了服务发现和服务注册机制,使得服务实例的管理变得自动化、透明化。

    • Eureka、nacos等

  • API 网关:为了低落服务客户端与服务提供者之间的耦合度,更好地简化调用过程,微服务架构专门提供了一个 API 网关,用来优化面向客户端的 API 设计。

    • OpenResty、Kong、Zuul2、SpringCloudGateway 等

  • 服务容错:为了办理服务访问堕落问题,微服务架构中提供了服务隔离、服务熔断和服务回退等面向服务调用端的有效容错机制。

    • Hystrix、Resilience4J、Sentinel等

  • 设置中心:为了更好地组织和管理散落在各个服务中的设置信息,微服务架构提供了一个设置中心来会集化管理。

    • apollo、nacos等

  • 链路跟踪:为了高效监控服务调用的康健状态以及全链路的数据流转,微服务架构提供了链路跟踪机制,来对各个服务之间的调用过程举行统一管理。

    • ZipKin Sleuth等

2、微服务架构特点

服务组件化、去中心化、底子设施自动化
3、架构模式

底子服务、通用服务、定制服务和其他服务

4、技能体系

服务通信、服务治理、服务路由、服务容错、服务网关、服务设置、服务安全和服务监控

4.1、服务通信

4.1.1、网络毗连模式

当一台盘算机想要与另一台盘算机通讯时,两台盘算机之间的通信需要流畅且可靠,这样才气包管正确收发数据。比方,当你想检察网页或检察电子邮件时,希望完整且按顺序检察网页,而不丢失任何内容。当你下载文件时,希望得到的是完整的文件,而不但仅是文件的一部分,因为如果数据丢失或乱序,都不是你希望得到的效果,于是就用到了TCP。
TCP协议全称是传输控制协议是一种面向毗连的、可靠的、基于字节省的传输层通信协议,由 IETF 的RFC 793界说。TCP 是面向毗连的、可靠的流协议。流就是指不中断的数据布局,你可以把它想象成排水管中的水流。
TCP 协议的网络毗连两种根本方式
长毗连和短毗连的产生在于客户端和服务器端接纳的关闭战略,详细的应用场景接纳详细的战略。


  • 长毗连:指在一个毗连上可以一连发送多个数据包,在毗连保持期间,如果没有数据包发送,需要双方发链路检测包。

    • 长毗连多用于操纵频仍,点对点的通讯,而且毗连数不能太多情况。每个TCP毗连都需要三步握手,这需要时间,如果每个操纵都是短毗连,再操纵的话那么处置惩罚速度会低落许多,所以每个操纵完后都不停开,下次处置惩罚时直接发送数据包就OK了,不消创建TCP毗连。比方:数据库的毗连用长毗连,如果用短毗连频仍的通信会造成socket错误,而且频仍的socket 创建也是对资源的浪费。

  • 短毗连:短毗连是指通讯双方有数据交互时,就创建一个毗连,数据发送完成后,则断开此毗连,即每次毗连只完成一项业务的发送。

    • 而像WEB网站的http服务一般都用短链接,因为长毗连对于服务端来说会泯灭一定的资源,而像WEB网站这么频仍的成千上万甚至上亿客户端的毗连用短毗连会更省一些资源,如果用长毗连,而且同时有成千上万的用户,如果每个用户都占用一个毗连的话,那可想而知吧。所以并发量大,但每个用户无需频仍操纵情况下需用短连好。

4.1.3、I/O 模子(服务之间通信)

可以简朴明确为需要做一件事能不能立刻得到返回应答,如果不能立刻得到返回,需要期待,那就阻塞了(历程或线程就阻塞在那了,不能做别的事情),否则就可以明确为非阻塞(在期待的过程中可以做别的事情)。


  • 阻塞式 I/O:实现简朴
  • 非阻塞式 I/O:性能更好
以服务网关而言,像Netflix 的 Zuul就是阻塞式 I/O,而Spring Cloud Gateway则接纳的是非阻塞式 I/O。
4.1.4、服务调用方式

同步调用、异步调用


  • 通常都会接纳异步转同步的实现机制,也就是说开发人员使用同步的方式举行方法调用,而框架自己会基于 Future 等机制实现异步的远程处置惩罚。
4.2、服务治理

如果系统中服务数量不是许多,那么我们有许多办法可以获取这些服务的 IP 地点、端口等信息,管理起来也不是很复杂。但当服务数量到达一定量级时,大概连开发人员自己都不知道系统中到底存在多少个服务,也不知道系统中当前到底哪些服务已经变得不可用。这时候,我们就需要引入独立的前言来管理服务的实例,这个前言一般被称为服务注册中心。Eureka、nacos等

4.3、服务路由

我们现在已经通过注册中心构建了一个多服务的集群化情况中,当客户端请求到达集群,如何确定由哪一台服务器举行请求响应呢?这就是服务路由问题。可以认为负载均衡是最常见的一种路由方案,常见的客户端/服务器端负载均衡技能都可以完成服务路由。
负载均衡的出发点更多的是提供服务分发而不是办理路由问题,常见的静态、动态负载均衡算法也无法实现风雅化的路由管理。这时候我们就可以接纳路由规则。路由规则常见的实现方案是白名单或黑名单,即把需要路由的服务地点信息(如服务 IP)放入可以控制是否可见的路由池中举行路由。同样,路由规则也是微服务开发框架的一项常见功能。----Netflix Zuul
4.4、服务容错

分布式情况中的服务而言,服务在自身失败引发生错误的同时,还会因为依赖其他服务而导致失败。除了比力容易想到和实现的超时、重试和异步解耦等手段之外,我们需要思量针对各种场景的容错机制。----Spring Cloud Hystrix等
4.5、服务网关

服务网关也叫 API 网关,封装了系统内部架构,为每个客户端提供一个定制的 API。在微服务架构中,服务网关的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处置惩罚所有的非业务功能。

在功能设计上,服务网关在完成客户端与服务器端报文格式转换的同时,它大概还具有身份验证、监控、缓存、请求管理、静态响应处置惩罚等功能。另一方面,也可以在网关层制定机动的路由战略。针对一些特定的 API,我们需要设置白名单、路由规则等各类限制
4.6、服务设置

微服务架构中,思量到服务数量和设置信息的分散性,一般都需要引入设置中心的设计思想和相关工具。与注册中心一样,设置中心也是微服务架构中的底子组件,其目的也是对服务举行统一管理,区别在于设置中心管理的对象是设置信息而不是服务的实例信息。----Spring Cloud Config、Zookeeper 、apollo、nacos等
4.7、服务安全

在对微服务架构的学习过程中,服务安全是一块非常重要但又容易被忽视的内容。一般意义上的访问安全性,都是围绕认证和授权这两个核心概念来展开的。也就是说我们首先需要确定用户身份,然后再确定这个用户是否有访问指定资源的权限。站在单个微服务的角度讲,我们系统每次服务访问都能与授权服务器举行集成以便获取访问 Token。站在多个服务交互的角度讲,我们需要确保 Token 在各个微服务之间的有效传播。另一方面,服务内部,我们可以使用差异的访问战略限制服务资源的访问。
在实现微服务安全访问上,我们通常使用 OAuth2 协议来实现对服务访问的授权机制,使用 JWT 技能来构建轻量级的认证体系。Spring 家属也提供了 Spring Security 和 Spring Cloud Security 框架来完整这些组件的构建。
4.8、服务监控

在微服务架构中,当服务数量到达一定量级时,我们不免会遇到两个核心问题。一个是如何管理服务之间的调用关系?另一个是如何跟踪业务流的处置惩罚过程和效果?这就需要构建分布式服务跟踪机制。
分布式服务跟踪机制的创建需要完成调用链数据的生成、收罗、存储及查询,同时也需要对这些调用链数据举行运算和可视化管理。这些工作不是简朴一个工具和框架能全部完成,因此,在开发微服务系统时,我们通常会整合多个开发框架举行链路跟踪。比方,在 Spring Cloud 中,就提供了 Spring Cloud Sleuth 与 Zipkin 的集成方案。

来源:https://blog.csdn.net/Extraordinarylife/article/details/111994938
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )