怎样网站设计,广州做响应式网站多少钱,手机信息分类网站制作,做产地证网站大家好我是苏麟今天带来Eureka的使用 . 提供者和消费者
在服务调用关系中#xff0c;会有两个不同的角色#xff1a;
服务提供者#xff1a;一次业务中#xff0c;被其它微服务调用的服务。#xff08;提供接口给其它微服务#xff09;
服务消费者#xff1a;一次业务…大家好我是苏麟今天带来Eureka的使用 . 提供者和消费者
在服务调用关系中会有两个不同的角色
服务提供者一次业务中被其它微服务调用的服务。提供接口给其它微服务
服务消费者一次业务中调用其它微服务的服务。调用其它微服务提供的接口 但是服务提供者与服务消费者的角色并不是绝对的而是相对于业务而言。
如果服务A调用了服务B而服务B又调用了服务C服务B的角色是什么
对于A调用B的业务而言A是服务消费者B是服务提供者
对于B调用C的业务而言B是服务消费者C是服务提供者
因此服务B既可以是服务提供者也可以是服务消费者。
Eureka注册中心
假如我们的服务提供者user-service部署了多个实例如图 大家思考几个问题
order-service在发起远程调用的时候该如何得知user-service实例的ip地址和端口
有多个user-service实例地址order-service调用时该如何选择
order-service如何得知某个user-service实例是否依然健康是不是已经宕机
Eureka的结构和作用 问题1order-service如何得知user-service实例地址
获取地址信息的流程如下
user-service服务实例启动后将自己的信息注册到eureka-serverEureka服务端。这个叫服务 注册
eureka-server保存服务名称到服务实例地址列表的映射关系
order-service根据服务名称拉取实例地址列表。这个叫服务发现或服务拉取
问题2order-service如何从多个user-service实例中选择具体的实例
order-service从实例列表中利用负载均衡算法选中一个实例地址 向该实例地址发起远程调用
问题3order-service如何得知某个user-service实例是否依然健康是不是已经宕机
user-service会每隔一段时间默认30秒向eureka-server发起请求报告自己状态称为心跳 当超过一定时间没有发送心跳时
eureka-server会认为微服务实例故障将该实例从服务列表中 剔除 order-service拉取服务时就能将故障实例排除了 因此接下来我们动手实践的步骤包括 搭建eureka-server
首先大家注册中心服务端eureka-server这必须是一个独立的微服务
创建eureka-server服务 Eureka使用 Eureka 的操作步骤 /*** eureka :* 1.引入 spring-cloud-starter-netflix-eureka-server 依赖* 2.在启动类上加 EnableEurekaServer 开关注解* 3.在yml里配置信息*/
1.第一步 引入依赖 !--eureka服务端--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-server/artifactId/dependency
2.第二步添加注解 /*** EnableEurekaServer注解 Eureka开关注解 :开启Eureka*/
EnableEurekaServer
SpringBootApplication
public class EurekaApplication {public static void main(String[] args) {SpringApplication.run(EurekaApplication.class, args);}
}3.添加配置信息
server:port: 10086 #服务端口
spring:application:name: eurekaserver # 服务名称#Eureka 配置信息
eureka:client:register-with-eureka: false #是否将自己注册到eureka中fetch-registry: falseservice-url: # eureka 地址信息defaultZone: http://localhost:10086/eureka
启动服务
启动微服务然后在浏览器访问http://127.0.0.1:10086
看到下面结果应该是成功了 服务注册
下面我们将user-service注册到eureka-server中去。
引入依赖
在user-service的pom文件中引入下面的eureka-client依赖 !--eureka服务端--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependency
配置文件
server:port: 8081
spring:application:name: userserver # 服务名称
eureka:client:service-url: # eureka 地址信息defaultZone: http://localhost:10086/eureka
启动多个user-service实例
为了演示一个服务有多个实例的场景我们添加一个SpringBoot的启动配置再启动一个userservice。
首先复制原来的user-service启动配置 服务发现
下面我们将order-service的逻辑修改向eureka-server拉取user-service的信息实现服务发现。
引入依赖 !--eureka服务端--dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependency
配置文件
server:port: 8080
spring:application:name: orderserver # 服务名称eureka:client:service-url: # eureka 地址信息defaultZone: http://localhost:10086/eureka
服务拉取和负载均衡
最后我们要去eureka-server中拉取user-service服务的实例列表并且实现负载均衡。 不过这些动作不用我们去做只需要添加一些注解即可。 这期就到这里 , 下期见!