转载自 SpringCloud注册中心高可用搭建

Spring Cloud的注册中心可以由Eureka、Consul、Zookeeper、ETCD等来实现,这里推荐使用Spring Cloud Eureka来实现注册中心,它基于Netfilix的Eureka做了二次封装,完成分布式服务中服务治理的功能,微服务系统中的服务注册与发现都通过这个注册中心来进行管理。

引入Eureka Server依赖

之前的文章基础上加入Spring Cloud的依赖,现在再加入注册中心Eureka Server的依赖。

<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId></dependency>
</dependencies>

添加启动类,开启Eureka Server功能

在包根目录下加入启动类:

@EnableEurekaServer
@SpringBootApplication
public class RegisterApplication {
    public static void main(String[] args) {new SpringApplicationBuilder(RegisterApplication.class).bannerMode(Banner.Mode.LOG).run(args);}
}

@EnableEurekaServer注解即开启注册中心服务器的功能。

添加Eureka配置

在application.yml中加入如下配置:

spring: application: name: register-centerprofiles: active: register-center1

eureka:instance: prefer-ip-address: trueinstance-id: ${spring.cloud.client.ipAddress}:${server.port}lease-expiration-duration-in-seconds: ${lease-expiration-duration-in-seconds}lease-renewal-interval-in-seconds: ${lease-renewal-interval-in-seconds}server: enable-self-preservation: ${enable-self-preservation}  eviction-interval-timer-in-ms: ${eviction-interval-timer-in-ms}client:register-with-eureka: truefetch-registry: trueserviceUrl: defaultZone: ${register-center.urls}

---
spring: profiles: register-center1

server: port: ${register-center1.server.port}

---
spring: profiles: register-center2

server: port: ${register-center2.server.port}
  1. 这里做了两台注册中心的高可用配置register-center1,register-center2,也可以做多台,既然是高可用,每个注册中心都向别的注册中心注册自己。
  2. Maven filter配置
  3. ${}里面的配置由maven resource filter来打包进行控制,不同的环境使用不同的配置文件。

如filter-dev.properties的配置参考如下:

#url
register-center1.server.ip=192.168.1.22
register-center2.server.ip=192.168.1.23
register-center.urls=http://${register-center1.server.ip}:${register-center1.server.port}/eureka/,http://${register-center2.server.ip}:${register-center2.server.port}/eureka/

#port
register-center1.server.port=7001
register-center2.server.port=7002

#config
enable-self-preservation=false
eviction-interval-timer-in-ms=5000
lease-expiration-duration-in-seconds=20
lease-renewal-interval-in-seconds=6

Spring Cloud配置详解

Spring Boot的配置参考Spring Boot系列文章,这里只对Spring Cloud用到的配置解释。

spring.application.name:配置应用名称,在注册中心中显示的服务注册名称。

spring.cloud.client.ipAddress:获取客户端的IP地址。

eureka.instance.prefer-ip-address:配置为true为喜欢IP,即连接注册中心使用IP地址形式,也可以使用HOSTNAME,但生产环境不推荐。

eureka.instance.instance-id:配置在注册中心注册的唯一实例ID。

eureka.instance.lease-expiration-duration-in-seconds:指示eureka服务器在接收到最后一个心跳之后等待的时间(秒),然后才能从此视图中删除此实例,并禁止此实例的流量。将此值设置得太长可能意味着流量可以路由到实例,即使实例不存在。设置此值太小可能意味着,由于临时网络故障,实例可能会被取消流量。此值将设置为至少高于lease-renewal-interval-in-seconds中指定的值。

eureka.instance.lease-renewal-interval-in-seconds:指示eureka客户端需要向eureka服务器发送心跳以指示它仍然存在的频率(以秒为单位)。如果在lease-expiration-duration-in-seconds中指定的时间段内未收到心跳线,则eureka服务器将从其视图中删除该实例,因此不允许此实例的流量。请注意,如果该实例实现HealthCheckCallback,然后决定使其本身不可用,则该实例仍然可能无法访问流量。

eureka.server.enable-self-preservation:配置注册中心是否开启服务的自我保护功能。

eureka.server.eviction-interval-timer-in-ms:配置注册中心清理无效节点的时间间隔,默认60000毫秒,即60秒。

eureka.client.register-with-eureka:配置为true指示此实例将其信息注册到eureka服务器以供其他人发现。在某些情况下,您不希望发现实例,而您只想发现其他实例配置为false。

eureka.client.fetch-registry:指示该客户端是否应从eureka服务器获取eureka注册表信息。。

eureka.client.serviceUrl.defaultZone:Eureka服务器地址。

