SpringCloud-搭建Eureka注册中心
很多小伙伴用springboot 整合eureka的时候遇到各种问题,其中这些问题大多数都是版本不兼容的问题。
下边列举一下SpringCloud 的版本以及SpringCloud和SpringBoot 版本的一个对应的情况
Spring Cloud版本
文章图片
image.png Spring Cloud与Spring Boot版本匹配关系
文章图片
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环境已经成功搭建完成
文章图片
image.png
案例 实现案例订单服务调用会员服务查询用户信息
文章图片
服务注册与发现.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注册中心中可以发现会员服务已经注册进来了
文章图片
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);
}
}
订单服务已经注册进来了
文章图片
image.png 测试
文章图片
image.png
【SpringCloud-搭建Eureka注册中心】通过订单服务成功查询到了所有的会员信息。
推荐阅读
- 六步搭建ES6语法环境
- (1)redis集群原理及搭建与使用(1)
- 桁架搭建有什么价值()
- VM|VM ware 的 harbor 私有仓库搭建 (Ubuntu16.04)
- PHP开发-Mac搭建ThinkPHP5.0
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- sentry搭建错误监控系统(二)
- 【乐高创意作品】超智能!这款乐高搭建的除草机!
- 8、Flask构建弹幕微电影网站-搭建后台页面-密码修改、主页控制面板
- 适用于小白(VSCode搭建Vue项目,最详细的搭建步骤哦)