使用Consul代替Spring Cloud Eureka

随着Eureka 2.0 开源工作宣告停止,其实是可以考虑转战其他方式来实现注册中心了(如:Zookeeper、Redis、Consul等)

本文通过简单的描述,快速将Consul集成到SpringCloud环境中。

Consul环境搭建

官网:https://www.consul.io/

官网提供了(macOS、FreeBSD、Linux、Solaris、Windows)全平台的相关包,下面以Windows为例:

  1. 下载 https://releases.hashicorp.com/consul/1.2.0/consul_1.2.0_windows_amd64.zip
  2. 解压,并创建快速启动脚本:
1
2
consul agent -dev
pause

  1. 启动,然后浏览器访问:http://localhost:8500, 出现UI界面则搭建成功。

开放Spring Cloud Eureka API

一般来说,Eureka 默认提供了一套 UI 界面,但在大多数情况下,由于 UI 风格问题并不适合直接嵌入到业务系统中使用;

本文通过扩展 Eureka 项目,实现相关的自定义接口,以便业务系统集成调用;

1. Eureka Project;

1
2
3
4
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
1
2
3
4
5
6
7
8
@EnableEurekaServer
@SpringBootApplication(scanBasePackages = "com.fastjee")
public class FastjeeEurekaApplication {

public static void main(String[] args) {
FastjeeApplication.run(FastjeeEurekaApplication.class, args);
}
}

2. RESTful API

Spring Cloud Config 高可用架构

何为高可用?

高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间.

1) 假设系统一直能够提供服务,我们说系统的可用性是100%.

2) 如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%.

举个例子,百度的搜索首页是业界公认的高可用保障非常出色的系统

我们通常会通过ping baidu.com来判断网络是否通畅,这也恰巧说明了百度首页的可用性非常之高,值得信赖.

高可用的实现方式

  1. 主从复制: 主服务挂掉后,从服务升级为主服务继续工作.
  2. 双机热备: 一台工作,一台备用,工作服务器挂掉后,备用服务器继续工作.
  3. 分布式集群: 多台实例同时工作,当其中一台挂掉后,前端或者代理踢出这台服务器,负载均衡算法将不再调度它.

Config Server高可用的实现

Config Server 的高可用方案,是借助Eureka(注册中心)实现的,也就是上面提到的分布式集群方案.

多个Config Server同时工作,任何一台挂掉后,Eureka服务器都会通知客户端, 客户端后续将不再从这里请求配置信息.

1. 将Config Server注册到Eureka

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×