服务注册与发现

Eureka服务注册与发现:什么是服务注册与发现,Server注册中心 Eureka服务注册与发现 一套微服务架构的系统由很多单一职责的服务单元组成,而每个服务单元又有众多运行实例。例如,世界上最大的收费视频网站Netflix的系统是由600多个服务单元构成的,运行实例的数量就更加庞大了。由于各服务单元颗粒度较小、数量众多,相互之间呈现网状依赖关系,因此需要服务注册中心来统一管理微服务实例,维护各服务实例的健康状态。 什么是服务注册与发现 从宏观角度,微服务架构下的系统角色可以简单分为注册中心、服务提供者、远程客户端组件。 什么是服务注册呢?服务注册是指服务提供者将自己 阅读详情

今年 Dubbo 活了,并且被 Apache 收了。同时很不幸,Spring Cloud 下的 Netflix Eureka 组件项目居然宣布闭源了。。。但是之前的版本还是可以使用的。

服务注册中心

1、pom.xml 中引入需要的依赖内容:

    <!--继承 1.5.4.RELEASE版本spring boot-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <!--服务注册中心-->
    <dependencies>  
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>
    </dependencies>

    <!--继承 Dalston.SR1版本spring cloud-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

本人亲试,springboot 2.04 和 springcloud Dalston.SR1 版本配合会抛错,springboot 1.5.4.RELEASE 和 springcloud Finchley.SR1 版本配合会抛错,出错信息为java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<init>([Ljava/lang/Object;)V。这是不是说明springboot2.04 及以上 和 springcloud Finchley.SR1 及以上版本,已经不适合使用Eureka作为服务配置中心了???

2、application.properties 添加如下配置:

spring.application.name=eureka-server
server.port=8001

eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false

ureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
  • eureka.client.register-with-eureka :表示是否将自己注册到Eureka Server,默认为true。
  • eureka.client.fetch-registry :表示是否从Eureka Server获取注册信息,默认为true。
  • eureka.client.serviceUrl.defaultZone :设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。多个地址可使用 , 分隔。

3、启动:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class DeomSpringCloudApplication {

    public static void main(String[] args) {
        SpringApplication.run(DeomSpringCloudApplication.class, args);
    }
}

添加@EnableEurekaServer注解启动一个服务注册中心提供给其他应用进行对话。运行main方法,访问 http://localhost:8001/ 可以看到下面的页面,没有可用实例注册到服务注册中心:

服务提供方

添加依赖:

    <!--继承 1.5.4.RELEASE版本spring boot-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>


    <dependencies>  
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--服务发现组件-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
    </dependencies>

    <!--继承 Dalston.SR1版本spring cloud-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

application.properties 配置一把:

spring.application.name=eureka-client
server.port=8002
# 将服务注册到注册中心地址去
eureka.client.serviceUrl.defaultZone=http://localhost:8001/eureka/

写一个web接口服务:

@RestController
public class HelloController {


    @Autowired
    DiscoveryClient discoveryClient;

    @GetMapping("/hello")
    public Map hello() {
        String services = "Services: " + discoveryClient.getServices();
        String uri = "Uri: " + discoveryClient.getLocalServiceInstance().getUri();
        String port = "Port: " + discoveryClient.getLocalServiceInstance().getPort();
        System.out.println(services);
        Map msg = new HashMap();
        msg.put("uri", uri);
        msg.put("port", port);
        msg.put("services", services);
        return msg;
    }
}

启动:

@SpringBootApplication
@EnableDiscoveryClient
public class EurekaClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaClientApplication.class, args);
    }
}

可以看到注册中心 http://localhost:8001/ 可以发现多了一个客户端程序:

访问http://localhost:8002/hello 可以看到以下内容:

如何实现服务注册与发现? 在分布式服务中,服务注册和发现是一个特别重要的概念,为什么需要服务注册和发现?常用的服务发现组件有哪些?服务注册和发现对一致性有哪些要求呢?下面我们就来学习服务发现相关的知识。 阅读详情

相关推荐

分布式服务注册与发现

分布式服务注册与发现是微服务架构的核心组件,通过动态管理服务实例信息,提升系统的弹性和可用性。常用工具包括Eureka、Consul、Zookeeper等,选择时需根据一致性、性能和生态需求进行权衡。注册中心基础概念角色与功能:注册中心涉及服务提供者、服务消费者和服务注册中心三个角色。其需具备服务注册、注销、心跳检查、查询、变更查询等功能,还要保证服务高可用,进行健康检查、状态变更通知,部分有白名单机制。CAP 理论:分布式架构中,一致性(C)、可用性(A)、分区容错性(P)无法同时满足。

猪猪 1342

深入了解服务注册与服务发现

