标签:查看 pid artifact 机制 的区别 The false loading 节点
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。 Eureka包含两个组件:Eureka Server和Eureka Client。Eureka Server 负责统一管理服务信息;Eureka Client负责和Eureka Server通信维护服务信息。
eureka的单机版和集群版的区别只是配置不一样而已,因此这里将公共的部分提取到前面;下面示例使用的Spring-Cloud的版本是Hoxton.SR8,Spring-Boot的版本是2.3.4.RELEASE。示例项目的源代码
添加如下maven依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</exclusion>
<exclusion>
<groupId>com.netflix.ribbon</groupId>
<artifactId>ribbon-eureka</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
</dependency>
编写启动类:
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
application.yml配置示例如下
server:
port: 8761
eureka:
instance:
hostname: localhost
client:
# 是否将自己注册到Eureka Server 默认为true
registerWithEureka: false
# 是否从Eureka Server查询注册信息
fetchRegistry: false
# 配置eureka服务的地址
serviceUrl:
defaultZone: http://127.0.0.1:${server.port}/eureka/
server:
# 自我保护机制,开发环境建议关闭
enable-self-preservation: false
spring:
cloud:
loadbalancer:
ribbon:
enabled: false
之后直接访问http://127.0.0.1:8761 即可进入eureka的界面。
server:
port: 8761
eureka:
instance:
# 这里也可以使用域名
prefer-ip-address: true
instance-id: 127.0.0.1:8761
client:
# 是否将自己注册到Eureka Server 默认为true
registerWithEureka: false
# 是否从Eureka Server查询注册信息
fetchRegistry: true
# 配置eureka服务注册地址;多个使用英文逗号分开
serviceUrl:
defaultZone: http://127.0.0.1:8761/eureka/,http://127.0.0.1:8762/eureka/,http://127.0.0.1:8763/eureka/
spring:
cloud:
loadbalancer:
ribbon:
enabled: false
答案是可以的,因为eureka server构建的集群节点信息PeerEurekaNodes里面,在定时更新注册中心节点信息的时候,会自动检查注册地址中是否有它自己的注册地址,有的话会将其去掉的;所以可以配置它自己的注册地址。
接上面的问题,为什么eureka要将注册地址中自己的注册地址去掉:查看eureka client的注册过程,eureka server会在更新自己本地注册表后,将这个注册信息依次推送到集群中其他的eureka server上去。因此要把自己的地址过滤掉(自己发送给自己干啥)
fetchRegistry:为什么要建议配置为true呢?因为我们知道eureka client每次只会向其中一台机器发送注册信息,心跳也是只会向一台机器发送;而注册中心集群间的注册表同步是在收到客户端发送的信息后,在自己处理完成后,再将这个信息转发给集群中其他节点(如果失败会不停的重试);但是如果配置为true的话,能够主动的去更新这个信息,依此达到注册表能够更快速的同步的目的。
Eureka服务端无论是单机版部署还是集群部署,客户端的配置都是一样的。添加maven依赖如下:
<!--eureka注册中心客户端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</exclusion>
<exclusion>
<groupId>com.netflix.ribbon</groupId>
<artifactId>ribbon-eureka</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Spring Cloud LoadBalancer is currently working with the default cache. You can switch to using Caffeine cache, by adding it to the classpath.-->
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
</dependency>
application.yml配置如下:
# 注册中心eureka配置
eureka:
client:
serviceUrl:
# 多个节点使用英文逗号分开
defaultZone: http://127.0.0.1:8761/eureka/,http://127.0.0.1:8762/eureka/,http://127.0.0.1:8763/eureka/
标签:查看 pid artifact 机制 的区别 The false loading 节点
原文地址:https://www.cnblogs.com/vchar/p/14749665.html