当前位置:   article > 正文

springCLoud——Eureka详解+例子_springcloud gateway eureka

springcloud gateway eureka

目录

 

1、Eureka基础知识

(1)服务治理

(2)服务注册

(3)Eureka Server

(4)Eureka Client

2、搭建Eureka服务端

(1)创建maven工程

 (2)导入依赖

(3)配置application.yml

(4)创建主启动类

(5)启动Eureka注册中心

 3、搭建服务提供者

(1)创建maven工程

(2)导入依赖

 (3)配置application.yml

(4)创建启动类

(5)创建controller

(6)测试该服务

4、搭建服务消费者

(1)创建maven工程

 (2)导入依赖

(3)配置application.yml

(4)创建主启动类

(5)创建配置类配置远程调用

(6)创建controller

5、整体测试


 

1、Eureka基础知识

(1)服务治理

管理服务与服务之间的依赖关系,以实现服务调用,负载均衡,容错等,实现服务注册与服务发现。

(2)服务注册

在服务注册与发现中,有一个注册中心,当服务启动时,会将该服务的相关信息注册到注册中心上去。

如:服务url地址,服务消费者会以该别名方式去注册中心上获取对应服务,进而进行远程调用

2332e215b1cf41f0abb8bf8f2ffe3e06.png 

(3)Eureka Server

提供服务注册,个微服务节点启动后,会在注册中心上注册相关信息,服务节点可以在界面中直观看到。

 

(4)Eureka Client

java客户端,客户端默认使用轮询负载均衡,在应用启动后,会向server发送心跳,若server端在多个心跳周期中未发现该服务,会自动将其移除注册表。 

2、搭建Eureka服务端

(1)创建maven工程

ef9d8d6fd35e463fa53276c1eaff3587.png

 (2)导入依赖

导入Eureka服务端、web模块依赖

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

(3)配置application.yml

①服务端口为7001;

②Eureka服务端主机名;

③Eureka客户端:

register-with-eureka:是否在服务中心注册

fetchRegistry:是否可以在注册中心被发现

service-url:服务中心url地址

  1. server:
  2. port: 7001
  3. eureka:
  4. instance:
  5. hostname: localhost
  6. client:
  7. register-with-eureka: false
  8. fetchRegistry: false
  9. service-url:
  10. defaultZone: http://localhost:7001/eureka

(4)创建主启动类

@EnableEurekaServer:Eureka服务端注解

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

(5)启动Eureka注册中心

访问http://localhost:7001

78ca559626be4fbfbcb6b62d630f5d70.png

 3、搭建服务提供者

(1)创建maven工程

d8067fbe756845d5ad8f7c3caf2750bc.png

(2)导入依赖

导入Eureka客户端、web模块、监控依赖

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

 (3)配置application.yml

①配置服务端口号为8003;

②配置服务应用名称;

③配置Eureka注册中心,开启注册,指明注册中心地址。

  1. server:
  2. port: 8003
  3. spring:
  4. application:
  5. name: provider8003
  6. eureka:
  7. client:
  8. register-with-eureka: true
  9. fetchRegistry: true
  10. service-url:
  11. defaultZone: http://localhost:7001/eureka

(4)创建启动类

@EnableEurekaClient:指明该服务为Eureka客户端

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

(5)创建controller

  1. @RestController
  2. public class HelloController {
  3. @GetMapping("/hello")
  4. public String hello(){
  5. return "Hello,Eureka";
  6. }
  7. }

(6)测试该服务

启动访问http://localhost:8003/hello

可以发现注册中心已经注册该服务

 9253bdfd4d8e41b6b69e364e90b152ac.png

 

4、搭建服务消费者

(1)创建maven工程

691a3fd5c6384ac688def72527b436fc.png

 (2)导入依赖

导入Eureka客户端、web、监控依赖

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

(3)配置application.yml

①配置服务·端口号为8004;

②配置服务名称为:Consumer8004;

③配置Eureka客户端,开启注册。配置注册中心地址。

  1. server:
  2. port: 8004
  3. spring:
  4. application:
  5. name: Consumer8004
  6. eureka:
  7. client:
  8. register-with-eureka: true
  9. fetchRegistry: true
  10. service-url:
  11. defaultZone: http://localhost:7001/eureka

(4)创建主启动类

开启Eureka客户端

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

(5)创建配置类配置远程调用

@LoadBalanced:负载均衡注解

  1. @Configuration
  2. public class ResConfig {
  3. @Bean
  4. @LoadBalanced
  5. public RestTemplate restTemplate(){
  6. return new RestTemplate();
  7. }
  8. }

(6)创建controller

①PROVIDER8003:服务提供者的名称,其在注册中心上注册,可以通过该名称找到对应ip地址;

②restTemplate.getForObject(”远程调用服务ip地址“,“调用服务方法返回类型”)

  1. @RestController
  2. public class HelloController {
  3. //调用服务地址
  4. private final static String url="http://PROVIDER8003";
  5. @Autowired
  6. RestTemplate restTemplate;
  7. @GetMapping("consumer")
  8. public String hello(){
  9. return restTemplate.getForObject(url+"/hello",String.class);
  10. }
  11. }

5、整体测试

①启动Eureka7001

②启动服务提供者Provider8003

③启动服务消费者Consumner8004

④访问http://loaclhost:8004/hello

结果如下:

ba1d448a894c471a86544be7f6f517cb.png

 92ea0f25d18848d9a4abbe7a6b32ba30.png

 测试成功!!!

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/525175
推荐阅读
相关标签
  

闽ICP备14008679号