1. 什么是服务注册与发现 我们先来看下什么是服务注册与服务发现? 服务注册,就是将提供某个服务的模块信息(通常是这个服务的ip和端口)注册到1个公共的组件上去(比如: zookeeper\consul)。 服务发现,就是新注册的这个服务模块能够及时的被其他调用者发现。不管是服务新增和服务删减都能实现自动发现。 你可以理解为: //服务注册 NameServer->register(ne...

mmgithub123的博客 8632

Kubernetes服务注册与发现

在Kubernetes中,服务注册与发现确保了Pod间的高效通信。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 5771

服务注册与发现-全搞懂

本文从原理和实现角度详细介绍服务发现

高性能架构探索 8623

手把手教你用若依WMS搭建企业级仓库管理系统(Vue+Spring Boot实战)

本文提供了一份基于若依框架(RuoYi)快速搭建企业级仓库管理系统(WMS)的实战指南。详细介绍了从环境准备、项目初始化到核心功能模块(如入库流程、库存管理看板)深度定制的全过程,并涵盖Lodop打印集成、移动端PWA适配及生产环境Docker部署等高级主题,帮助开发者高效构建稳定可用的WMS系统。

weixin_29015899的博客 563

时空数据建模的跨节点联邦图神经网络:KDD21 Cross-Node Federated Graph Neural Network for Spatio-Temporal Data Modeling

前言 联邦学习(FL)虽然已经被广泛研究,但是对复杂的时空依赖关系进行建模以提高预测能力仍然是一个开放的问题。此外目前最优的时空预测模型假定对数据的访问不受限制,忽略了对数据共享的限制。基于此,本文提了一个基于图联邦学习的时空数据模型 Cross-Node Federated Graph Neural Network (CNFGNN),该模型在跨节点联邦学习的约束下,使用基于图神经网络(GNN)的架构对底层图结构进行编码,属于结构化联邦的一种,每个本地模型利用私有数据进行学习,并保持分散性。CNFGNN

qq_56027260的博客 1810

微服务之服务注册与发现

服务注册就是维护一个登记簿,它管理系统内所有的服务地址。当新的服务启动后,它会向登记簿交待自己的地址信息。服务的依赖方直接向登记簿要 Service Provider 地址就行了。当下用于服务注册的工具非常多 ZooKeeper,Consul,Etcd, 还有 Netflix 家的 eureka 等。服务注册有两种形式:客户端注册和第三方注册。

qq_24428851的博客 2327

1006. 换个格式输出整数 (15)-PAT乙级真题

1006. 换个格式输出整数 (15)让我们用字母B来表示“百”、字母S表示“十”,用“12…n”来表示个位数字n(&lt;10),换个格式来输出任一个不超过3位的正整数。例如234应该被输出为BBSSS1234,因为它有2个“百”、3个“十”、以及个位的4。输入格式:每个测试输入包含1个测试用例,给出正整数n(&lt;1000)。输出格式:每个测试用例的输出占一行,用规定的格式输出n。输入样例1...

柳婼 の blog 2243

【云原生】Docker容器服务更新与发现之consul

服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构,起初的解决手段是在服务前端负载均衡,这样前端必须要知道所有后端服务的网络位置,并配置在配置文件中。这里就会有几个问题:●如果需要调用后端服务A-N,就需要配置N个服务的网络位置,配置很麻烦●后端服务的网络位置变化,都需要改变每个调用者的配置既然有这些问题,那么服务注册与发现就是解决这些问题的。

qq_62462797的博客 1296

Ollama模型路径迁移实战:Windows/Mac/Linux三平台保姆级教程(附常见问题排查)

本文提供了一份详细的Ollama模型路径迁移教程,涵盖Windows、macOS和Linux三大平台。通过设置OLLAMA_MODELS环境变量或创建符号链接,指导用户将模型从默认路径安全迁移至新位置,以释放系统盘空间或提升性能。教程包含迁移前的准备、分平台步骤、迁移后的验证以及常见问题排查,确保迁移过程平滑可靠。

js777的博客 1184

轨迹规划——带抛物线过渡的直线插补

带抛物线过渡的直线插补

doudou2weiwei的博客 1984

服务注册与发现总结

本文对比了主流的五种服务注册与发现中间件,可为项目方案选择作为参考。另外讲解了服务注册与发现的核心功能,便于读者充分解服务注册与发现的原理

weixin_38597669的博客 2166

EDSR图像超分辨程序复现(踩坑及解决记录)

EDSR图像超分辨程序复现(踩坑及解决记录)

Sunny_Coder的博客 3642

Eureka服务注册与发现

注册中心可以说是微服务架构中的"通讯录",它记录了服务和服务之间地址的映射关系。在分布式架构中, 服务会注册到这里(注册中心),当服务需要调用其它服务时,就这里找到服务的地址,进行调用。到底什么是服务治理?SpringCloud封装了Netflix公司开发的Eureka模块来实现服务治理。在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂、所以需要进行服务治理,管理服务与服务之间依赖关联,以实现服务调用,负载均衡、容错等,实现服务发现与注册。

