• 1、服务的注册与发现-Eureka


    Eureka就是帮助我们维护所有服务的信息,以便服务之间的相互调用

    1 Eureka的快速入门

    1.1 创建EurekaServer

    1.1.1 创建一个父工程,并且在父工程中指定SpringCloud的版本,并且将packaing修改为pom

    <packaging>pom</packaging>
    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.3.12.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    
    <dependencyManagement>
       <dependencies>
           <dependency>
              <groupId>org.springframework.cloud</groupId>
              <artifactId>spring-cloud-dependencies</artifactId>
              <version>Hoxton.SR12</version>
              <type>pom</type>
              <scope>import</scope>
            </dependency>
       </dependencies>
    </dependencyManagement>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    创建eureka的server,创建SpringBoot工程,并且导入依赖,在启动类中添加注解,编写yml文件
    1.1.2 导入依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    1.1.3 启动类添加注解

    @SpringBootApplication
    @EnableEurekaServer
    public class EurekaApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(EurekaApplication.class,args);
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1.1.4 编写yml

    server:
      port: 8761 # 端口号
    
    eureka:
      instance:
        hostname: localhost   # localhost
      client:
        # 当前的eureka服务是单机版的
        registerWithEureka: false
        fetchRegistry: false
        serviceUrl:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    1.2 创建EurekaClient

    创建Maven工程,修改为SpringBoot
    1.2.1 导入依赖

    >
        >org.springframework.cloud>
        >spring-cloud-starter-netflix-eureka-client>
    >
    
    • 1
    • 2
    • 3
    • 4

    1.2.2
    在启动类上添加注解

    @SpringBootApplication
    @EnableEurekaClient
    public class CustomerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(CustomerApplication.class,args);
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1.2.3 编写配置文件

    # 指定Eureka服务地址
    eureka:
      client:
        service-url:
          defaultZone: http://localhost:8761/eureka   //服务器的地址
    
    #指定服务的名称
    spring:
      application:
        name: CUSTOMER
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    1.3 测试Eureka
    @Autowired
    private EurekaClient eurekaClient;
    
    
    @GetMapping("/customer")
    public String customer(){
        //1. 通过eurekaClient获取到SEARCH服务的信息
        InstanceInfo info = eurekaClient.getNextServerFromEureka("SEARCH", false);
    
        //2. 获取到访问的地址
        String url = info.getHomePageUrl();
        System.out.println(url);
    
        //3. 通过restTemplate访问
        String result = restTemplate.getForObject(url + "/search", String.class);
    
        //4. 返回
        return result;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    **1.4 启动类中配置(各人配置不一样) **RestTemplate

    @SpringBootApplication
    @EnableEurekaClient
    public class UserApplication {
        public static void main(String[] args) {
            SpringApplication.run(UserApplication.class,args);
        }
        @Bean
        public RestTemplate restTemplate(){
            return new RestTemplate();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    【UE 材质】力场护盾和冲击波效果
    C/C++语言100题练习计划 78——括号序列(前缀和实现)
    Intel oneAPI笔记(3)--jupyter官方文档(SYCL Program Structure)学习笔记
    PMM2 MySQL监控管理工具
    小程序设计基本微信小程序的旅游社系统
    PVRTexTool使用
    角点检测与SIFT
    el-table 默认数据选中优化版本
    Django REST项目实战:在线中文字符识别
    Linux学习: 压缩及解压缩命令tar|zip|rar|xz
  • 原文地址:https://blog.csdn.net/yc_Cabbage/article/details/126394610