Eureka停更了?试试Zookpper和Consul

尴尬了!Spring Cloud微服务注册中心Eureka 2.x停止维护了咋办?【石杉的架构笔记】... 点击上方"蓝字",右上角选择“设为星标” 周一至周五早8点半!精品技术文章准时送上! 目录 1、Eureka官宣2.x版本不再开源 2、互联网大厂的基础架构:自研服务注册中心 3、中小公司的其他选择:Consul 1、Eureka官方宣布2.x不再开源 之前写过一篇文章:《拜托!面试请不要再问我Spring Cloud架构原理!》,文章介绍了Sp... 阅读详情

在Spring Cloud Netflix中使用Eureak作为注册中心,但是Eureka2.0停止更新,Eureka1.0 进入了维护状态。就像win7一样,同样可以用,但是官方对于新出现的问题并不能及时修复,所以我们就需要使用替代品。目前可用的注册中心替代品主要有:Zookeeper、Consul、Nacos等,这里主要讲前两个,Nacos是Spring Cloud Alilibaba中的组件,后期会说到。

使用Zookeeper作为注册中心

一、安装Zookeeper并启动服务

​ 这一步非本文重点,请自行百度,很简单的

二、将原有的微服务注册进Zookeeper
  • 使用过Dubbo的小伙伴对Zookeeper一定不陌生。使用Eureka时,我们是创建一个新的SpringBoot Web项目(如果是Eureka集群的话,就要创建多个项目),然后将其他微服务注册进去,而Zookeeper却不用新建项目,只需要通过修改配置和简单的编码就可以进行注册
  • 为了和之前的项目冲突,我们先将之前的项目复制两个新的项目zookeeper-provider-8001和zookeeper-consumer-80
先修改zookeeper-provider-8001这个提供者项目
  • 在pom.xml中引入依赖
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
    <exclusions>
        <exclusion>
            <!--为什么要排除这个依赖?-->
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <!--然后又引入这个依赖?-->
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.4.13</version>
</dependency>

​ 一个小细节,为什么要排除这个依赖,然后引入一个新的依赖?这波骚操作?

1\. 主要是在zookeeper-discovery中的zookeeper版本是3.4.8 
2\. 而这个版本一定要和我们在服务器安装的zookeeper版本一致,不然你在注册的时候,会报错。当然,如果你在服务器本来安装的是3.4.8就不用这么麻烦了。
  • 在application.yml中配置上zookeeper的地址
server:
  port: 8001

spring:
  application:
#  这个应用的名称,用来注册在注册中心的名称
    name: zookeeper-provider
  cloud:
    zookeeper:
#    如果是zookeeper集群,在这个地址后边加上就可以,用逗号分开
      connect-string: 192.168.25.131:2181
  • 在启动类中添加注解
@SpringBootApplication
@EnableDiscoveryClient //注意这个注解是SpringCloud包中的
public class ApplicationDemo {
    public static void main(String[] args) {
        SpringApplication.run(ApplicationDemo.class, args);
    }
}
  • 启动这个项目,然后在服务器中查看下zookeeper的节点

使用Zookeeper作为Spring Cloud注册中心

同样的方法,修改消费者项目zookeeper-consumer-80
  • pom.xml(和上边一样引入zookeeper依赖)

  • appliction.yml

server:
  port: 80
spring:
  cloud:
    zookeeper:
      connect-string: 192.168.25.131:2181
  • 和Eureka不同的是,我们同时也要将消费者注册进Zookeeper中
@SpringBootApplication
@EnableDiscoveryClient
public class ApplicationDemo {
    public static void main(String[] args) {
        SpringApplication.run(ApplicationDemo.class, args);
    }
}
  • 我们使用的是Ribbon用服务名进行访问的方式,所以还要修改它的controller类
@GetMapping("consumer/hello/{id}")
    public String hello(@PathVariable("id") String id){
        //远程调用provider中的接口
        return restTemplate.getForObject("http://zookeeper-provider/provider/hello/"+id,String.class);
    }
  • 然后启动这个项目,使用浏览器访问http://localhost/consumer/hello/999没问题

使用Consul作为注册中心

Consul是使用go语言开发,是一个服务网格(微服务间的 TCP/IP,负责服务之间的网络调用、限流、熔断和监控)解决方案,它是一个一个分布式的,高度可用的系统,而且开发使用都很简便。它提供了一个功能齐全的控制平面,主要特点是:服务发现、健康检查、键值存储、安全服务通信、多数据中心。

一、安装Consul

这个安装要比Zookeeper简单,我只说下windows安装操作,其他的查看官网https://www.consul.io/

