eureka的服务发现

发布时间:2024年01月17日

1.引入依赖

服务发现、服务注册统一都封装在eureka-client依赖,因此这一步与服务注册时一致。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2.配置文件

服务发现也需要知道eureka地址,因此第二步与服务注册一致,都是配置eureka信息:

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

3.服务拉取和负载均衡

????????服务拉取就是找注册中心要信息,以前我们写ip地址,现在我们写服务名

? ? ? ? 负载均衡就是对服务名相同的,但是ip地址不同的进行均匀的访问

// 2.利用RestTemplate发起http请求,查询用户
// 2.1.url路径
// String url = "http://localhost:8081/user/" + order.getUserId();   // 之前的硬编码
String url = "http://userservice/user/" + order.getUserId();         // 现在的
// 2.2.发送http请求,实现远程调用
// 第二个参数是你想要的返回类型,会自动帮我们将JSON对象反序列化为User对象
User user = restTemplate.getForObject(url, User.class);
// bean的注入只能放到配置类中,启动类带有main()函数,带有@SpringBootApplication注解本身也是配置类

/**
 * 创建RestTemplat并注入Spring容器
 * @return
 */
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
    return new RestTemplate();
}

@大总结

Ⅰ.搭建EurekaServer

  1. 引入eureka-server依赖
  2. 添加@EnableEurekaServer注解
  3. 在application.yml中配置eureka地址

Ⅱ.服务注册

  1. 引入eureka-client依赖
  2. 在application.yml中配置eureka地址

Ⅲ.服务发现

  1. 引入eureka-client依赖
  2. 在application.yml中配置eureka地址
  3. 给RestTemplate添加@LoadBalanced注解
  4. 用服务提供者的服务名称远程调用
文章来源:https://blog.csdn.net/lemonzjk/article/details/135637055
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。