Eureka注册中心
画一个大概的流程图,描述一下eureka的作用
Eureka的使用
1.搭建Eureka的服务 eureka-server
由于eureka也是一个服务,我们先搭建它的服务
创建一个项目,导入eureka的服务依赖
这里没有写版本依赖是因为,我在父集项目中,就已经规范了版本依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
启动类上添加eureka的注解**@EnableEurekaServer**
编写application.yml文件
#服务端口配置
server:
port: 8761
#服务名称
spring:
application:
name: eurekaserver
#eureka配置
eureka:
client:
eureka-service-url: #eureka的地址信息
defaultZone: http://127.0.0.1:8761/eureka
启动服务,浏览器打开
idea配置service窗口
2.Eureka 服务注册 eureka-client
1.在服务提供者中引入依赖
我们可以把userservice和orderservice服务都注册到eureka中
<!-- eureka-client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2.在userservice和orderservice的配置文件application.yml中添加注册信息
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/cloud_order?useSSL=false
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
application:
name: orderservice
eureka:
client:
eureka-service-url:
defaultZone: http://127.0.0.1:8761/eureka
这里我将userservice服务模拟多实例启动,也就是多个服务,由于端口占用的问题,可以这样操作
选择userservice服务,右击鼠标,选择如下:
将服务启动成功,浏览器进行访问
这里也可以看到我将userservice服务启动了3台
3.服务拉取
我们将之前的orderservice调用userservice的服务地址修改下
并且添加一个负载均衡的策略
这里我们使用了RestTemplate对象,它主要就是帮助我们发送http请求
浏览器访问,就可以实现服务之间的远程调用,orderservice可以调到我们的userservice服务了
Ribbon负载均衡策略
查看源码我们就可以发现,主要是使用了IRule接口
1.设置全局的负载均衡
添加IRule的接口,重新定义,这里定义了随机规则,全局使用
2.单独给服务配置负载均衡的规则
可以在application.yml文件中进行配置
#给userservice服务配置负载均衡规则
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #负载均衡规则
3.Ribbon添加饥饿加载
就是当我们第一次浏览器访问时,浏览器相应比较的慢,这是因为Ribbon默认是懒加载,就是每次启动都会重新创建对象,因而导致访问速度很慢,我们这里可以配置为饥饿加载,明显可以提高访问速度。
ribbon:
eager-load:
enabled: true #开启饥饿加载
clients: #指定饥饿加载的服务名称
-userservice