SpringBoot整合Eureka案例 以你之姓@ 2022-02-27 01:12 366阅读 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 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> 2)、全局环境配置 server: port: 8761 eureka: instance: hostname: eureka-server #eureka实例的主机名 client: register-with-eureka: false #不注册本身到Eureka注册中心 fetch-registry: false #不从Eureka注册中心获取服务的注册信息 service-url: defaultZone: http://localhost:8761/eureka/ 3)、启动访问 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3htMzkzMzkyNjI1_size_16_color_FFFFFF_t_70 1][] **环境二:provider-ticket(生产者)相关** 1)、所需jar <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> 2)、全局环境配置 #启动端口 server: port: 8001 #项目名称 spring: application: name: provider-ticket #eureka配置 eureka: instance: prefer-ip-address: true #使用服务的id地址注册 client: service-url: defaultZone: http://localhost:8761/eureka/ 3)、启动项目,访问注册中心查看是否注册成功 ![2019032614273610.png][] **环境三:consumer-user(消费者)相关 ** 1)、所需jar跟生产者一样 2)、全局环境配置 server: port: 8002 spring: application: name: consumer-user eureka: instance: prefer-ip-address: true #使用服务的id地址注册 client: service-url: defaultZone: http://localhost:8761/eureka/ 3)、启动项目,访问注册中心看是否注册成功 ![20190326143132221.png][] ### 三、案例相关代码 ### 1)、eureka-server(注册中心)开启Eureka服务 启动类: @EnableEurekaServer//启用Eureka服务 @SpringBootApplication public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } } 2)、 provider-ticket(生产者) service类: @Service public class TicketService { public String getTicket(){ return "《绿皮书》"; } } controller类: @RestController public class TicketController { @Autowired TicketService ticketService; @GetMapping("/ticket") public String getTicket(){ return ticketService.getTicket(); } } 3)、 consumer-user(消费者) 注入远程访问模板类: @Bean @LoadBalanced//启用负载均衡机制 public RestTemplate restTemplate(){ return new RestTemplate(); } controller类: @RestController public class UserController { @Autowired RestTemplate restTemplate; @GetMapping("/buy") public String buyTicket(String name){ String template = restTemplate.getForObject("http://PROVIDER-TICKET/ticket", String.class); return name+"购买了"+template; } } ### 四、访问购票接口验证是否整合成功 ### ![20190326144029618.png][] [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3htMzkzMzkyNjI1_size_16_color_FFFFFF_t_70]: /images/20220227/c5fc4a7f6fb6491e98d394b4593a1bb6.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3htMzkzMzkyNjI1_size_16_color_FFFFFF_t_70 1]: /images/20220227/6d2e331294284982b956a6983fd4e2b7.png [2019032614273610.png]: /images/20220227/6116cfb60b7643cd8535b857ba933ac0.png [20190326143132221.png]: /images/20220227/1aaf5bf619074bde8f538cf42574e087.png [20190326144029618.png]: /images/20220227/fa94ec2259ab44e587ec7b3a110270c1.png
还没有评论,来说两句吧...