​ 如果你下载很慢的话,我在项目代码中上传了这个安装包。看文未获取代码地址。

  • 在官网上下载安装包,windows的下载解压后就是一个.exe文件。使用cmd打开当前目录(在当前目录下按住Shift+鼠标右键,选择Open commond window here 或者在地址栏中输入cmd然后回车)然后运行如下命令:
consul agent -dev
  • Consul和Eureka是有图形化界面的,启动Consul后直接用浏览器打开localhost:8500就可以看到。

二、将原有微服务注册进Consul

​ 同样,我们复制两个新项目consul-provider-8001 和 consul-consumer-80。

​ 而且和Zookeeeper一样,提供者和消费者都要注册进去。只贴出修改的代码,其他的参见源代码

  • pom.xml
<!--只是添加了这一个依赖,其他的依赖不变,如消费者需要的ribbon等-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
  • application.yml(提供者和服务者除了端口号和application.name外,其他的不变)
server:
  port: 8001

spring:
  application:
#  这个应用的名称,用来注册在注册中心的名称
    name: consul-provider
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
#      这个就是要注册进consul中的服务名,直接使用了上边定义的微服务名
        service-name: ${spring.application.name}
  • 在主启动类上添加注解(提供者和服务者都需要)
@SpringBootApplication
@EnableDiscoveryClient
public class ApplicationDemo {
    public static void main(String[] args) {
        SpringApplication.run(ApplicationDemo.class, args);
    }
}
  • 注意修改Controller中的远程调用服务名
@GetMapping("consumer/hello/{id}")
    public String hello(@PathVariable("id") String id){
        //远程调用provider中的接口
        return restTemplate.getForObject("http://consul-provider/provider/hello/"+id,String.class);
    }
  • 然后启动这个项目,先在浏览器中输入localhost:8500看一下我们的注册中心是否有这两个微服务。然后再次进行测试。
  • 但是我们启动后,在Consul后台发现我们服务是注册进去了,但是报错了。这是因为Consul和其他的注册中心不一样,它要检查这个SpringBoot的健康值,就是要访问每个服务的"/health"接口。所以我们要在每一个微服务中引入SpringBoot的健康检查的依赖(之前用过这个的小伙伴就很熟悉了)
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  • 这里有一个小插曲,就算当我们引入这个包后我们的http://localhost:8001/health返回还是down,也就是说我们的健康检查还是不通过.。因为我们使用的SpringBoot和Spring Cloud版本的问题。我还没找到解决方案。但是我们可以关闭Consul对当前服务的健康检查,添加如下配置:
spring:
  application:
#  这个应用的名称,用来注册在注册中心的名称
    name: consul-consumer
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
#      这个就是要注册进consul中的服务名,直接使用了上边定义的微服务名
        service-name: ${spring.application.name}
#        取消Consule对当前服务的健康检查
        register-health-check: false

最后,能在Consul控制台看到这个

上边这个错误标志忽略就好了。然后我们就可以使用浏览器和之前一样进行服务的访问了

总结:

  1. 这两个注册中心在和Spring Cloud整合时,它们的理念和步骤是一样的。

    引依赖——》修改application.yml将这个微服务注册进注册中心——》在主启动类中添加注解

  2. 和Eureka不同就是,在注册中心能同时看到提供者和消费者

  3. 后期在Spring Cloud Alilibaba中,我们会使用Nacos(阿里自研的)作为注册中心

Spring Cloud入门系列(四)——服务注册与发现之Eureka(已停更,建议切换到Nacos) 服务集群 新建相同的模块,更改端口,即可(略) 服务发现 以 8001为例: DiscoveryClient就是服务发现。 8001的PaymentController的代码如下: package com.banana.springcloud.controller; import com.banana.springcloud.entity.CommonResult; import com.banana.springcloud.entity.Payment; import com.banana.spri 阅读详情

相关推荐

ubuntu20.04安装UE4+Airsim环境

版本UE4.27+Airsim1.81

玖茸的博客 3380

SpringCloud(第六章 Zookeeper服务注册与发现)

文章目录一、Eureka停止更新了你怎么办二、SpringCloud整合Zookeeper代替Eureka 一、Eureka停止更新了你怎么办 https://github.com/Netflix/eureka/wiki ps:官网提示不再更新 二、SpringCloud整合Zookeeper代替Eureka

qq_45087487的博客 1025

高通camera调试经验总结

修改AF对焦模式 adb shell setprop vendor.debug.camera.af.manual 2 //使能手动对焦 adb shell setprop vendor.debug.camera.af.manual 0 //使能自动对焦

weixin_43381364的博客 1万+

eureka 停止更新

