SpringCloud之Eureka服务注册中心,服务注册和服务发现

今天药忘吃喽~ 2022-05-19 02:08 429阅读 0赞

我使用的版本

  1. springboot版本
  2. <version>1.5.14.RELEASE</version>
  3. springcloud版本
  4. <spring-cloud.version>Edgware.SR4</spring-cloud.version>

使用eureka写一个注册中心,相当于zookeeper的地位
引入eurekaServer 的依赖

  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-starter-eureka-server</artifactId>
  4. </dependency>

配置eurekaServer

  1. server:
  2. port: 8761
  3. eureka:
  4. instance:
  5. hostname: eureka-server
  6. client:
  7. register-with-eureka: false
  8. fetch-registry: false
  9. service-url:
  10. defaultZone: http://localhost:8761/eureka/ #默认配置

@EnableEurekaServer,启动eurekaServer

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

访问http://localhost:8761/ 出现eurekaServer注册中心的界面

写provider,多复制几个,改一下端口号

  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-starter-eureka</artifactId>
  4. </dependency>
  5. server:
  6. port: 8001
  7. spring:
  8. application:
  9. name: provider-ticket
  10. eureka:
  11. instance:
  12. prefer-ip-address: true # 注册服务的时候使用服务的ip地址
  13. client:
  14. service-url:
  15. defaultZone: http://localhost:8761/eureka/

使用RestAPI提供服务

  1. @RestController
  2. public class UserController {
  3. @GetMapping("/ticket")
  4. public String test(){
  5. System.out.println("===================>8001");
  6. return "8001 provider";
  7. }
  8. }

写一个消费者
引入依赖

  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-starter-eureka</artifactId>
  4. </dependency>

配置消费者

  1. spring:
  2. application:
  3. name: consumer-user
  4. server:
  5. port: 8100
  6. eureka:
  7. instance:
  8. prefer-ip-address: true # 注册服务的时候使用服务的ip地址
  9. client:
  10. service-url:
  11. defaultZone: http://localhost:8761/eureka/

发现服务@EnableDiscoveryClient
配置一个RestTemplate,并启动负债均衡@LoadBalanced
启动消费者

  1. @EnableDiscoveryClient
  2. @SpringBootApplication
  3. public class ConsumerApplication {
  4. public static void main(String[] args) {
  5. SpringApplication.run(ConsumerApplication.class, args);
  6. }
  7. @LoadBalanced
  8. @Bean
  9. public RestTemplate restTemplate(){
  10. return new RestTemplate();
  11. }
  12. }

访问该consumer自动远程调用provider

  1. @RestController
  2. public class UserController {
  3. @Autowired
  4. RestTemplate restTemplate;
  5. @GetMapping("/buy")
  6. public String test() {
  7. System.out.println("===========================>8100");
  8. String forObject = restTemplate.getForObject("http://PROVIDER-TICKET/ticket", String.class);
  9. System.out.println(forObject);
  10. return forObject;
  11. }
  12. }

访问localhost://8761可以看到注册中心中有两个服务提供者和一个服务消费者
这里写图片描述

访问http://localhost:8100/buy
会发现界面轮流出现8001 provider,8002 provider,启动了负债均衡

发表评论

表情:
评论列表 (有 0 条评论,429人围观)

还没有评论,来说两句吧...

相关阅读