手把手教你搭建SpringCloud项目(六)Eureka实现服务发现

news2024/11/25 10:25:31

一、服务发现简介

   各个微服务在启动时,将自己的网络地址等信息注册到服务发现组件上(eureka,zookeeper,Consul),服务发现组件会存储这些信息。服务消费者会从服务发现组件查询服务提供者的网络地址,然后根据该地址调用服务提供者的接口。各个微服务与服务发现组件使用一定的机制来维持心跳,服务发现组件若发现有服务没有提供心跳,那么服务发现组件会将该服务剔除。微服务网络地址发生变更(例如实例增减或者IP端口发生变化等),会重新注册到服务发现组件上,使用这种方式,可以避免因网络变化导致服务之间的通讯停止,服务消费者也无须人工的修改网络地址。简单的说就是对于注册到Eureka中的微服务,可以通过服务发现来获得该服务的信息。

二、服务发现的代码实例

我们需要在cloud-provide-payment提供者服务中的Controller中修改,如下图:

//注入服务发现的注解
@Autowired
private DiscoveryClient discoveryClient;
 
 //获取服务信息
GetMapping("/payment/discovery")
public  Object discovery(){
   List<String> services = discoveryClient.getServices();
        for (String s : services){
            log.info("********注册到eureka中的服务中有:"+services);
        }
    List <ServiceInstance> instances = discoveryClient.getInstances("MCROSERVICE-PAYMENT");
        for (ServiceInstance s: instances) {
            log.info("当前服务的实例有"+s.getServiceId()+"\t"+s.getHost()+"\t"+s.getPort()+"\t"+s.getUri());
        }
    return this.discoveryClient;
}

在启动类上加上注解@EnableDiscoveryClient,如下图:

@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
public class PayMentMain {
    public static void main(String[] args) {
        SpringApplication.run(PayMentMain.class,args);
    }
}

然后启动该服务,访问http://localhost:8001/payment/discovery获取当前注册中心的服务信息,如下图:

可以看到客户端和服务端都有如下两个服务:mcroservice-order和mcroservice-payment
在这里插入图片描述

我们将信息通过日志打印到了控制台上,现在看一下控制台打印的信息,如下图:
在这里插入图片描述

我们可以看到当前注册中心有mcroservice-order和mcroservice-payment这两个服务。还可以看到mcroservice-payment服务下的实例的ip和端口还有uri。这个可以获取很多的服务信息。大家可以自己看一下,根据自己的需要获取。如下图:

在这里插入图片描述

是不是so easy?
在这里插入图片描述

下一篇文章学习Consul的服务注册与发现,持续关注、点赞。我们持续更新中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/765929.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

centos升级龙蜥

centos升级龙蜥 龙蜥简介龙蜥官方社区centos升级龙蜥首先确认自己的centos版本下载迁移镜像源安装epel源迁移工具安装i686包查看执行迁移脚本结果查看重启机器查看系统信息 龙蜥简介 2021年10月19日的大会上&#xff0c;阿里云发布全新操作系统“龙蜥”并宣布开源。龙蜥操作系…

SAP与顺丰快递接口签名验证加密ABAP程序例子(MD5加密、转换为Base64字符串) <转载>

原文链接&#xff1a;http://www.baidusap.com/abap/7408 1, 顺丰平台数字签名简介 SAP系统和顺丰快递平台中的API接口对接时&#xff0c;需要将传输的JSON字符串进行数字签名加密。数字签名具体使用的是MD5方式&#xff0c;格式如下&#xff1a;msgData&#xff08;业务报文&a…

DOM编程

DOM编程 DOM树&#xff1a; 获取DOM对象的方式&#xff1a; 通过id直接获取 id禁止使用&#xff0c;因为项目都是css、html、js分离的 2、通过API&#xff0c;doucument.getElementById 3、通过class&#xff0c;doucument.getElementsByClassName 4、通过标签名称&#xff0…

【框架篇】Bean作用域和生命周期

Bean作用域和生命周期 一&#xff0c;Bean作用域 Bean作用域指的是在Spring框架中&#xff0c;定义了Bean实例的创建和销毁方式&#xff0c;以及可以访问该实例的范围&#xff0c;并决定了每次通过容器获取Bean时返回的是同一个实例还是不同的实例。 1.1&#xff0c;Bean作用…

mysql 2 -- 数据库基本操作、数据表的操作、mysql查询操作

一、数据库基本操作 1、数据库的登录及退出 连接数据库&#xff1a; mysql -u用户名 -h主机地址(省略代表本机) -p 密码&#xff08;格式为123...&#xff09;;注&#xff1a; 刚下载安装的时候需要通过管理员进入 退出数据库,以下三种方式都可以&#xff1a; exit quit …

Spring:表达式语言

Spring EL 概述使用概述 Spring 表达式(Spring EL) 是一种功能强大的表达式语言,以 #{ 表达式 } 作为定界符,用于在运行时对对象进行访问和操作。通过使用 Spring 表达式达到简化开发、减少逻辑或配置的编写的目的。 使用 Spring EL 主要可以引用 bean ,调用其属性和方…

苹果手机备忘录如何导入新手机?手机备忘录怎么转移?

一般来说&#xff0c;大多数手机用户更换手机的频率是3—5年&#xff0c;在一部手机使用了几年之后&#xff0c;就会出现内存不足、系统卡顿、电池续航时间较短等问题&#xff0c;这时候就需要更换新的手机了。有不少苹果手机用户在更换新手机的时候&#xff0c;都很发愁一个问…