# 1.官方停止更新说明 - https://github.com/Netflix/eureka/wiki - 在1.x版本项目还是活跃的,但是在2.x版本中停止维护,出现问题后果自负!!!

Leon_Jinhai_Sun的博客 2078

如何在R中高效安装ropls及其依赖包

本文详细介绍了在R语言中高效安装ropls包及其依赖的完整流程。作为Bioconductor生物信息学分析包,ropls的安装需通过BiocManager管理器进行。文章提供了标准安装步骤、跨系统避坑指南及安装后验证方法,帮助用户解决R版本、编译环境和网络镜像等常见问题,确保代谢组学数据分析工具顺利部署。

efc123456的博客 908

深入解析PVT corner:从wcl到ml的芯片设计关键考量

本文深入解析了芯片设计中的PVT corner概念,重点探讨了从传统WC到先进工艺下WCL、ML等关键工艺角。文章详细阐述了温度反转效应如何使低温WCL成为最严苛的时序场景,并提供了基于先进工艺的实战签核策略与多角多模分析流程,确保芯片在极端工艺、电压、温度下的稳健性。

tree8的博客 529

SpringCloud Eureka停更后的替换

注册中心替换Zookeeper替换EurekaZookeeper是什么搭建Zookeeper注册中心引入依赖修改配置文件修改主启动类启动思考Consul替换Eureka简介功能安装服务提供者注册Consul总结CAP理论AP架构CP架构 Zookeeper替换Eureka Zookeeper是什么 Zookeeper是一个分布式协调工具,可以实现注册中心功能 关闭Linux服务器防火墙后,启动Zookeeper服务器,Zookeeper服务器取代Eureka服务器,zk作为服务注册中心。 搭建Zookee

fanjia2shao的博客 1135

迅投miniQMT量化交易之【网格交易】的实现(25)——写在最后

和大家一起分享如何使用miniQMT实现我们自己的网格交易系统。如果您对量化交易感兴趣,欢迎一起交流。

tzzqn2008的专栏 830

才发现Eureka停止更新

Eureka2.0官方停止更新

InSunshine_的博客 5693

Mplus—随机截距交叉滞后模型(RI-CLPM)语法

随机截距交叉滞后模型RI-CLPM的Mplus语法。

m0_54401011的博客 2535

嵌入式人工智能(18-基于树莓派4B的继电器JQC-3FF-S-Z)

本次实验的输出端控制不会接强电,就用LED灯来模拟即可,由于我那个流水灯模块是低电平点亮,所以接线稍有不同,同学们注意。只有继电器吸合,输出端的NO与COM就导通,给LED低电平然后就亮,否则继电器断开,NO与COM不导通,LED不亮。原理都一样,控制电流的接通与断开,这个模块看起来还简单点,毕竟还有2个指示灯,下端IN如接上电源红灯亮,继电器动作有电流通过绿灯亮。在实际应用中,可以通过编程控制继电器的通断状态,例如在Python编程中设置继电器模块的通断时间,从而实现自动化控制。

u010152658的博客 2531

服务注册中心Eureka

什么是服务注册中心? 所谓服务注册中心就是在整个的微服务架构中单独提出一个服务,这个服务不完成系统的任何的业务功能,仅仅用来完成对整个微服务系统的服务注册和服务发现,以及对服务健康状态的监控和管理功能。 SpringCloud支持的多种注册中心Eureka、Consul、Zookeeper、以及阿里巴巴推出Nacos。这些注册中心在本质上都是用来 管理服务的注册和发现以及服务状态的检查的。 服务注册中心的功能有以下几点: 可以对所有的微服务的信息进行存储,如微服务的名称、IP、端口等。 可以在进行服务调

学而时习之,不亦说乎?温故而知新,可以为师矣! 1652

【WorkBuddy专栏40】从「帮你干活」到「帮你创造」——WorkBuddy设计创意功能深度拆解

【WorkBuddy专栏40】从「帮你干活」到「帮你创造」——WorkBuddy设计创意功能深度拆解

AI人人懂 1312

SpringCloud停更服务一览表

参考文章:SpringCloud组件的停更和替换说明 SpringCloud的Hoxton版本,和之前的版本相比,用新的组件替换掉了原来大部分的组件,老的组件现在处于停更不停用的状况。 详情见下图(×的表示之前的组件,现在停更了的;√的表示新的替换后的组件): 描述: 服务注册中心: Eureka:官方停止更新,并且已经有更好的替代产品了,可以使用,但是官方已经不建议使用了(重度患者)。 Zookeeper:某些老系统,以前是用的Zookeeper + Dubbo,后来做技术升级,.....

justlpf的专栏 4171

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Nacos