启动注册中心

这样一个两个注册心的Eureka Server就搭好了,启动的时候使用不同的Profile来指定不同的端口。

spring-boot:run -Drun.profiles=register-center1  -P dev
spring-boot:run -Drun.profiles=register-center2  -P dev

SpringCloud注册中心高可用搭建相关推荐

  1. SpringCloud配置中心高可用搭建

    本文通过config server连接git仓库来实现配置中心,除了git还可以使用svn或者系统本地目录都行. 引入依赖 <dependencies><dependency> ...

  2. java B2B2C源码电子商务平台 -SpringCloud配置中心高可用搭建

    本文通过config server连接git仓库来实现配置中心,除了git还可以使用svn或者系统本地目录都行.需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台 ...

  3. spring boot配置ip_Spring Cloud 配置中心高可用搭建

    本文通过config server连接git仓库来实现配置中心,除了git还可以使用svn或者系统本地目录都行. 引入依赖 <dependencies><dependency> ...

  4. consul注册中心高可用集群的搭建经验

    consul简介 Consul包含多个组件,但是作为一个整体,为你的基础设施提供服务发现和服务配置的工具.他提供以下关键特性: 1.服务发现: Consul的客户端可用提供一个服务,比如 api 或者 ...

  5. spring cloud搭建_Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!

    Spring Cloud 的注册中心可以由 Eureka.Consul.Zookeeper.ETCD 等来实现,这里推荐使用 Spring Cloud Eureka 来实现注册中心,它基于 Netfl ...

  6. 6.SpringCloud -- 注册中心与配置中心 Nacos、网关 Gateway

    6.SpringCloud -- 注册中心与配置中心 Nacos.网关 Gateway 一.了解一下 SpringCloud Alibaba 1.1 SpringCloudAlibaba (1)简单说 ...

  7. SpringCloud--Eureka 注册中心原理及其搭建

    一. Eureka简介 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringC ...

  8. HADOOP 高可用搭建

    首先先说一下大概的步骤,就用四台为例,简单适合新手操作. 流程是:创建虚拟机,配置好:搭建linux系统:安装jdk(因为后面好多都依赖jkd):免密登录ssh:安装zookeeper:最后就是搭建高 ...

  9. Nginx反向代理,负载均衡,Redis集群 Twemproxy,redis session共享,keepalived高可用-搭建千万级网站系统

    Nginx反向代理,负载均衡,redis session共享,keepalived高可用-搭建千万级系统架构 1.安装Nginx 安装机器IP地址为: 192.168.91.129 (主) 192.1 ...

最新文章

  1. [HNOI2015]落忆枫音
  2. 样式集,小程序群聊,聊天室样式,效果图
  3. 再写单链表(不带头单链表)
  4. Platform Builder实践之配置文件
  5. 软化边硬化边_夏天多给小朋友吃它,蛋白质是牛肉的3倍,老人吃还能软化血管...
  6. TCA9548A iic地址扩展器件 树莓派JAVA版教程
  7. 为什么要搭建自己的缓存管理模块?
  8. java 集群会话管理_架构设计之Spring-Session分布式集群会话管理
  9. Win10系统装载ISO出现问题的解决方案
  10. 全国程序员工资最新统计来了,平均 14,542 元!
  11. 《Ruby程序员修炼之道》(第2版)—第1章1.1节进入Ruby的世界
  12. 19.Java 数据库编程
  13. FIT2CLOUD安装
  14. 实验:配置Trunk
  15. BUUCTF misc 专题(82)[WUSTCTF2020]alison_likes_jojo
  16. [英语语法]句法之主谓一致
  17. printf(%d%d%d%d\n, a,b,c);
  18. 【Android 应用】小白之签名文件的生成。
  19. NoSQL数据库之MongoDB
  20. php的mysqli步骤,php安装扩展mysqli的实现步骤及报错解决办法

热门文章

  1. [JS-DOM]DOM概述
  2. [蓝桥杯2019初赛]完全二叉树的权值-完全二叉树的性质
  3. Wooden Sticks POJ - 1065(最大上升子序列+动态规划状态转移思维)
  4. 数据结构与算法--二叉树的深度问题
  5. ora-00923数据类型不一致_小白学 Python(2):基础数据类型(上)
  6. 2021牛客暑期多校训练营7 xay loves trees dfs序 + 主席树
  7. Codeforces Round #700 (Div. 1) C. Continuous City 构造 + 二进制
  8. Loj#6485. LJJ 学二项式定理
  9. gym103117L. Spicy Restaurant
  10. 求和(莫比乌斯反演)