springcloud入门1(服务的注册与发现)

简介: 1、Eureka服务器    基础架构:        服务注册中心:Eureka提供的服务端,提供服务注册与发现功能        服务提供者:提供服务的应用,可以是spring boot应用,也可以是其他技术平台的应用只要遵循Eureka通讯...

1、Eureka服务器

    基础架构:

        服务注册中心:Eureka提供的服务端,提供服务注册与发现功能

        服务提供者:提供服务的应用,可以是spring boot应用,也可以是其他技术平台的应用只要遵循Eureka通讯机制的应用,

        服务消费者:消费者从服务注册中心获取服务列表,从而是消费者可以知道去何处调用所需要的服务

    服务治理机制:    

img_95abf08eba9abd410a8bde3a9e2ab134.png
图1-1

     服务提供者

        服务注册:服务提供者会在启动的时候发送REST请求的方式将自己注册到Eureka服务器中,同时带上了自身的一些元数据信息,Eureka服务将元数据信息存储到一个双层Map中,第一层的key是服务名,第二层的key具体的服务的实例名字,服务注册的时候需要确认一下eureka.client.register-with-eureka=true参数是否正确,这个参数为false时,不会启动注册操作。

        服务同步:如图1-1所示,服务提供者会在不同的Eureka服务器中注册1或者2中,两个Eureka服务器会互相注册为服务,其中一个获取到服务的注册中心,他会请求转发到集群中的其他的Eureka中,实现服务的同步,

        服务续约:注册完服务之后,服务提供者会维护一个特别的心跳告诉注册中不要把它剔除,这个操作称之为续约,其中有两个重要的参数

    eureka.instance.lease-renewal-interval-in-seconds=30     续约时间默认为30s

     eureka.instance.lease-expiration-duration-in-seconds=90     注册中心服务失效时间默认为90s

    服务消费者

        获取服务:Eureka会维护一份只读的服务清单返回给客户端,同时缓存清单会每隔30s更新一次

    eureka.client.fetch-registry=true        获取服务时候,这个参数必须为true

    erueka.client.registry-fetch-interval-seconds=30     这个参数更改更新时间

        服务调用:通过服务名字可以获取到具体提供服务的实例名和该实例的元信息,客户端可以根据自己的需要进行调用,或者采用Ribbon,进行均衡负载的方式调用。

        服务下线:系统运行过程中关闭某个服务或者重启某个服务,服务正常关闭的时候,会触发一个服务下线的请求发送给Eureka,

    服务注册中心

        失效剔除:注册的服务非正常下线时,Eureka会每隔60s(默认),将超市超时未续约的服务进行剔除

        自我保护:

        eureka.server.enable-self-preservation=false,关闭保护机制,以确保注册中心可以将不可用的实例正确剔除

    Eureka配置

客户端配置主要分两个方面:

    1、服务注册相关的配置信息,包括服务注册中心的地址、服务获取的时间间隔、可用区域等。

    2、服务实例相关的配置信息,包括服务实例的名称、ip地址、端口号、健康检查路径等。

相关文章
|
27天前
|
缓存 NoSQL Java
【Azure Redis 缓存】示例使用 redisson-spring-boot-starter 连接/使用 Azure Redis 服务
【Azure Redis 缓存】示例使用 redisson-spring-boot-starter 连接/使用 Azure Redis 服务
|
7天前
|
消息中间件 存储 Java
SpringCloud基础9——服务异步通信-高级篇
消息可靠性、死信交换机、惰性队列、MQ集群
SpringCloud基础9——服务异步通信-高级篇
|
27天前
|
Java Spring
【Azure Spring Cloud】Spring Cloud Azure 4.0 调用Key Vault遇见认证错误 AADSTS90002: Tenant not found.
【Azure Spring Cloud】Spring Cloud Azure 4.0 调用Key Vault遇见认证错误 AADSTS90002: Tenant not found.
|
27天前
|
Java Spring 容器
【Azure Spring Cloud】在Azure Spring Apps上看见 App Memory Usage 和 jvm.menory.use 的指标的疑问及OOM
【Azure Spring Cloud】在Azure Spring Apps上看见 App Memory Usage 和 jvm.menory.use 的指标的疑问及OOM
|
27天前
|
存储 Java Spring
【Azure Spring Cloud】Azure Spring Cloud服务,如何获取应用程序日志文件呢?
【Azure Spring Cloud】Azure Spring Cloud服务,如何获取应用程序日志文件呢?
|
27天前
|
SQL Java 数据库连接
【Azure Spring Cloud】Azure Spring Cloud connect to SQL using MSI
【Azure Spring Cloud】Azure Spring Cloud connect to SQL using MSI
|
27天前
|
Java 开发工具 Spring
【Azure Spring Cloud】使用azure-spring-boot-starter-storage来上传文件报错: java.net.UnknownHostException: xxxxxxxx.blob.core.windows.net: Name or service not known
【Azure Spring Cloud】使用azure-spring-boot-starter-storage来上传文件报错: java.net.UnknownHostException: xxxxxxxx.blob.core.windows.net: Name or service not known
|
27天前
|
NoSQL Java Redis
【Azure Spring Cloud】Java Spring Cloud 应用部署到Azure上后,发现大量的 java.lang.NullPointerException: null at io.lettuce.core.protocol.CommandHandler.writeSingleCommand(CommandHandler.java:426) at ... 异常
【Azure Spring Cloud】Java Spring Cloud 应用部署到Azure上后,发现大量的 java.lang.NullPointerException: null at io.lettuce.core.protocol.CommandHandler.writeSingleCommand(CommandHandler.java:426) at ... 异常
|
28天前
|
Java Spring
【Azure 应用服务】记一次Azure Spring Cloud 的部署错误 (az spring-cloud app deploy -g dev -s testdemo -n demo -p ./hellospring-0.0.1-SNAPSHOT.jar --->>> Failed to wait for deployment instances to be ready)
【Azure 应用服务】记一次Azure Spring Cloud 的部署错误 (az spring-cloud app deploy -g dev -s testdemo -n demo -p ./hellospring-0.0.1-SNAPSHOT.jar --->>> Failed to wait for deployment instances to be ready)
|
28天前
|
Java Maven Python
【Azure Spring Cloud】部署Azure spring cloud 失败
【Azure Spring Cloud】部署Azure spring cloud 失败