高可用注册中心

在微服务这样的分布式环境中,我们需要充分考虑故障发生的情况,所以在生产环境中必须对各个组件进行高可用部署,对于微服务如此,对于微服务注册中心也是一样。上一篇文章我们搭建了单节点的服务治理示例,接下来我们构建一个高可用性注册中心以增强系统的可用性。

在Eureka的服务治理体系中,所有节点即是服务提供方,也是服务消费方,服务注册中心也不例外。Eureka Server的高可用实际上就是将自己作为服务向其它服务注册中心注册自己,这样就可以形成一组互相注册的服务注册中心,以实现服务清单的相互同步,达到高可用的效果。接下来我们尝试一下搭建一个高可用注册中心。

  1. 创建基础的spring boot项目eureka-server,在pom.xml配置文件中引入Eureka Server的依赖
 <dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
  1. 在启动主类上添加@EnableEurekaServer注解启动一个 服务注册中心给其它服务
package com.eureka.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}}
  1. 创建一个spring boot项目eureka-server-peer,配置如上两步
  2. eureka-server项目创建配置文件application-peer.properties作为注册中心的配置文件
#注册中心端口号
server.port=9001
##注册中心服务地址
eureka.instance.hostname=peer1
#eureka.instance.prefer-ip-address=false
#eureka.instance.instance-id=${eureka.instance.hostname}:${server.port}
#是否开启自我保护机制
eureka.server.enable-self-preservation=true
#是否将自己注册为服务
eureka.client.register-with-eureka=true
#是否禁止向注册中心检索服务
eureka.client.fetch-registry=true
#服务地址
eureka.client.service-url.defaultZone=http://peer2:9002/eureka/

application.properties文件的配置如下:

#注册中心应用名称
spring.application.name=eureka-server
##注册中心使用的配置文件名
spring.profiles.active=peer
  1. eureka-server-peer项目创建application-peer.properties配置文件作为注册中心的配置文件
#注册中心端口号
server.port=9002
##注册中心服务地址
eureka.instance.hostname=peer2
#eureka.instance.prefer-ip-address=false
#eureka.instance.instance-id=${eureka.instance.hostname}:${server.port}
#是否开启自我保护机制
eureka.server.enable-self-preservation=true
#是否将自己注册为服务
eureka.client.register-with-eureka=true
#是否禁止向注册中心检索服务
eureka.client.fetch-registry=true
#注册中心
eureka.client.service-url.defaultZone=http://peer1:9001/eureka/

application.properties的配置如下:

#注册中心应用名称
spring.application.name=eureka-server
##注册中心使用的配置文件名
spring.profiles.active=peer
  1. 修改hosts配置文件,windows环境在C:\Windows\System32\drivers\etc目录下

  • 启动两个注册中心,启动第一个的时候可能会有错误,但是这个不影响,因为第二个注册中心还未启动,启动成功后分别访问http://localhost:9001/,http://localhost:9002/

http://localhost:9001/端口返回结构

http://localhost:9002/端口返回结果

基于Eureka服务治理的高可用性注册中心搭建相关推荐

  1. springboot2 springcloud Greenwich.SR3 构建微服务--1.eureka注册中心搭建

    本一系列springcloud的文章主主要讲应用, 也会涉及到一些原理的讲解. 写了几句自己这段时间看书,总结的微服务的东西送给你们 : 道为源,源分多支为术,如龙生九子,九子各不同,然皆为龙也. 凡 ...

  2. 【学习笔记】Eureka服务治理代码实例、相关配置和原理机制详解

    文章目录 代码示例 启动一个服务注册中心 注册服务提供者 高可用注册中心 服务的发现与消费 Eureka的一些配置 服务注册类配置 服务实例类配置 实例名配置 端点配置 Eureka服务治理基础架构原 ...

  3. SpringCloud Eureka服务治理

    Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件中的一部分, 它基于 Netflix Eureka 做了二次封装, 主要负责完成微服务架构中的服务治理功 ...

  4. Srpingcloud之eureka,微服架构之注册中心eureka

    微服架构为什么需要注册中心,它解决了什么问题? 为什么要用? 管理服务以及服务之间的依赖关系. eureka:微服服务注册与发现,负载均衡,故障转移的能力. 类似服务:zookeeper+dubbo ...

  5. Spring Cloud Eureka服务治理

    一.介绍 1.背景 在早期,由于系统一般业务简单,涉及到的服务比较少,我们可以通过设计静态的配置来完成服务之间的调用.比如服务A和服务B,我们通过配置,让他们相互通信.但是随着业务不断发展和数据量不断 ...

  6. SpringCloud---搭建Eureka服务治理和发现

    你未必出类拔萃,但一定与众不同 SpringCloud–服务治理Eureka 目录 SpringCloud--服务治理Eureka 搭建Eureka服务治理中心 1.创建springboot项目,这里 ...

  7. 微服务 注册中心的作用_微服务架构Dubbo之注册中心(Zookeeper)

    注册中心简介 在微服务架构中,注册中心是核心的基础服务之一.在微服务架构流行之前,注册中心就已经开始出现在分布式架构的系统中.Dubbo是一个在国内比较流行的分布式框架,被大量的中小型互联网公司所采用 ...

  8. eruke注册中心搭建

    2019独角兽企业重金招聘Python工程师标准>>> eruke注册中心搭建 配置pom.xml <dependencyManagement> <dependen ...

  9. Linux-Nacos-服务注册中心搭建

    Linux-Nacos-服务注册中心搭建 由于springcloud 注册中心 Eureka 早已停止维护所以我们使用Nacos 官方: https://nacos.io/zh-cn/docs/wha ...

最新文章

  1. 7分钟了解科大讯飞开发者节:AI红利期来临,全新1024计划发布(未完待续)
  2. nginx配置反向代理示例
  3. ubuntu21.04下VSCode无法输入中文解决方法:應用商店安裝的話需要重裝
  4. python数据库在哪_python可以用哪些数据库
  5. Windows Socket和Linux Socket编程的区别
  6. esp8266 防掉线方法_ESP8266-12F 中断
  7. Go获取命令行参数及信号量处理
  8. Linux(Ubuntu)常用命令(五)—— vi/vim常用操作
  9. java计算机毕业设计校园点餐系统源程序+mysql+系统+lw文档+远程调试
  10. 2020年杭州电子科技大学计算机考研经验分享
  11. 微信小程序SEO优化策略
  12. SUSE Linux 15 If ‘netstat‘ is not a typo you can use command-not-found to lookup the package...
  13. linux sftp 重命名,SFTP对文件重命名 删除 退出 查看
  14. 计算机机房使用多大的光纤引入,数据中心机房采用光纤网络布线案例解析
  15. easyswoole not controller class match
  16. 100个统计学 R语言学习资源网站
  17. 交互设计的N大原理(持续补充中……)
  18. lfu实现 java_LFU五种实现方式,从简单到复杂
  19. 第一章第2节-WebGIS开发
  20. CEGUI安装、编译、运行总结

热门文章

  1. Swig在windows下的使用流程
  2. AutoCAD如何快速标注零件序号
  3. 下载!《Nacos 架构与原理》pdf
  4. PyCharm使用技巧:Ctrl + /(多行注释)
  5. python爬虫基础(12:app数据爬取)
  6. 关于indexOf的全等匹配
  7. 【R】R语言指定包安装目录
  8. 详解sprintf()sprintf_s()
  9. 约瑟夫问题和又遇约瑟夫问题
  10. 孟岩亮相TokenSky,首谈通证的多维、多阶、多态体系