SpringCloud注册中心高可用搭建
转载自 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}
- 这里做了两台注册中心的高可用配置register-center1,register-center2,也可以做多台,既然是高可用,每个注册中心都向别的注册中心注册自己。
- Maven filter配置
- ${}里面的配置由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注册中心高可用搭建相关推荐
- SpringCloud配置中心高可用搭建
本文通过config server连接git仓库来实现配置中心,除了git还可以使用svn或者系统本地目录都行. 引入依赖 <dependencies><dependency> ...
- java B2B2C源码电子商务平台 -SpringCloud配置中心高可用搭建
本文通过config server连接git仓库来实现配置中心,除了git还可以使用svn或者系统本地目录都行.需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台 ...
- spring boot配置ip_Spring Cloud 配置中心高可用搭建
本文通过config server连接git仓库来实现配置中心,除了git还可以使用svn或者系统本地目录都行. 引入依赖 <dependencies><dependency> ...
- consul注册中心高可用集群的搭建经验
consul简介 Consul包含多个组件,但是作为一个整体,为你的基础设施提供服务发现和服务配置的工具.他提供以下关键特性: 1.服务发现: Consul的客户端可用提供一个服务,比如 api 或者 ...
- spring cloud搭建_Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!
Spring Cloud 的注册中心可以由 Eureka.Consul.Zookeeper.ETCD 等来实现,这里推荐使用 Spring Cloud Eureka 来实现注册中心,它基于 Netfl ...
- 6.SpringCloud -- 注册中心与配置中心 Nacos、网关 Gateway
6.SpringCloud -- 注册中心与配置中心 Nacos.网关 Gateway 一.了解一下 SpringCloud Alibaba 1.1 SpringCloudAlibaba (1)简单说 ...
- SpringCloud--Eureka 注册中心原理及其搭建
一. Eureka简介 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringC ...
- HADOOP 高可用搭建
首先先说一下大概的步骤,就用四台为例,简单适合新手操作. 流程是:创建虚拟机,配置好:搭建linux系统:安装jdk(因为后面好多都依赖jkd):免密登录ssh:安装zookeeper:最后就是搭建高 ...
- Nginx反向代理,负载均衡,Redis集群 Twemproxy,redis session共享,keepalived高可用-搭建千万级网站系统
Nginx反向代理,负载均衡,redis session共享,keepalived高可用-搭建千万级系统架构 1.安装Nginx 安装机器IP地址为: 192.168.91.129 (主) 192.1 ...
最新文章
- [HNOI2015]落忆枫音
- 样式集,小程序群聊,聊天室样式,效果图
- 再写单链表(不带头单链表)
- Platform Builder实践之配置文件
- 软化边硬化边_夏天多给小朋友吃它,蛋白质是牛肉的3倍,老人吃还能软化血管...
- TCA9548A iic地址扩展器件 树莓派JAVA版教程
- 为什么要搭建自己的缓存管理模块?
- java 集群会话管理_架构设计之Spring-Session分布式集群会话管理
- Win10系统装载ISO出现问题的解决方案
- 全国程序员工资最新统计来了,平均 14,542 元!
- 《Ruby程序员修炼之道》(第2版)—第1章1.1节进入Ruby的世界
- 19.Java 数据库编程
- FIT2CLOUD安装
- 实验:配置Trunk
- BUUCTF misc 专题(82)[WUSTCTF2020]alison_likes_jojo
- [英语语法]句法之主谓一致
- printf(%d%d%d%d\n, a,b,c);
- 【Android 应用】小白之签名文件的生成。
- NoSQL数据库之MongoDB
- php的mysqli步骤,php安装扩展mysqli的实现步骤及报错解决办法
热门文章
- [JS-DOM]DOM概述
- [蓝桥杯2019初赛]完全二叉树的权值-完全二叉树的性质
- Wooden Sticks POJ - 1065(最大上升子序列+动态规划状态转移思维)
- 数据结构与算法--二叉树的深度问题
- ora-00923数据类型不一致_小白学 Python(2):基础数据类型(上)
- 2021牛客暑期多校训练营7 xay loves trees dfs序 + 主席树
- Codeforces Round #700 (Div. 1) C. Continuous City 构造 + 二进制
- Loj#6485. LJJ 学二项式定理
- gym103117L. Spicy Restaurant
- 求和(莫比乌斯反演)