Eureka注册中心之快速入门版
Spring Cloud 中的服务治理组件,能够完成微服务的注册和治理
目录
1.简单的Eureka Server
2.Eureka 高可用
简单的Eureka Server
首先导入需要的依赖,选择Eureka Server
pom.xml中的依赖:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
在主类上使用@EnableEurekaServer 标识这是一个Eureka Server
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
在application.yml中配置
spring:
application:
name: eureka-server
server:
port: 3873
eureka:
client:
register-with-eureka: false ##不向Eureka注册自己
fetch-registry: false ##不向注册中心获取微服务列表(因为自己就是注册中心)
serviceUrl:
defaultZone: http://127.0.0.1:3873/eureka ##Eureka注册中心地址
启动项目访问localhost:3873/eureka(或者是自己设置的注册中心地址):
当然以这种方法配置的Eureka Server 仅是单元的 ,当这个单元的Eureka Server 不小心宕机了,那么注册在这个服务中心的其他微服务都变得不可访问了。所以有必要进行Eureka Server 的集群化配置:Eureka 高可用
Eureka 高可用
前面我们知道了怎么配置一个单元的Eureka注册中心,俗话说得好不能把鸡蛋放在同一个篮子里,我们也需要将众多的微服务注册到一个Eureka集群上。这样,当一个注册中心不DOWN掉了,还能通过其他的注册中心找到需要的微服务。而实现这个功能也非常简单,你可以像 http://cloud.spring.io/spring-cloud-static/spring-cloud.html#_peer_awareness 中说得一样配置多个profiles的YAML,然后在启动项目的时候使用--spring.profiles.active=xxxx
来确定使用的是哪个配置,也可以简单粗暴地创建多个项目使用不同的配置来完成.博主因为能力有限,又想在阿里云上搞点骚操作,搞了半天不能把多个profiles的启动写到脚本里,所以没有使用官方推荐的方式,而是简单粗暴地又建了一个注册中心,有能力的小伙伴不要学我~~下面附上简单粗暴版:
#eureka的YAML
spring:
application:
name: eureka-server
server:
port: 3873
eureka:
instance:
hostname: eureka1
client:
serviceUrl:
defaultZone: http://127.0.0.1:3400/eureka/
#eureka2的YAML
spring:
application:
name: eureka-server
server:
port: 3400
eureka:
instance:
hostname: eureka2
client:
serviceUrl:
defaultZone: http://127.0.0.1:3873/eureka/
其他地方都一样,依次启动两个项目,然后访问localhost:3400(或者访问端口3873也行)能看到以下页面
可以发现有两个Eureka Server 了。
而注册到Eureka Server 也很简单,只需要以serviceUrl.defaultZone=xxxx,yyyyy,zzzzz
的形式,用“,”来分隔多个注册中心即可,比如要注册到刚刚栗子中的Server上,可以用
serviceUrl.defaultZone=http://127.0.0.1:3873/eureka,http://127.0.0.1:3400/eureka