Hugging News #0717: 开源大模型榜单更新、音频 Transformers 课程完成发布!

每一周&#xff0c;我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新&#xff0c;包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等&#xff0c;我们将其称之为「Hugging News」。本期 Hugging News 有哪些有趣的消息&#xff0…

TypeScript 学习笔记(六):索引签名类型、映射类型

一、索引签名类型 1. 索引类型查询操作符 keyof keyof可以用于获取某种类型的所有键&#xff0c;其返回类型是联合类型。 interface Info {name: string;age: number; } let infoProp: keyof Info; infoProp "name"; infoProp "age"; infoProp "…

知识普及:Boc-Hynic,133081-25-1,6-叔丁氧羰肼基-3-吡啶甲酸,

&#xff08;文章资料汇总来源于&#xff1a;陕西新研博美生物科技有限公司小编MISSwu&#xff09;​ Boc-Hynic&#xff0c;6-[2-(tert-Butoxycarbonyl)hydrazinyl]nicotinic acid&#xff0c;6-[2-(叔丁氧羰基)肼基]烟酸&#xff0c;6-叔丁氧羰肼基-3-吡啶甲酸 ------------…

追梦之旅【数据结构篇】——C语言手撕八大经典排序

追梦之旅【数据结构篇】——C语言手撕八大经典排序&#x1f60e; 前言&#x1f64c;排序的认识排序的稳定性&#xff1a;排序的时间复杂度和空间复杂度以及如何选择适合的排序&#xff1a; 优化版选择排序冒泡排序普通版冒泡排序升级版冒泡排序 直接插入排序希尔排序堆排序快速…

ChatGPT变现五个思路

一、前言 ChatGPT是一款AI聊天机器人&#xff0c;发布于2022年11月。凭借着在广泛的知识领域为消费者问题做出清晰、详尽解答的出色能力&#xff0c;其一经推出就引发全球轰动&#xff0c;自然也得到零售行业的高度关注。例如&#xff0c;消费者只要询问ChatGPT如何布置一个梦…

将Spring Boot项目打包部署到阿里云linux服务器

首先 你要保证自己的服务器上有java环境 如果没有可以参考我的文章 linux服务器中安装java JDK1.8版本 然后 我们打开我们的Spring Boot项目 双击 package 生命周期进行打包 打包完成之后 我们找到 target 下面会有一个jar包 然后 我们右键它 如下图操作 系统就会帮你打开它所…

javascript 导出表格的excel

一个php网站的表格,需要增加导出excel的功能, 因对web开发不甚了解,开始想着用php导出, 搜索一番发现比较复杂,而且我的表格里已经有数据了, 如果导出又要去库中获取一次,不是负担加倍, 可否把现有表格数据,直接导出来? 答案是肯定的,用js在前端导出 开源js组件…

三个属性让你学会书写横向滑动窗口!内附代码和详解!

先说结论&#xff1a; 父组件添加&#xff1a; display: flex; overflow-x: auto; 子组件添加&#xff1a; flex-shrink: 0; 下面进行详细讲述。 在书写滑动页面之前&#xff0c;最好了解一下flex布局的基本原理和常用属性&#xff0c;以下链接介绍较详细&#xff0c;图文并…

ROS1 ROS2学习

ROS1 ROS2学习 安装 ROSROS1ROS2 命令行界面ROS2 功能包相关指令ROS 命令行工具ROS1 CLI工具ROS2 CLI工具 ROS 通信核心概念节点 - Node节点相关的CLI 话题 - Topic编写发布者程序流程&#xff1a;编写订阅者程序流程&#xff1a;话题相关的CLI 服务 - Service编写客户端程序流…

CVE-2013-4547

CVE-2013-4547 一、环境搭建二、漏洞原理三、漏洞复现 一、环境搭建 如下介绍kali搭建的教程 cd ~/vulhub/nginx/CVE-2013-4547 // 进入指定环境 docker-compose build // 进行环境编译 docker-compose up -d // 启动环境docker-compose ps使用这条命令查看当前正在运…

v-for复习

 在真实开发中&#xff0c;我们往往会从服务器拿到一组数据&#xff0c;并且需要对其进行渲染。  这个时候我们可以使用 v-for 来完成&#xff1b;  v-for 类似于 JavaScript 的 for 循环&#xff0c;可以用于遍历一组数据&#xff1b; 1.v-for 基本使用  v-for 的基本…

水雨情自动监测系统-水雨情监测设备

近年来&#xff0c;暴雨及极端天气越来越频发&#xff0c;造成了洪涝与积水灾害给各地排水相关部门带来了巨大的压力&#xff0c;也给公众的生命财产损失带来了巨大的风险。为降低洪涝造成的损失&#xff0c;我们不仅要加强排水基础建设&#xff0c;还要提升实时监测手段&#…

一、音频基础-音频分析的重要工具(语谱图)

文章目录 1. 傅里叶转换2. 语谱图3. 应用1. 傅里叶转换 通过前面的描述可以知道,声音的本质就是各种声波,那么任意某一个时刻,都不可能是只有一个频率的波,而且声波也不可能是我们理解的标准的正弦波: 而一般我们对声音进行处理时,需要分析出频率当中的有哪些频率,然…