梦想也许遥不可及,但重要的是追梦的过程,用博客记录自己的成长,记录自己一步一步向上攀登的印记 5056

在 Fiori Elements Object Page 的表格中用 UI.Hidden 隐藏列:语义、边界与落地实践全解析

摘要: Fiori Elements的Object Page表格中,UI.Hidden注解支持静态和动态隐藏列。动态隐藏分为两种:基于父实体属性隐藏整列,或基于子实体属性按行隐藏单元格。关键约束包括:支持服务端操作的列禁止使用动态隐藏,否则会导致UX不一致。ABAP CDS不支持路径式UI.Hidden,需改用XML注解。该功能需与UI.Importance、个性化等机制明确区分,避免混淆。对于可能参与排序/过滤的列,建议仅使用静态隐藏。实际应用中需注意注解位置(整列或单元格级)和业务场景的匹配。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 205

RK3568平台(内存篇)DDR定频修改

如果需要DDR定频,则还需要注释掉其他多余的DDR频率,保留一个即可,例如注释掉opp-528000000、opp-1068000000、opp-1560000000,保留opp-2750000000则是定频最大频率。如果回退必须将 dmc_opp_table节点 的其他频率打开,否则系统无法选择到其他频率运行。ddr频点不对,先把ddr变频关掉,关闭后系统就不会一直重启了,以下是修改DDR频点的。rk3588修改定频节点在rk3588s.dtsi 的 dmc: dmc。

weixin_49303682的博客 1621

【Spring Cloud】 服务注册/服务发现

【Spring Cloud】 服务注册/服务发现

2403_87459748的博客 1586

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python服务发现与注册_服务注册与发现

在单体应用中调用往往局限在语言层面,也就是方法的调用。当服务被拆解,单体应用变成了多个服务之后,服务间“对话”就变成了一个重要的话题。目前最常见的方式是借助REST或RPC。还有一种方式是通过队列,其原理与RPC类似。不论REST还是RPC,原来的方法调用都要变成了网络调用。这种转变也带来了很多问题:效率问题。网络调用的开销一定是比本地方法调用大,网络传输,协议转化等等都会造成效率下降。稳定性。服...

weixin_42509766的博客 936

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Eureka 服务注册与发现

在微服务开发中,一个服务通常由一个微服务集群提供,在代码中两个服务之间的服务器是不可能绑定死的,是 n 对 n 的关系,所以对微服务进行管理是很有必要的。比如当订单服务需要用到商品信息时就需要发送请求给商品服务,我们要如何找到商品服务呢?可以通过 Eureka 来找到该服务。在微服务开发中:服务时,向报道,注册中⼼记录应⽤和 IP 的关系.调⽤⽅时,先去获取服务⽅的 IP ,再去服务⽅进⾏调⽤.

q322359的博客 1375

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Nacos服务注册与发现——服务发现

Nacos服务注册与发现——服务发现

weixin_51966377的博客 5179

Nacos服务注册和发现

在大型微服务项目中,服务提供者的数量会非常多,为了管理这些服务就引入了注册中心的概念。注册中心、服务提供者、服务消费者三者间关系如下:当服务提供者的实例宕机或者启动新实例时,调用者如何得知呢?

行东的bug博客笔记 2829

Nacos 服务注册与发现原理分析

Nacos 另一个非常重要的特性就是服务注册与发现,说到服务的注册与发现相信大家应该都不陌生,在微服务盛行的今天,服务是非常重要的,而在 Nacos 中服务更被称为他的一等公民。 Nacos 支持几乎所有主流类型的 “服务” 的发现、配置和管理。 了解过 Dubbo 的同学,应该对 Dubbo 的架构非常熟悉,最经典的一张架构图如下所示: 图中的6个步骤的含义解释如下: 0、服务容器负责启动,加载,运行服务提供者。 1、服务提供者在启动时,向注册中心注册自己提供的服务。 2、服务消费..

一个天秤座的架构师 2万+

【服务治理】服务注册与发现

服务注册,就是将提供某个服务的模块信息(通常是这个服务的ip和端口)注册到1个公共的组件上去(比如: zookeeper\consul)。 服务发现,就是新注册的这个服务模块能够及时的被其他调用者发现。不管是服务新增和服务删减都能实现自动发现。

欢迎指错||纠正||建议||水评+点赞&&评论&&关注&&转发 1523

【SpringCloud】服务注册和发现

Spring Cloud 就像个「技术整合大师」,把 Netflix、Alibaba 等大厂的优秀组件,按统一规范打包成「全家桶」,再裹上 Spring Boot 的清爽外衣,让开发者开箱即用。

程序猿教你打篮球的博客 3535
上一篇: java 正则表达式基础以及正则实现表单参数校验
下一篇: 服务消费以及负载均衡
She_lock
博客等级 码龄12年 157粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值