功能相比于Eureka更加丰富 Eureka并没有停止维护,停止维护的是2.x版本(还没正式推出就已经挂掉了的版本),但是常用的是1.x版本。 功能一【注册中心】 1. 功能类似于Eureka 2. Nacos官网:home 3. Nacos服务器下载地址:https://github.com/alibaba/nacos/releases,如何启动服务参考:Quick Start for Nacos,启动成功可通过地址:http://127.0.0.1:8848/nacos/index.htm..

weixin_44861980的博客 2609

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Eureka服务注册与发现(停更)

Eureka(停更)Eureka基础知识单机Eureka构建步骤集群Eureka构建步骤actuator微服务信息完善服务发现Discoveryeureka自我保护 Eureka基础知识 1、什么是服务治理? SpringCloud封装了Netflix公司开发的Eureka模块来实现服务治理。在传统的rpc远程调用框架中,管理每个服务与服务之间的依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间原来关系,可以实现服务调用、负载均衡、容错等,实现服务注册与发现 2、什么是服务注册与发现

陌守 8226

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

1、eureka 真的是停用了吗?是否人云亦云

人云亦云。有人说eureka2.x已经停用,停止维护,已经闭源了,我想说的是你们真会玩,都是外行的观点,都是以个人的喜欢和另有目的的传播机器吧了。有人数只能使用eureka1.x版本,风险自负,真的是这样吗?告诉大家,我们用的是eureka3.x版本,打破所有流言蜚语。 维护的eureka 停用的eureka ...

a13826548428的博客 4687

Eureka 优雅停服

本篇使用 actuator 实现安全停服

helloworld 936

SpringCloud组件的停更和替换的描述说明

停更: SpringCloud的Hoxton版本,和之前的版本相比,用新的组件替换掉了原来大部分的组件,老的组件现在处于停更不停用的状况。 详情见下图(×的表示之前的组件,现在停更了的;√的表示新的替换后的组件): 描述说明: 服务注册中心: Eureka:官方停止更新,并且已经有更好的替代产品了,可以使用,但是官方已经不建议使用了(重度患者)。 Zookeeper:某些老系统,以前是用的Zookeeper + Dubbo,后来做技术升级,结果发现SpringCloud的E...

weixin_44919186的博客 735

凉凉了,Eureka 2.x 停止维护,Spring Cloud 何去何从?

今年 Dubbo 活了,并且被 Apache 收了。同时很不幸,Spring Cloud 下的 Netflix Eureka 组件项目居然宣布闭源了。。 已经从 Dubbo 迁移至 Spring Cloud 上的人,你们还好吗? 闭源:https://github.com/Netflix/eureka/wiki 大概意思是: Eureka 2.0 的开源工作已经停止,依赖于开源库...

Java技术栈,分享最主流的Java技术 3万+

开发问题3:zookeeper和eureka作为分布式注册中心的区别

1、注解:     eureka的客户端使用的是@EnableEurekaClient   ,而zookeeper客户端程序中使用的是@EnableDiscoveryClient注解 2、CPA的区别: eureka选择的是AP,而zookeeper选用的是CP模式 CPA理论:一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证...

qq_37948985的博客 633

Eureka停更后的替换 Zookeeper替换Eureka(三)

Eureka停更后的替换 Zookeeper替换Eureka Zookeeper是什么 Zookeeper是一个分布式协调工具,可以实现注册中心功能 关闭Linux服务器防火墙后,启动Zookeeper服务器,Zookeeper服务器取代Eureka服务器,zk作为服务注册中心。 搭建Zookeeper注册中心 引入依赖 ...

qq_22494169的博客 351

SpringCloud组件的停更和替换说明

SpringCloud的Hoxton版本,和之前的版本相比,用新的组件替换掉了原来大部分的组件,老的组件现在处于停更不停用的状况。 详情见下图(×的表示之前的组件,现在停更了的;√的表示新的替换后的组件): 描述: 服务注册中心: Eureka:官方停止更新,并且已经有更好的替代产品了,可以使用,但是官方已经不建议使用了(重度患者)。 Zookeeper:某些老系统,以前是用的Zookeeper + Dubbo,后来做技术升级,结果发现SpringCloud的Eureka停更了,然后就...

年少青山的博客 2867

注意!Spring Cloud 2022.0.4 发布,大量组件停止维护

来源:JAVA架构日记Spring Cloud 2022.0.4 正式版(RELEASE)今天发布,可以在 Maven Central 中找到此版本。您可以查看 2022.0.4 版本说明以获取更多信息。<dependencyManagement> <dependencies> <dependency> <g...

程序猿DD 1194
上一篇: Mysql 单表适合的最大数据量是多少?如何优化其性能?
下一篇: 如何设计一个可扩展的限流算法?
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值