Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!

Stella981
• 阅读 531

Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!

Java技术栈

www.javastack.cn

优秀的Java技术公众号

[

](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzI3ODcxMzQzMw%3D%3D%26mid%3D2247486559%26idx%3D2%26sn%3D0eebf45617fb7be5727712e22aac7fb6%26scene%3D21%23wechat_redirect)

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

今天栈长就来分享一个 Eureka 注册中心玩法,从 0 到分布式集群一步到位,单机版的咱就不玩了,没意义。

本文基于最新的 Spring Cloud Greenwich.SR1 以及 Spring Boot 2.1.3 版本进行分享。

快速构建一个 Eureka Server 项目

打开 Spring 的快速构建网址,如下图所示,选择对应的参数,最后选择 Eureka Server 依赖,生成项目示例代码即可。

https://start.spring.io/

Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版! Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!

栈长这里是生成了一个 Maven 示例项目。

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.1.3.RELEASE</version>        <relativePath/> <!-- lookup parent from repository -->    </parent>    <groupId>cn.javastack</groupId>    <artifactId>spring-cloud--eureka-server</artifactId>    <version>0.0.1-SNAPSHOT</version>    <name>spring-cloud--eureka-server</name>    <description>Demo project for Spring Cloud Eureka Server</description>    <properties>        <java.version>1.8</java.version>        <spring-cloud.version>Greenwich.SR1</spring-cloud.version>    </properties>    <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>    <dependencyManagement>        <dependencies>            <dependency>                <groupId>org.springframework.cloud</groupId>                <artifactId>spring-cloud-dependencies</artifactId>                <version>${spring-cloud.version}</version>                <type>pom</type>                <scope>import</scope>            </dependency>        </dependencies>    </dependencyManagement>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build></project>

主要是加入了 Eureka Server 和 Spring Test 依赖包,还有 Spring Boot 和 Spring Cloud 的基础依赖。

Maven就不多介绍了,不熟悉的,请关注Java技术栈微信公众号,在后台回复:Maven,即可获取栈长整理的一系列 Maven 系列教程文章。

开启 Eureka Server 功能

@EnableEurekaServer@SpringBootApplicationpublic class EurekaServerApplication {    public static void main(String[] args) {        SpringApplication.run(EurekaServerApplication.class, args);    }}

在启动类上加入 @EnableEurekaServer 注解,@EnableEurekaServer注解即开启注册中心服务器的功能。

Spring Boot就不多介绍了,不熟悉的,请关注Java技术栈微信公众号,在后台回复:Boot,即可获取栈长整理的一系列 Spring Boot 系列教程文章。

添加 Eureka Server 配置

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

spring:  application:    name: register-centereureka:  instance:    prefer-ip-address: false    instance-id: ${spring.cloud.client.ip-address}:${server.port}    lease-expiration-duration-in-seconds: 30    lease-renewal-interval-in-seconds: 5  server:    enable-self-preservation: true    eviction-interval-timer-in-ms: 5000  client:    register-with-eureka: true    fetch-registry: true    serviceUrl:      defaultZone: http://eureka1:8761/eureka/, http://eureka2:8762/eureka/logging.level.com.netflix:  eureka: OFF  discovery: OFF---spring:  profiles: rc1server:  port: 8761eureka.instance.hostname: eureka1---spring:  profiles: rc2server:  port: 8762eureka.instance.hostname: eureka2

配置这里不细讲,下篇文章栈长单独分享这些参数的含义,关注微信公众号:Java技术栈,获取第一时间推送。

这里做了两台注册中心的高可用配置rc1,rc2,也可以做多台,既然是高可用,每个注册中心都向别的注册中心注册自己。

注意不要用Localhost

Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!

如上图所示,如果大家在实战中遇到集群不可用,出现在 unavailable-replicas 里面时,说明是你配置的问题。

如果 defaultZone 用了 localhost,prefer-ip-address 设置的是 false,则集群不行,不能用 localhost,要配置 hosts,并代替 localhost。

127.0.0.1 localhost eureka1 eureka2

启动 Eureka 注册中心

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

spring-boot:run -Dspring-boot.run.profiles=rc1spring-boot:run -Dspring-boot.run.profiles=rc2

按上方面命令启动两个 Eureka Server,然后再来验证一下注册情况,分别打开两个 Eureka Server 控制台页面。

http://localhost:8761/
http://localhost:8762/

Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!

我们可以看到两个注册的注册中心实例了。

好了,今天的分享就到这里了,近期会分享更多 Eureka 高级玩法,栈长正在拼命撰写中……关注Java技术栈微信公众号可获取及时推送。在公众号后台回复:_cloud_,获取栈长整理的更多的 Spring Cloud 教程,都是实战干货,以下仅为部分预览。

  • Spring Cloud 最新 Finchley 版本踩坑

  • Spring Cloud 多版本如何选择

  • Spring Cloud 是什么,和 Dubbo 对比

  • Spring Cloud 配置中心高可用搭建

  • Spring Cloud Eureka 自我保护机制

  • ……

大家有什么问题,也可以加入Java技术栈知识星球,和大家共同讨论,也可以向栈长提问,快 2000 人已加入,还可以获取栈长整理的各种 Spring Cloud 学习资料,点击这个链接开始加入。

Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!

最近干货分享

Spring Boot 面试,一个问题就干趴下了!

为什么面试你要25K,HR只给你20K?

Spring 系列干货,2019最新整理版!

推荐一个技术圈子,30k的offer靠它了!

分享一份Java架构师学习资料!

Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!

Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!

点击「

阅读原文

」和栈长学更多…

本文分享自微信公众号 - Java技术栈(javastack)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
2年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
2年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Stella981 Stella981
2年前
Spring Boot 2.1.6 发布了!
!(https://oscimg.oschina.net/oscnet/e5aaab7a5b9f4aa7a944b00aff253ed2.jpg)Java技术栈www.javastack.cn优秀的Java技术公众号(https://www.oschina.net/action/GoToLink?urlhttps%3
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这