SpringBoot整合Eureka案例

以你之姓@ 2022-02-27 01:12 493阅读 0赞

一、创建买票工程做案例

1)、创建三个项目consumer-user(消费者)、eureka-server(注册中心)、provider-ticket(生产者)

2)、目录结构如下:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3htMzkzMzkyNjI1_size_16_color_FFFFFF_t_70

二、配置案例需要的环境

环境一:eureka-server(注册中心)相关

1)、所需jar

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

2)、全局环境配置

  1. server:
  2. port: 8761
  3. eureka:
  4. instance:
  5. hostname: eureka-server #eureka实例的主机名
  6. client:
  7. register-with-eureka: false #不注册本身到Eureka注册中心
  8. fetch-registry: false #不从Eureka注册中心获取服务的注册信息
  9. service-url:
  10. defaultZone: http://localhost:8761/eureka/

3)、启动访问

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3htMzkzMzkyNjI1_size_16_color_FFFFFF_t_70 1

环境二:provider-ticket(生产者)相关

1)、所需jar

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

2)、全局环境配置

  1. #启动端口
  2. server:
  3. port: 8001
  4. #项目名称
  5. spring:
  6. application:
  7. name: provider-ticket
  8. #eureka配置
  9. eureka:
  10. instance:
  11. prefer-ip-address: true #使用服务的id地址注册
  12. client:
  13. service-url:
  14. defaultZone: http://localhost:8761/eureka/

3)、启动项目,访问注册中心查看是否注册成功

2019032614273610.png

环境三:consumer-user(消费者)相关

1)、所需jar跟生产者一样

2)、全局环境配置

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

3)、启动项目,访问注册中心看是否注册成功

20190326143132221.png

三、案例相关代码

1)、eureka-server(注册中心)开启Eureka服务

启动类:

  1. @EnableEurekaServer//启用Eureka服务
  2. @SpringBootApplication
  3. public class EurekaServerApplication {
  4. public static void main(String[] args) {
  5. SpringApplication.run(EurekaServerApplication.class, args);
  6. }
  7. }

2)、 provider-ticket(生产者)

service类:

  1. @Service
  2. public class TicketService {
  3. public String getTicket(){
  4. return "《绿皮书》";
  5. }
  6. }

controller类:

  1. @RestController
  2. public class TicketController {
  3. @Autowired
  4. TicketService ticketService;
  5. @GetMapping("/ticket")
  6. public String getTicket(){
  7. return ticketService.getTicket();
  8. }
  9. }

3)、 consumer-user(消费者)

注入远程访问模板类:

  1. @Bean
  2. @LoadBalanced//启用负载均衡机制
  3. public RestTemplate restTemplate(){
  4. return new RestTemplate();
  5. }

controller类:

  1. @RestController
  2. public class UserController {
  3. @Autowired
  4. RestTemplate restTemplate;
  5. @GetMapping("/buy")
  6. public String buyTicket(String name){
  7. String template = restTemplate.getForObject("http://PROVIDER-TICKET/ticket", String.class);
  8. return name+"购买了"+template;
  9. }
  10. }

四、访问购票接口验证是否整合成功

20190326144029618.png

发表评论

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

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

相关阅读