Spring-Cloud Eureka注册中心实现高可用搭建

作者:东北小狐狸 时间:2023-06-18 03:02:25 

前言:

spring-cloud为基础的微服务架构,所有的微服务都需要注册到注册中心,如果这个注册中心阻塞或者崩了,那么整个系统都无法继续正常提供服务,所以,这里就需要对注册中心进行集群,换言之,高可用(HA)

前提:

阅读并完成第一个注册中心的项目,环境无需改变。本文是 模拟的高可用 , 可以复制两个注册中心的项目单独修改各自的配置文件达到同样的效果

修改hosts,在文件末添加两行如下:


127.0.0.1 peer1
127.0.0.1 peer2

推荐使用notepad++,如果是win10会提醒提权限,确定,然后保存即可。

项目搭建:

打开注册中心的项目,在src/resources下创建一个application-peer1.properties


#应用名
spring.application.name=eureka-server
#提供服务端口1111
server.port=1111
#提供服务的域名,这里在hosts文件中修改了
eureka.instance.hostname=peer1
#向第二个注册中心注册自己
eureka.client.service-url.defaultZone=http://peer2:1112/eureka/

在src/resources下创建一个application-peer2.properties


#应用名称与第一个注册中心一样
spring.application.name=eureka-server
#提供服务端口1112
server.port=1112
#提供服务的域名,这里在hosts文件中修改了
eureka.instance.hostname=peer2
#向第一个注册中心注册自己
eureka.client.service-url.defaultZone=http://peer1:1111/eureka/

本文使用idea进行测试,首先需要对这个项目进行打成jar包,因为在pom.xml中已经引入了maven编译工具和打包工具并指定打包格式为jar包,这里直接操作,屏幕右上方

Spring-Cloud Eureka注册中心实现高可用搭建

Spring-Cloud Eureka注册中心实现高可用搭建

打包完成,该jar包位于target文件夹下,如图

Spring-Cloud Eureka注册中心实现高可用搭建

如图打开terminal,屏幕下方

Spring-Cloud Eureka注册中心实现高可用搭建

打开terminal之后,因为jar包在target目录下,而当前目录为项目目录,所以先cd到target目录下,然后输入如下命令:

小技巧:输入命令的时候为了防止输错文件名,可以输入文件名的前几个字母,然后使用tab键进行自动补全

java -jar EurekaServerDemo-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1

输入完成此命令后,peer1配置文件的项目启动,如图

Spring-Cloud Eureka注册中心实现高可用搭建

接下来我们启动第二个项目,这里需要另开一个terminal,cd到target目录

注意:我们这里用的是同一个项目,读者可以使用两个项目进行测试,需要特别注意的是端口不要冲突了

Spring-Cloud Eureka注册中心实现高可用搭建

java -jar EurekaServerDemo-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2

Spring-Cloud Eureka注册中心实现高可用搭建

等待项目启动完成,查看有无报错。

测试:

浏览器输入:localhost:1112进行查看,也可以输入localhost:1111进行查看

Spring-Cloud Eureka注册中心实现高可用搭建

结语:

在设置了多节点的注册中心后,实现了高可用,但是此时我们的微服务应用仅仅是注册到这一个服务之中,所以,我们需要将新节点的注册服务路径同样配到微服务应用中。

多节点间使用","分开,如图

Spring-Cloud Eureka注册中心实现高可用搭建

这样微服务提供者从其中一个地方断开之后,因为在其他节点有注册,所以还可以提供服务,如果不想使用主机名进行访问注册中心,也可以使用ip,但是需要先添加一条配置,该值默认false


eureka.instance.prefer-ip-address=true

来源:http://www.cnblogs.com/hellxz/p/8855166.html

标签:Spring,Cloud,Eureka,高可用
0
投稿

猜你喜欢

  • SpringBoot操作mongo实现方法解析

    2023-03-19 00:50:56
  • Android实现界面左右滑动切换功能

    2022-08-30 02:00:58
  • PageHelper在springboot+mybatis框架中的使用步骤及原理解析

    2023-07-28 21:40:09
  • Springboot中登录后关于cookie和session拦截问题的案例分析

    2022-09-25 19:26:44
  • C#使用读写锁解决多线程并发问题

    2022-02-28 20:36:09
  • SpringBoot中dubbo+zookeeper实现分布式开发的应用详解

    2023-09-13 19:04:45
  • Spring AOP中的JDK和CGLib动态代理哪个效率更高?

    2023-07-02 18:42:50
  • android 软键盘的POPUP布局的问题解决

    2022-03-22 17:53:30
  • Spark网站日志过滤分析实例讲解

    2021-06-08 12:59:24
  • Java 实战项目之毕业设计管理系统的实现流程

    2021-12-26 00:10:10
  • Android端代码量非常小的分页加载库

    2022-08-25 17:24:48
  • 如何在WorkManager中处理异步任务详解

    2021-09-12 14:05:29
  • AndroidStudio替换项目图标ic_launcher操作

    2023-03-20 09:48:07
  • C#表达式树讲解

    2023-02-23 19:22:52
  • mybatis中resultMap 标签的使用教程

    2022-01-15 11:19:42
  • Redis分布式锁实现方式及超时问题解决

    2023-08-24 23:28:34
  • 浅谈Java中replace与replaceAll区别

    2021-07-05 12:56:56
  • Java Git Commit Message使用规范

    2023-03-15 07:50:43
  • Android音视频开发之VideoView使用指南

    2022-11-20 11:14:52
  • 基于Spring Boot不同的环境使用不同的配置方法

    2022-11-06 13:21:20
  • asp之家 软件编程 m.aspxhome.com