ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SpringCloud(二)服务注册中心与Eureka工作原理介绍

2020-01-16 23:55:59  阅读:226  来源: 互联网

标签:服务 SpringCloud Eureka 注册 服务提供者 Server 客户端


微服务的注册中心

author:QYX

注册中心可以说是微服务架构中的通讯录,它记录了服务和服务地址的映射关系,在分布式架构中,服务会注册到这里,当服务需要调用其他服务时,

就会在这里找到服务的地址,进行调用

注册中心的主要作用

 

服务注册中心是微服务架构中非常重要的一个组件,在微服务架构里主要起到了协调者的一个作用,注册中心一般包含如下几个功能:

1、服务发现:

服务注册/反注册:保存服务提供者和服务调用者的信息

服务订阅/取消订阅:服务调用者订阅服务提供者的信息,最好有实时推送的功能

服务路由(可选):具有筛选整合服务提供者的能力

2、服务配置

配置订阅:服务提供者和服务调用者订阅微服务相关的配置

配置下发:主动将配置推送给服务提供者和服务调用者

3、服务健康监测

检测服务提供者的健康情况

常见的注册中心

zookeeper

dubbo中推荐zookeeper作为注册中心

Eureka

Spring Cloud体系中应用广泛

Consul

Go语言开发,支持多数据中心分布式高可用的服务发布和注册服务,采用我们熟知的ralt算法保证服务的一致性,且支持健康检查

Nacos

作为一个Nacos杂只想说6666啊,Nacos是一个更易于构建云原生应用的动态服务发现,配置管理平台和服务管理平台,Spring Cloud Alibaba,

采用服务中心加配置中心的组合

CAP理论中(C 一致性 A 可用性 P 分区容错性)

选择服务注册中心请根据业务场景来进行实际的技术选型

 

 

Eureka

Eureka是Netfilx开发的服务发现框架,SpringCloud将它集成在自己的子项目spring-cloud-netfilx中,实现SpringCloud的服务发现功能

上图简要描述了Eureka的基本架构,由三个角色组成

1 Eureka Server

提供服务注册和发现

2 Service Provider

服务提供方

将自身服务注册到Eureka,从而使服务消费方能够找到

3 Service Consumer

服务消费方

从Eureka获取注册服务列表,从而能够消费服务

工作原理:

服务提供者开启时向Eureka Server注册实例,Eureka Server会将服务提供者的注册信息放入到内存中,且默认每30秒对服务提供者进行心跳检测,如果超过30秒则视为宕机,则删除内存中的注册信息

服务消费方从Eureka Server中获取注册信息,并保存到本地的内存中,并通过注册信息与服务提供者进行通讯,这里可能会引起一致性问题,因为假如Eureka Server的检测到服务提供者宕机则会删除内存

而服务消费者却还保存内存,这就引起了一致性问题,所有Eureka在CAP理论中(C 一致性 A 可用性 P 分区容错性)中只满足AP

Eureka总体介绍

我们的服务发现一般分为两种模式一种为客户端发现模式(我们主要讲这个),一种为服务端发现模式

服务实例的网络位置都是动态分配的,而且因为扩展,失效和升级等需求,服务实例会常常发生动态改变,因此客户端一种更加复杂的服务发现机制

当使用客户端发现模式时,客户端负责决定相应服务实例之间的网络位置,并且对请求实现负载均衡,客户端从一个服务注册服务中查询,其中是所有可用服务实例的库,客户端使用负载均衡算法对从多个服务实例中选择出一个,然后发出请求

本人的分布式框架也已经开源请大家多多支持啊!

标签:服务,SpringCloud,Eureka,注册,服务提供者,Server,客户端
来源: https://www.cnblogs.com/qyx66/p/12203785.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有