目录
2.在eureka-server工程中pom.xml中导入eureka依赖
3.在eureka-server工程启动类中添加@EnableEurekaServer注解开启eureka的注册中心功能
4.在eureka-server工程application.yml文件中添加配置
1.在服务工程pom.xml中引入eureka-client依赖:
2.在服务工程application.yml配置文件,添加服务名称、eureka地址:
4.3启动微服务,然后在浏览器访问:http://127.0.0.1:10086(上面配置的路径)
1.提出问题
1.在发起远程调用的时候,该如何得知被调用者的ip地址和端口?
Eureka组件:作用是服务的注册和发现,让消费者获得服务者的地址.
Eureka本身也是服务器此服务器包括Server 和Client(用于创建集群)
Eureka Server 提供服务发现的功能, 各个微服务会将自己的信息注册到Eureka Server。
Eureka Client 即服务提供者,将其信息注册到Eureka Server上面。
2.如何得知某个被访问者是否存活,是不是已经宕机?
心跳续约:微服务会周期性(默认30秒)地向Eureka Server 发送心跳以维持自己的注册状态,如果Eureka Server 在一定时间(默认90秒)没有接受到某个微服务实例的心跳,Eureka Server 将会注销该实例。
2.Eureka注册中心
2.1.Eureka的使用场景
应用场景:多个不同的服务需要合并在一起对外提供服务的情况下
比如:订单信息中需要携带用户信息,订单服务调用用户服务
2.2.Eureka的作用
1.Eureka是服务注册中心,作用是服务的注册和发现,管理服务的注册服务信息,让消费者获得服务者的地址
2.如果服务者有多个地址则通过负载均衡算法选中一个地址发起远程调用
3.帮助消费者定时更新服务提供者的健康状态
Eureka本身也是服务器此服务器包括Server 和Client(用于创建集群)
Eureka Server 提供服务发现的功能, 各个微服务会将自己的信息注册到Eureka Server。
Eureka Client 即服务提供者,将其信息注册到Eureka Server上面。
注意
1.服务一启动,注册服务信息就会交给注册中心管理
2.消费者每30秒拉取一次服务信息
3.心跳续约:微服务会周期性(默认30秒)地向Eureka Server 发送心跳以维持自己的注册状态,如果Eureka Server 在一定时间(默认90秒)没有接受到某个微服务实例的心跳,Eureka Server 将会注销该实例。
4.剔除机制:Eureka Server在启动完成后会创建一个定时器每隔60秒检查一次服务健康状况,如果其中一个服务节点超过90秒未检查到心跳,那么会自动从服务实例列表内将该服务剔除。
5.自我保护机制:如果存活的服务节点低于85%就会被触发自我保护机制,剔除机制将不会再执行
3.Eureka集群
1.EurekaJar包雌雄同体:既有客户端也有服务端
作用:为了创建Eureka集群,防止宕机导致全部服务瘫痪(雪崩)
4.Eureka组件的使用步骤
4.1.搭建eureka-server微服务
1.在父工程里创建eureka-server工程
2.在eureka-server工程中pom.xml中导入eureka依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
3.在eureka-server工程启动类中添加@EnableEurekaServer注解开启eureka的注册中心功能
@SpringBootApplication @EnableEurekaServer//开启注册中心功能 public class EurekaApplication { public static void main(String[] args) { SpringApplication.run(EurekaApplication.class, args); } }
4.在eureka-server工程application.yml文件中添加配置
server: port: 10086 spring: application: name: eureka-server eureka: client: service-url: defaultZone: http://127.0.0.1:10086/eureka register-with-eureka: false # 不注册自己 fetch-registry: false #不拉取服务本eureka服务中的服务信息
4.2.将服务注册到eureka-server中
1.在服务工程pom.xml中引入eureka-client依赖:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
2.在服务工程application.yml配置文件,添加服务名称、eureka地址:
spring: application: name: userservice #自定义 eureka: client: service-url: defaultZone: http://127.0.0.1:10086/eureka instance: # 在Eureka中显示服务的ip地址 ip-address: 127.0.0.1 # 配置服务器ip地址 prefer-ip-address: true # 更倾向于使用ip,而不是host名 instance-id: ${eureka.instance.ip-address}:${server.port} # 自定义实例的id