欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringBoot整合SpringCloud框架

程序员文章站 2022-04-15 18:00:02
Spring Cloud : 是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造*,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。本...

Spring Cloud : 是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造*,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

本文主要讲的是整合方面的东西,所以springcloud讲的不深

1.创建一个空项目,里面加入下面的子模块:

SpringBoot整合SpringCloud框架

  • eureka-server,只需要勾选下面的场景:
    SpringBoot整合SpringCloud框架
    然后创建一个application.yml,写下面的配置内容:
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/ 

然后在springBoot的启动类上标明下面的注解:
SpringBoot整合SpringCloud框架
然后启动springBoot,然后浏览器地址栏*问http://localhost:8761/
即可看到下面的可是化的注册中心(由于还没注册服务,所以下面红色框框那个地方自然是空的)
SpringBoot整合SpringCloud框架

  • provider-ticket 和 consumer-user 都需要下面的依赖:
    SpringBoot整合SpringCloud框架

先说provider-ticket:

在application.yml中写下面的配置:

server: port: 8001 spring: application: name: provider-ticket eureka: instance: prefer-ip-address: true #注册服务的时候使用服务的ip地址 client: service-url: defaultZone: http://localhost:8761/eureka/ 

书写下面的service:

package org.lzl.providerticket.service; import org.springframework.stereotype.Service; @Service public class TicketService { public String getTicket(){ System.out.println("8001"); return "卢泽龙最帅!"; } } 

再书写下面的controller:

package org.lzl.providerticket.controller; import org.lzl.providerticket.service.TicketService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TicketController { @Autowired TicketService ticketService; @GetMapping("/ticket") public String getTicket(){ return ticketService.getTicket(); } } 

然后启动这个springboot模块,这这个服务就被注册进去了。

consumer-user:

application.yml的配置信息如下:

spring: application: name: consumer-user server: port: 8200 eureka: instance: prefer-ip-address: true #注册服务的时候使用服务的ip地址 client: service-url: defaultZone: http://localhost:8761/eureka/ 

启动类加入下面的注解和bean:
SpringBoot整合SpringCloud框架
controller如下:

package org.lzl.consumeruser.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; @RestController public class UserController { @Autowired RestTemplate restTemplate; @GetMapping("/buy") public String buyTicket(String name){ String s = restTemplate.getForObject("http://PROVIDER-TICKET/ticket",String.class); //第一参数写注册的服务名 第二个参数指定放返回的参数类型 return name+"告诉我:"+s; } } 

然后也启动这个springboot的模块。

注上面三个模块都启动了,再看http://localhost:8761/ 页面
SpringBoot整合SpringCloud框架

已经可以看到两个服务的信息了。

测试远程调用:访问http://localhost:8200/buy?name=zs
看到如下的结果则说明成功:
SpringBoot整合SpringCloud框架

本文地址:https://blog.csdn.net/MoastAll/article/details/108246786

相关标签: springboot