🏠个人主页:阿杰的博客
💪个人简介:大家好,我是阿杰,一个正在努力让自己变得更好的男人👨
目前状况🎉:24届毕业生,奋斗在找实习的路上🌟
🚗🚗为了让更多的人看到更优质的博客,阿杰正在努力的更新学习中心中的内容。
文章目录
- 🌳认识微服务
- 🍅SpringCloud
- 🌲Eureka注册中心
- 🌻搭建eureka注册中心
- 🌻注册eureka
- 🌻服务发现
🌳认识微服务
🍅SpringCloud
🌲Eureka注册中心
服务调用出现的问题
-
服务消费者该如何获取服务提供者的地址信息
- 服务提供者启动时向eureka注册自己的信息
- eureka保存这些信息
- 消费者根据服务名称向eureka拉取提供者信息
简单来说就是eureka充当家政公司的角色,消费者充当你,提供者充当家政。
家政上班的时候在公司登记,你去家政公司找家政的时候,他会按照自己的规则派给你一个家政。
-
如果有多个服务提供者,消费者该如何选择
- 服务消费者利用负载均衡算法,从服务器列表挑一个
-
消费者如何得知服务提供者的健康状态
- 服务提供者会没30 秒向eurekaServer发送心跳请求,报告健康状态
- eureka会更新状态,剔除不正常的
🌻搭建eureka注册中心
-
引用依赖
<!--eureka服务端--> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
-
启动类添加注解 @EnableEurekaServer
-
添加配置
server:port: 10086 # 服务端口 spring:application:name: eurekaserver # eureka的服务名称 eureka:client:service-url: # eureka的地址信息defaultZone: http://127.0.0.1:10086/eureka
🌻注册eureka
-
引用依赖
<!--eureka客户端依赖--> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
-
添加配置
server:port: 8081 # 服务端口 spring:application:name: userserver # user的服务名称 eureka:client:service-url: # eureka的地址信息defaultZone: http://127.0.0.1:10086/eureka
🌻服务发现
-
在启动类添加RestTemplate到容器 并添加@LoadBalanced注解
/*** 创建RestTemplate并注入Spring容器*/ @Bean @LoadBalanced public RestTemplate restTemplate() {return new RestTemplate(); }
-
调用服务名就可以使用服务
@Autowired private RestTemplate restTemplate;public Order queryOrderById(Long orderId) {// 1.查询订单Order order = orderMapper.findById(orderId);// 2.利用RestTemplate发起http请求,查询用户// 2.1.url路径String url = "http://userservice/user/" + order.getUserId();// 2.2.发送http请求,实现远程调用User user = restTemplate.getForObject(url, User.class);// 3.封装user到Orderorder.setUser(user);// 4.返回return order; }