Spring Cloud
服务的注册和发现
Eureka Server的使用
- 加入依赖
- 启动类加入@EnableEurekaServer
配置文件加入如下内容
server: port: 8761 eureka: client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://localhost:8761/eureka/
配置说明
- registerWithEureka:是否将自己注册到server,默认true。当前服务不需要注册自己到自己。
- fetchRegistry:是否从Eureka Server获取注册信息,默认true。当前是单点的Eureka Server,不需要同步其他节点。
- defaultZone:设置与Eureka Server交互的地址,查询和注册服务依赖该地址。多个地址用逗号分隔。
- 启动项目。访问http://localhost:8761/可以看到注册的服务列表
Eureka Client的使用
- 加入依赖
配置文件加入如下内容
spring: application: name: xxxxxx euraka: client: serverUrl: http://localhost:8761/eureka/ instance: prefer-ip-address: true
配置说明
- name:注册到Eureka Server的名字
- prefer-ip-address:是否将自己的IP注册到Eureka Server。默认false,使用操作系统的hostname进行注册
启动类加入@EnableDiscoveryClient(discover:发现)或@EnableEurekaClient
说明:
- @EnableDiscoveryClient是抽象接口,可以用于配合其他服务组件使用。如:Zookeeper、Consul等
- @EnableEurekaClient是Eureka专用注解
Eureka Server集群
Eureka Server可以通过运行多个实例互相注册实现集群。
修改配置文件:
spring: application: name: eureka-server-cluster --- spring: profiles: cluster1 server: post: 8761 eureka: instance: hostname: cluster1 client: serverUrl: defaultZone: http://localhost:8762/eureka/ --- spring: profiles: cluster2 server: port: 8762 erueka: instance: hostname: cluster2 client: serverUrl: defaultZone: http://localhost:8761/eureka/
说明:使用连字符(—)将application.yml分为三部分,第一部分没有声明profiles全局生效。
运行程序。
java -jar eureka-server-cluster.jar –spring.profiles.active=clusert1
java -jar eureka-server-cluster.jar –spring.profiles.active=clusert2
Eureka Client 注册集群
Client即使注册单个节点,Eureka Server也可以互相同步。建议配置多个节点。