SpringCloud之高可用的服务注册中心(Eureka) |第八章 -yellowcong
2018-03-16 19:49
1051 查看
所谓的高可用,就是我们刚刚做的注册中心,都只是一个实例,这样如果这个实例挂掉了,那么整个服务都将挂掉。所以需要做一个高可用的服务注册中心,即使一个服务挂掉了,也不会影响整体的服务。其实搭建的原理是,两个服务注册中心,相互指向对放。ps:配置的时候,一定要修改hosts,配置两个域名出来。我开始用的是一个域名,不同端口,结果死活都不出现备份信息,改了hosts,添加了一个域名,就好用了。搭建高可用服务注册中心步骤:1、配置hosts文件,添加两条域名,2、配置pom.xml配置文件,添加依赖,3、配置application.yml,设定两台注册中心,相互指向,4、配置启动类。
登录http://yellowlu.com:8761/和http://yellowlu.com:8762/两个节点,可以看到,服务注册了两份,而且备份节点,都指向对放。
DS Replicas,可以看到都是相互指向对放。
代码地址
https://gitee.com/yellowcong/springcloud/tree/master/chapter8
目录结构
项目架构
节点 | 服务 | 项目名 |
---|---|---|
yellowcong.com:8761 | eureka注册服务1 | eureka-server |
yellowlu.lu:8762 | eureka注册服务2 | eureka-server2 |
yellowcong.com:8763 | 提供服务 | eureka-client |
架构图
两个注册服务相互指向,eureka-client向两个注册 中心一方注册,就相当于两个都注册了。高可用注册中心搭建(Eureka)
搭建高可用服务注册中心步骤:1、配置hosts文件,添加两条域名,2、配置pom.xml配置文件,添加依赖,3、配置application.yml,设定两台注册中心,相互指向,4、配置启动类。1、修改hosts
window系统修改主机的域名,添加两个域名,如果不添加两个,这样就不能模拟单机多个节点了。C:\Windows\System32\drivers\etc\hosts #添加两个域名 127.0.0.1 yellowcong.com 127.0.0.1 yellowlu.com
2、配置pom.xml
这个是最基本的springcloud的配置了,也没啥讲的<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>yellowcong.com</groupId> <artifactId>cas-client-springboot</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>cas-client-springboot</name> <url>http://maven.apache.org</url> <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <!-- 引用父类依赖 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.10.RELEASE</version> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <!--eureka server --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> <version>1.3.0.RELEASE</version><!--$NO-MVN-MAN-VER$--> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <!-- 添加spring的插件, 就可以直接通过 mvn spring-boot:run 运行了 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.4.RELEASE</version> </dependency> </dependencies> </plugin> </plugins> </build> </project>
3、配置application.yml
这个地方是配置的重头戏,需要将两个注册节点相互指向,同时有一点必须注意了,两个注册中心的域名,必须不一样,不然springcloud 就会认为是一个节点了。a.eureka-server 的application.yml
# 注册服务的端口 server: port: 8761 #配置eureka eureka: instance: #主机名称 hostname: yellowcong.com client: #registerWithEureka 和fetchRegistry 都设置为 false 表示是 服务端 registerWithEureka: false fetchRegistry: false serviceUrl: #服务器地址,${} 表示引用 defaultZone: http://yellowlu.com:8762/eureka/[/code]b.eureka-server2 的application.yml
# 注册服务的端口 server: port: 8762 #配置eureka eureka: instance: #主机名称 hostname: yellowlu.com client: #registerWithEureka 和fetchRegistry 都设置为 false 表示是 服务端 registerWithEureka: false fetchRegistry: false serviceUrl: #服务器地址,${} 表示引用 defaultZone: http://yellowcong.com:8761/eureka/[/code]4、配置启动类
启动类都一样,加上@EnableEurekaServer 注解,表示开启服务注册package com.yellowcong.main; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class ConfigMain { public static void main(String[] args) { SpringApplication.run(ConfigMain.class, args); } }5、启动测试
服务的启动顺序,两个注册节点,同时启动,慢几秒,也不会有啥的 。
项目名 | 启动顺序 |
---|---|
eureka-server | 1 |
eureka-server2 | 1 |
eureka-client | 2 |
DS Replicas,可以看到都是相互指向对放。
eureka-client的application.yml配置
可以看到,只是指向了节点1 ,但是服务中,出现了两份,两个节点都存在服务。#配置eureka 的注册中心 eureka: client: serviceUrl: defaultZone: http://yellowcong.com:8761/eureka/ # 注册服务的端口 server: port: 8763 #配置当前服务的名称 spring: application: name: service-client
参考文章
史上最简单的SpringCloud教程 | 第十篇: 高可用的服务注册中心相关文章推荐
- springcloud实战之3 高可用服务注册中心(eureka集群)
- 一起来学SpringCloud之 - 高可用服务注册中心(Eureka-Cluster)
- SpringCloud 笔记 (一)---- 简单搭建服务注册中心与服务,实现服务注册中心高可用
- Spring cloud微服务实战——高可用注册中心(二)
- 【微服务架构】SpringCloud之Eureka(注册中心集群篇)(三)
- 【Spring Cloud】Eureka服务注册中心搭建
- springcloud微服务二:Eureka服务治理之服务注册中心
- SpringCloud服务注册与发现(Eureka 注册中心)
- 【Spring Cloud】Eureka服务注册中心搭建
- [bigdata-105] spring-cloud-02 服务注册 eureka server 双机高可用
- Spring Cloud Learning | 第二篇:高可用服务注册中心
- 【Spring Cloud】Eureka服务注册中心搭建
- SpringCloud的服务注册中心(三) - 进一步了解 Eureka
- 【Spring Cloud】--注册中心Eureka的高可用配置
- Spring Cloud构建微服务架构(六)高可用服务注册中心
- 【Spring Cloud】三、Eureka Consumer 服务注册中心消费者调用服务
- 【Spring Cloud】Eureka服务注册中心搭建
- springcloud之eureka服务注册中心
- 【Spring Cloud】Eureka服务注册中心搭建
- 【Spring Cloud】Eureka服务注册中心搭建