SpringCloud.Eureka

来源:互联网 发布:淘宝店经营类目怎么改 编辑:程序博客网 时间:2024/06/06 03:18

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@SpringBootApplicationpublic class EurekaServerApplication {    public static void main(String[] args) {        SpringApplication.run(EurekaServerApplication.class, args);    }}

在application.yml中配置

spring:  application:      name: eureka-serverserver:  port: 3873eureka:  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的YAMLspring:  application:    name: eureka-serverserver:  port: 3873eureka:  instance:    hostname: eureka1  client:    serviceUrl:      defaultZone: http://127.0.0.1:3400/eureka/
#eureka2的YAMLspring:  application:    name: eureka-serverserver:  port: 3400eureka:  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