视频学习连接:https://www.bilibili.com/video/BV1jJ411S7xr?p=10
四、Erueka服务注册发现
1.什么是Erueka
2.原理
3.创建Eureka服务端
导入依赖
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka-server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
修改配置
server:
port: 7001
#Eureka配置
eureka:
instance:
hostname: localhost #服务端的实例名称
client:
register-with-eureka: false #是否向Eureka注册中心注册自己
fetch-registry: false #如果为false,表示自己为注册中心
service-url: #监控页面 默认为"defaultZone", "http://localhost:8761/eureka/",我们这里改成下面的这个
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
创建主启动类,开启服务访问 “http://localhost:7001/”
4.服务注册
在提供者导入依赖
<!--Eureka -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!--actuator 完善监控信息-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
修改配置application.yml
#Eureka配置 ,服务注册到哪里去,注册到eureka服务端去
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka/
instance: #修改Eureka页面的描述信息
instance-id: springcloud-provider-Dept-8001
info:
author: Rose玫瑰花葬礼
在主启动类加上注解
@EnableEurekaClient //服务启动后,自动注册到Eureka服务端去
进入Eureka页面 “http://localhost:7001/”,发现提供者注册进来了
Eureka的自我保护机制
5.集群配置
为了防止一个注册中心宕机而导致系统奔溃,要做集群来防止,如图是三个注册中心,每个注册中心关联另外的注册中心。
在项目中建一个Eureka项目,他的配置和7001一样
然后修改两个Eureke的配置,和7002互相绑定
修改提供者的配置
这样就搭建完成了
6.CAP原则
五、负载均衡及Ribbon
导入依赖,因为我这个版本的Eureka已经内置Ribbon,就不导入了
然后修改消费者配置文件
config文件
这样就是实现了客户端的负载均衡,为了体现负载均衡需要再建两个数据库和复制两个提供者项目并分别使用创建的两个数据库,最后开启 注册中心,3个提供者,1个消费者,查询dept表的数据。发现每次取的值不是一个数据库,就实现了负载均衡
六、服务熔断Hystrix
.......