重庆合川企业网站建设联系电话大连手机自适应网站建设电话

当前位置: 首页 > news >正文

重庆合川企业网站建设联系电话,大连手机自适应网站建设电话,百度推广渠道户,100个顺口的公司名字一、概览 1、微服务常用组件 微服务给系统开发带来了诸多问题和挑战#xff0c;如服务间通信和调用的复杂性、数据一致性和事务管理、服务治理和版本管理等#xff0c;为解决应对这些问题和挑战#xff0c;各种微服务组件应运而生微服务的常见组件和实现#xff1a;
1…一、概览 1、微服务常用组件 微服务给系统开发带来了诸多问题和挑战如服务间通信和调用的复杂性、数据一致性和事务管理、服务治理和版本管理等为解决应对这些问题和挑战各种微服务组件应运而生微服务的常见组件和实现
1注册中心用于服务的注册和发现管理微服务的地址信息常见实现有 SpringCloud NetflixEureka、ConsulSpringCloud AlibabaNacos 2配置中心用于集中管理微服务的配置信息可动态修改配置而不需要重启服务常见的实现有SpringCloud NetflixSpringCloud ConfigSpringCloud AlibabaNacos Config 3远程调用用于在不同的微服务之间进行通信和协作常见的实现有RESTful APIRestTemplate、OpenFeign、FeignRPC远程过程调用Dubbo、gRPC 4API网关作为微服务架构的入口统一暴露服务并提高路由、负载均衡、安全认证等功能常见的实现有Spring Cloud NetflixZuul、GatewaySpring Cloud AlibabaGateway、Apisix等 5分布式事务保证跨多个微服务的一致性和原子性操作常见的实现有 Spring Cloud Alibaba的Seata 6熔断器用于防止微服务之间的故障扩散提高系统的容错能力常见的实现有Spring Cloud NetflixHystrixSpring Cloud AlibabaSentinel、Resilience4j 7限流和降级用于防止微服务过载对请求进行限制和降级处理常见的实现有Spring Cloud NetflixHystrixSpring Cloud AlibabaSentinel 8分布式追踪和监控用于跟踪和监控微服务的请求流程和性能指标常见的实现有Spring Cloud NetflixSpring Cloud Sleuth ZipkinSpring Cloud AlibabaSkyWalking、Sentinel Dashboard 二、注册中心 1、注册中心的作用 注册中心是用来管理和维护分布式系统中各个服务的地址和元数据的组件主要用于实现服务的发现和注册功能 注册中心的作用服务注册各个服务在启动时向注册中心注册自己的网络地址、服务实例信息和其他相关的元数据如此其他服务就可以通过注册中心获取到当前可用的服务列表服务发现客户端通过向注册中心查询特定服务的注册信息获得可用的服务实例列表如此客户端即可根据需要选择合适的服务进行调用实现了服务间的解耦负载均衡注册中心可以对同一服务的多个实例进行负载均衡将请求分发到不同的实例上提高整体的系统性能和可用性故障恢复注册中心能够监测和检测服务的状态当服务实例发生故障或下线时可以及时地更新注册信息从而保证服务能够正常工作服务治理通过注册中心可以进行服务的配置管理、动态扩容/ 缩容服务路由、灰度发布等操作实现对服务的动态管理和控制 2、注册中心的实现方案 SpringCloud可以和多种注册中心进行集成常见的注册中心有Eureka、Consul、Zookeeper、Nacos EurekaNetflix开源的服务发现组件具有高可用、弹性、可扩展等特点与Spring Cloud集成良好Consul分布式服务发现和配置管理系统提供了服务的注册和发现、健康检查、键值存储等功能并支持多数据源中心部署Nacos阿里开源的动态服务发现、配置管理和服务管理组件提供了服务注册和发现、配置管理、动态DNS服务等功能ZookeeperApache开源的分布式协调服务可用作服务注册中心具有高可用、一致性、可靠性等特点 3、Eureka、Zookeeper和Nacos的区别 三者最大的区别在于Eureka支持APZookeeper支持CP而Nacos既支持AP也支持CP 4、Eureka实现原理 Eureka的实现原理大致可以从服务的注册与发现、服务的健康检查、服务负载均衡三个三面来看 1服务注册与发现当一个服务实例启动时会向Eureka Server发送注册请求将其信息登记到注册中心Eureka Server会将这些信息保存到内存中并提供REST接口以供其他服务查询服务消费者可以通过查询服务实例列表来获取可用的服务提供者实例从而实现服务的发现2服务健康检查Eureka通过心跳机制来检测服务实例的健康状态服务实例会定期向Eureka Server发送心跳即续约以表明自己的存货状态如果Eureka Server在一定时间内没有收到某个服务实例的心跳则会将其标记为不可用并从服务列表中移除下线实例3服务负载均衡Eureka客户端在调用其他服务时会从本地缓存中获取服务的注册信息如果缓存中没有对应的信息则会向Eureka Server发送查询请求Eureka Server会返回一个可用的服务实例列表给客户端客户端可以使用负载均衡算法选择其中的服务实例进行调用 其他的注册中心如Nacos、Consul等在服务注册和发现上实现原理都大同小异 5、Eureka如何保证高可用 Eureka Server保证高可用主要通过如下三个方面来实现 1多实例部署将多个Eureka Server实例部署在不同的节点上实现其高可用性当其中某个实例发生故障时其他实例仍然可以提供服务并保存注册信息的一致性 2服务注册信息的复制当一个服务实例向Eureka Server注册时每个Eureka Server实例都会复制其他实例的注册信息以保证数据的一致性当某个Eureka Server实例发生故障时其他实例可以接管其工作保证整个系统的正常运行 3自我保护机制当Eureka Server节点在一定时间内没有接收到心跳时会进入自我保护模式即Eureka不再剔除注册列表中的服务实例以保护现有服务实例的注册信息如此可以防止由于网路抖动或其他原因导致的误删除 三、配置中心 1、微服务为什么需要配置中心 微服务架构中的每个服务通常都需要一些配置信息如数据库连接地址、服务端口、日志级别等这些配置可能因为不同环境、不同部署实例或动态运行时需要进行调整和管理 微服务的实例一般较多如果每个都逐个去配置就会造成较大的运维成本因此就需要集中化地管理这些配置 2、Nacos配置中心的原理 配置中心需要完成配置信息的增删改查 Nacos作为配置中心其具体的实现大概可以分为如下几个部分 1配置信息存储Nacos默认使用内嵌数据库 Derby来存储配置信息也可以采用MySQL等关系型数据库 2注册配置信息服务启动时Nacos Client会向Nacos Server注册自己的配置信息即将配置信息写入存储并生成版本号 3获取配置信息服务运行期间Nacos Client通过API从Nacos Server获取配置信息Server根据键查找对应的配置信息并返回给client 4监听配置变化Nacos Client可以通过注册监听器的方式实现对配置信息的监听当配置信息发生变化时Nacos Server会通知已注册的监听器并触发相应的回调方法
3、Nacos配置中心长轮询机制 一般来说客户端和服务端的交互分为两种推Push和 拉PullNacos在Pull的基础上采用了长轮询来进行配置的动态刷新在长轮询模式下客户端定时向服务端发起请求检查配置信息是否发生变更如果没有变更服务端会hold住该请求即暂时不返回结果直到配置发生变化或达到一定的超时时间 通过长轮询的方式Nacos客户端能够实时感知配置的变化并及时获取最新的配置信息同时此种方式也降低了服务端的压力避免了大量的长连接占用内存资源 具体的实现过程如下 1客户端发起Pull请求服务端检查配置是否有变更如果没有变更则设置定时任务在一段时间后执行并将当前的客户端连接加入到等待队列中 2在等待期间如果配置发生变化服务端会立即返回结果给客户端完成一次推送操作 3如果在等待期间没有配置变更等到时间达到预设的超时时间后服务端会自动返回结果给客户端 4如果在等待期间通过Nacos Dashboard或API对配置进行了修改会触发事件机制服务端会遍历等待队列找到发生变更的配置项对应的客户端连接并将变更的数据通过连接返回完成一次推送操作 四、远程调用 1、HTTP和RPC的区别 HTTPHypertext Transfer Protocol一种应用层协议强调的是网络通信RPCRemote Producer Call一种用于分布式系统之间通信的协议强调的是服务之间的远程调用 在微服务体系中基于HTTP风格的远程调用通常使用Feign来实现基于RPC的远程调用通常使用Dubbo来实现其他区别如下 HTTPRPC用于传输超文本的协议用于实现分布式系统中不同节点之间通信的协议基于请求-响应模式客户端发送请求服务端返回响应基于方法调用模型客户端调用远程方法并等待结果基于TCP协议可使用其他传输层协议如TLS/SSL进行安全加密可使用多种传输协议如TCP、UDP等基于文本常见的数据格式有JSON、XML等可使用二进制、JSON、Protocol、Buffers等数据格式使用RESTful风格的接口进行定义常见的方法有GET、POST、PUT、DELETE等使用IDL接口定义语言进行接口定义如Protocol Buffers、Thrift等支持跨语言通信可使用HTTP作为通信协议实现不同语言之间的通信支持跨语言通信可使用IDL生成不同语言的客户端和服务端代码较灵活适用于不同类型的应用场景如Web开发、API调用等较高效适用于需要高性能和低延迟的分布式系统 负载均衡算法 常见的负载均衡算法 轮询算法Round Robin按照顺序将请求依次分配给每个后端服务器循环往复当请求到达时负载均衡器按照事先定义的顺序选择下一个服务器轮询算法适用于后端服务器具有相同的处理能力和性能的场景加权轮询算法Weighted Round Robin在轮询算法的基础上增加了权重的概念每个后端服务器都被赋予一个权重值权重值越高被选中的概率就越大如此就可以根据服务器的处理能力和性能调整请求的分配比例使性能较高的服务器能够处理更多的请求随机算法Random将请求随机分配给后端服务器每个后端服务器具有相等的、被选中的概率该算法简单且快速但不能考虑服务器实际的负载情况适用于后端服务器性能相近但无需考虑请求处理能力的场景加权随机算法Weighted Random在随机算法的基础上引入权重每个后端服务器被赋予一个权重值权重值越高被选中的概率就越大如此就可以根据服务器的处理能力和性能来调整请求的分配比例最少连接算法Least Connection根据后端服务器当前的连接数来决定请求的分配负载均衡器会选择当前连接数最少的服务器进行请求分配以保证后端服务器的负载均衡此种算法适用于后端服务器的处理能力不同或请求的处理时间不同的场景哈希算法Hash根据请求的某个特定属性如客户端IP地址、请求URL等计算哈希值然后根据哈希值选择相应的后端服务器