SpringCloud-搭建Eureka注册中心

很多小伙伴用springboot 整合eureka的时候遇到各种问题,其中这些问题大多数都是版本不兼容的问题。
下边列举一下SpringCloud 的版本以及SpringCloud和SpringBoot 版本的一个对应的情况
Spring Cloud版本 SpringCloud-搭建Eureka注册中心
文章图片
image.png Spring Cloud与Spring Boot版本匹配关系 SpringCloud-搭建Eureka注册中心
文章图片
image.png 搭建Eureka环境

使用版本说明: spring boot 2.0.x spring cloud Finchley.RELEASE jdk 1.8 maven 3.3.9

yml配置
server: port: 9000 eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ spring: application: name: eureka-service

启动
/** * @author sjx */ @SpringBootApplication @EnableEurekaServer public class EurekaApplication { public static void main(String[] args) { SpringApplication.run(EurekaApplication.class, args); } }

访问 :http://localhost:9000/
出现下面的图则说明你的eureka环境已经成功搭建完成

SpringCloud-搭建Eureka注册中心
文章图片
image.png
案例 实现案例订单服务调用会员服务查询用户信息

SpringCloud-搭建Eureka注册中心
文章图片
服务注册与发现.png 服务提供者 创建一个服务提供者 会员服务工程 (eurekaMember),提供会员查询服务信息
创建项目service-member
yml配置
server: port: 9001 eureka: client: serviceUrl: defaultZone: http://localhost:9000/eureka/ spring: application: name: service-member

pom.xml配置
配置同Eureka相同
新建MemberController
/** * @author: sjx * @description: 提供会员服务 */ @RestController public class MemberController { @GetMapping("/getUserList") public List getUserList() { List listUser = new ArrayList<>(); listUser.add("张三"); listUser.add("李四"); listUser.add("王五"); return listUser; } }

启动项目之后再Eureka注册中心中可以发现会员服务已经注册进来了

SpringCloud-搭建Eureka注册中心
文章图片
image.png 构建消费服务sercice-order yml配置
server: port: 9002 eureka: client: serviceUrl: defaultZone: http://localhost:9000/eureka/ spring: application: name: service-order

这里服务调用用rest
service
public interface OrderService { List getOrderByUserList(); } ###serviceImpl /** * @author: sjx * @description: */ @Service public class OrderServiceImpl implements OrderService { @Autowired private RestTemplate restTemplate; @Override public List getOrderByUserList() { return restTemplate.getForObject("http://service-member/getUserList", List.class); } }

controller
/** * @author: sjx * @description: 订单服务 */ @RestController public class OrderController { @Autowired private OrderService orderService; @GetMapping(value = "https://www.it610.com/getAllMemberUsers") public List getAllMemberUsers() { return orderService.getOrderByUserList(); } }

启动服务这时会出现一个错误如下
Field restTemplate in com.springcloud.order.service.impl.OrderServiceImpl required a bean of type 'org.springframework.web.client.RestTemplate' that could not be found.
在启动类上加上如下代码
@SpringBootApplication @EnableEurekaClient public class DemoApplication { /** * 在工程的启动类中,通过@EnableDiscoveryClient向服务中心注册; * 并且向程序的ioc注入一个bean: restTemplate; 并通过@LoadBalanced * 注解表明这个RestTemplate开启负载均衡的功能 * @return RestTemplate */ @Bean @LoadBalanced RestTemplate restTemplate() { return new RestTemplate(); } public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }

订单服务已经注册进来了

SpringCloud-搭建Eureka注册中心
文章图片
image.png 测试 SpringCloud-搭建Eureka注册中心
文章图片
image.png
【SpringCloud-搭建Eureka注册中心】通过订单服务成功查询到了所有的会员信息。

    推荐阅读