Eureka注册中心(快速上手)
1、服务注册
搭建EurekaServer
1. 创建项目
2. 引入Spring-cloud-starter-netflix-eureka-server依赖
<!-- eureka服务端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
3.在启动类添加@EnableEurekaServer注解
4.配置application.yml
server:
port: 10086 #eureka的端口
spring:
application:
name: eurekaserver #eureka的服务名称
eureka:
client:
service-url: #eureka的地址信息
defaultZone: http://localhost:10086/eureka
注册一个服务到EurekaServer
1.创建项目
2.引入spring-cloud-starter-netflix-eureka-client依赖
注意:必须引入web场景(需要Tomcat服务器)
3.配置application.yml
server:
port: 8081 #eureka的端口
spring:
application:
name: userservice #服务名称
eureka:
client:
service-url:
defaultZone: http://localhost:10086/eureka
启动项目,并访问http://localhost:10086/, 运行结果:
二、多实例部署
我们可以将我们的服务多次启动,模拟多实例部署(但是确保端口不冲突,需要修改端口号)
运行结果:
三、服务发现
服务拉取:根据服务的名称获取服务列表,然后再对服务列表做负载均衡
使用 RestTemplate 进行服务的远程调用以及负载均衡
编写一个小测试(只提供了相关代码) :
编写一个orderservice的服务,通过订单服务查找用户的信息
-
userservice的业务:
-
通过orderservice远程调用上图方法:
-
在orderservice的启动类中注入RestTemplate:
@Bean public RestTemplate restTemplate(){ return new RestTemplate(); }
-
编写业务
-
-
运行结果:
负载均衡
当我们给userservice服务部署多个实例,就形成了一个服务列表,然后就可以对服务列表做负载均衡
- 添加 @LoadBalanced 注解:
- 修改访问的url路径,用服务名称替代IP和端口号: