服务治理:用来实现各个微服务实例的自动化注册和发现。
服务注册:
注册中心以心跳的方式去监测清单中的服务是否可用
服务发现:
Eureka:实现服务注册和发现 包含了服务器组件和客户端组件
服务端:服务注册中心
客户端:处理服务的注册与发现
demo:(springboot2.X与1.X有所差别,本实例使用2.1.4.RELEASE)
1.搭建注册中心:
引入maven
添加注解 @EnableEurekaServer,启动一个服务注册中心
默认配置下,服务注册中心会将自己作为客户端来尝试注册自己,所以需要禁用自身的客户端注册行为,修改配置:
默认eureka注册中心服务器地址
启动项目 浏览器访问http://localhost:7777/
2.注册服务提供者 (创建新项目)
引入maven
添加注解
修改配置
写个controller
启动项目 发现注册中心 存在 服务
高可用注册中心:(重点)
之前的配置是单节点的服务注册中心
高可用 就是 所有节点既是服务提供方 也是服务消费方,将自己作为服务向其他服务注册中心注册自己。
构建双节点的服务注册中心集群实例:
application-peer1.properties
eureka.client.service-url.defaultZone 指向peer2
application-peer2.properties
eureka.client.service-url.defaultZone 指向peer1
修改hosts 文件 添加对peer1 peer2 的转换 ,使 service-url能在本地正确的访问到
Windows : C:\Windows\System32\drivers\etc\hosts
linux : etc/hosts
打成jar包 分别以peer1 peer2 的配置文件启动项目
启动 会发现第一个启动报错
不用管 当两个启动完后之后 浏览器访问http://localhost:8888/ http://localhost:9999/
服务提供方修改配置:
启动 项目 会发现 hello-service同时注册到peer1 peer2上,如果断开peer1 在peer2上依旧可以访问 hello-service 从而实现服务注册中心的高可用。
3.服务发现与消费(创建新项目)
发现服务:由Eureka客户端完成
消费服务:由Ribbon完成。
Ribbon是一个基于HTTP 和 TCP的客户端负载均衡器
引入maven
主方法添加注解 开启服务发现
修改配置文件:
配置客户端负载均衡
调用注册中心的服务
启动项目 发现 注册中心 多了一个eureka-consumer服务