三、Eureka
创始人
2024-02-17 16:40:13
0

文章目录

  • 一、认识服务提供者和服务调用者
  • 二、Eureka 的工作流程
  • 三、服务调用出现的问题及解决方法
  • 四、搭建 eureka-server
  • 五、注册 user-service、order-service
  • 六、在 order-service 完成服务拉取(order 模块能访问 user 模块)
  • 七、配置远程服务调用
  • 八、检测负载均衡是否生效(将 user-service 多次启动,模拟多实例部署)

一、认识服务提供者和服务调用者

服务提供者:一次业务中,被其他微服务调用的服务。(提供接口给其他微服务)
服务消费者:一次业务中,调用其他微服务的服务。(调用其他微服务提供的接口)
在这里插入图片描述

二、Eureka 的工作流程

在这里插入图片描述

三、服务调用出现的问题及解决方法

服务消费者该如何获取服务提供者的地址信息?

服务提供者启动时向 eureka 注册自己的信息;
eureka 保存这些信息;
消费者根据服务名称向 eurekaa 拉取提供者信息;

如果有多个服务提供者,服务消费者该如何选择?

服务消费者利用负载均衡算法,从服务列表中挑选一个;

消费者如何得知服务提供者的健康状态(是否挂掉)?

服务提供者会每隔30秒向 eureka-server 发送心跳请求,报告健康状态;
eureka 会更新记录服务列表信息,心跳不正常会被剔除;
消费者就可以拉取到最新的信息;

四、搭建 eureka-server

创建项目,引入依赖:

org.springframework.cloudspring-cloud-starter-netflix-eureka-server

编写启动类,在启动类上添加@EnableEurekaServer注解:

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {public static void main(String[] args) {SpringApplication.run(EurekaApplication.class, args);}
}

添加 application.yml 文件,编写下面配置:

server:port: 10086
spring:application:name: eurekaserver
eureka:client:service-url:defaultZone: http://127.0.0.1:10086/eureka/

启动项目:
在这里插入图片描述

五、注册 user-service、order-service

在两个模块中的pom.xml引入依赖:

org.springframework.cloudspring-cloud-starter-netflix-eureka-server

在两个模块的 yml 配置文件中编写配置:
user-service模块:

spring:application:name: userservice
eureka:client:service-url:defaultZone: http://127.0.0.1:10086/eureka/

order-service模块:

spring:application:name: orderservice
eureka:client:service-url:defaultZone: http://127.0.0.1:10086/eureka/

注册成功:
在这里插入图片描述

六、在 order-service 完成服务拉取(order 模块能访问 user 模块)

修改 OrderServiceImpl 中的代码,修改访问 url 路径,用服务名代替 ip、端口:

String url = "http://userservice/user/" + order.getUserId();

七、配置远程服务调用

在config层下创建:

@Component
public class RestTemplateConfig {/*** 创建 RestTemplate 并注入 Spring 容器* @LoadBalanced 注解描述:负载均衡作用*/@LoadBalanced@Beanpublic RestTemplate restTemplate(){return new RestTemplate();}
}

八、检测负载均衡是否生效(将 user-service 多次启动,模拟多实例部署)

修改端口(覆盖原来的端口):
在这里插入图片描述
在这里插入图片描述
启动项目(发现有两个 userservice):
在这里插入图片描述
测试结果:
user-service:8081和user-service:8082都会执行sql语句。

相关内容

热门资讯

思想政治工作条例最新修订内容,... 思想政治工作条例最新修订内容,思想政治工作条例全文下载 思想政治工作条例最新修订,全文下载与深度解读...
CBA潜力赛为何打成“老将赛”... 计时钟归零,双方教练握手致意,观众开始退场,CBA联赛的正赛宣告结束。然而球场并未就此沉寂,替补席上...
“手术钻头断裂遗留患者体内”,... 12月21日,湖南祁阳市卫生健康局发布情况通报称,近日,有媒体报道祁阳市中医医院发生骨科手术钻头断裂...
代驾纠纷 代驾时撞伤行人、车辆发生故障…… 这些都和车主无关,应由代驾赔偿? 观点: 使用代驾服务并非将所有...
公司股东与妻子分居期间出轨女下... 近日据报道,宁夏永宁县人民法院一审查明公司股东李某乙在与妻子李某甲分居期间,与公司女员工马某某存在不...
动物学家、律师和创作者,Thi... 12月21日,以“一起·了不起”为主题的2025 ThinkPad黑FUN礼在京举办。活动现场,律师...
徐奇渊:扩内需与对外政策紧密相... 近日,中国海关总署发布了一组数据令人关注:2025年前11个月,我国货物贸易顺差达到1.08万亿美元...
46岁上海独居女子不幸离世,官... 居住在上海虹口区46岁的蒋女士因突发脑溢血于今年10月入院,远亲吴先生与其公司共同垫付了医药费,但她...
威海市汽车以旧换新补贴政策调整... 根据稳妥有序开展消费品以旧换新工作统一部署,经研究决定,对我市汽车以旧换新补贴政策进行调整。现将有关...