【Spring Cloud Alibaba】服务注册与发现+远程调用

目录

  • 注册微服务到Nacos(服务提供者)
    • 创建项目
    • 修改依赖信息
    • 添加启动注解
    • 添加配置信息
    • 启动服务,Nacos控制台查看服务列表
  • 注册微服务到Nacos(服务消费者)
    • 创建项目
    • 添加依赖信息
    • 添加启动注解
    • 添加配置信息
    • 启动服务,Nacos控制台查看服务列表
  • 远程调用
    • 服务提供者添加服务接口
    • 复制一个服务提供者出来,端口暴露为9082
      • 访问接口内容稍作修改
      • 服务消费者启动类加注解@EnableFeignClients
      • 远程调用接口
      • 服务消费者访问接口
      • 启动服务消费者,访问接口
  • Nacos与其他注册中心特性对比

注册微服务到Nacos(服务提供者)

创建项目

  • 指定artifactId为cloudalibaba-user-provider
  • IDEA中的ServerUrl使用阿里云地址:https://start.aliyun.com
    在这里插入图片描述

修改依赖信息

在这里插入图片描述

添加启动注解

@EnableDiscoveryClient

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

添加配置信息

server:port: 8082
spring:application:name: cloudalibaba-user-providercloud:nacos:discovery:username: nacospassword: nacosserver-addr: 127.0.0.1:8848namespace: public

启动服务,Nacos控制台查看服务列表

在这里插入图片描述

注册微服务到Nacos(服务消费者)

创建项目

指定artifactId为cloudalibaba-user-consumer

添加依赖信息

添加启动注解

@EnableDiscoveryClient

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

在这里插入图片描述

添加配置信息

server:port: 8083
spring:application:name: cloudalibaba-user-consumercloud:nacos:discovery:username: nacospassword: nacosserver-addr: 127.0.0.1:8848namespace: public

启动服务,Nacos控制台查看服务列表

在这里插入图片描述

远程调用

服务提供者添加服务接口

  • 在服务提供者项目中添加ResuUserController类
  • 添加服务接口
@RestController
@RequestMapping("/user")
public class UserProviderController {@RequestMapping("/view/{userId}")public String getUser(@PathVariable Integer userId){System.out.println("服务提供者接收到用户ID:" + userId);        return "{\"userId\":" + userId + ",\"userName\":\"zhangsan\",\"source\":\"8082\"}";}
}

复制一个服务提供者出来,端口暴露为9082

访问接口内容稍作修改

```java
@RestController
@RequestMapping("/user")
public class UserProviderController {@RequestMapping("/view/{userId}")public String getUser(@PathVariable Integer userId){System.out.println("服务提供者接收到用户ID:" + userId);        return "{\"userId\":" + userId + ",\"userName\":\"zhangsan\",\"source\":\"9082\"}";}
}

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/134c7962ba664066a5d9413234abbbea.png)
## 服务消费者远程调用服务接口
### 服务消费者添加依赖```xml<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>2.2.6.RELEASE</version></dependency>

服务消费者启动类加注解@EnableFeignClients

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

远程调用接口

@FeignClient(name = "cloudalibaba-user-provider")
public interface UserProviderFeign {@RequestMapping("/user/view/{userId}")String getUser(@PathVariable("userId") @RequestParam("userId") Integer userId);
}

服务消费者访问接口

@RestController
public class UserConsumerController {@Resourceprivate UserProviderFeign userProviderFeign;@RequestMapping("/detail/{uid}")public String getUser(@PathVariable("uid") Integer uid) {return userProviderFeign.getUser(uid);}
}

启动服务消费者,访问接口

访问:http://localhost:8083/detail/1
在这里插入图片描述

Nacos与其他注册中心特性对比

特性NacosEurekaZookeeperConsulCoreDNS
服务注册与发现支持支持支持支持不支持
多数据中心支持支持不支持不支持支持不支持
服务健康检查支持不支持不支持支持不支持
配置管理支持不支持不支持支持不支持
分布式锁支持不支持支持支持不支持
事件监听支持不支持支持支持不支持
多语言支持支持支持支持支持支持
可扩展性
社区支持较好较好较好较好较好
访问协议HTTP/DNS/UDPHTTPTCPHTTP/DNSDNS
负载均衡权重/DSL/metadata/CMDBRibbon/fabioRR
一致性协议CP+APAPCPCP/

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

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

相关文章

基于卷积神经网络(CNN)的深度迁移学习在声发射(AE)监测螺栓连接状况的应用

螺栓结构在工业中用于组装部件&#xff0c;它们在多种机械系统中扮演着关键角色。确保这些连接结构的健康状态对于航空航天、汽车和建筑等各个行业至关重要&#xff0c;因为螺栓连接的故障可能导致重大的安全风险、经济损失、性能下降和监管合规问题。 在早期阶段检测到螺栓松动…

vue3路由详解,从0开始手动配置路由(vite,vue-router)

创建一个不含路由的vue项目 &#xff08;查看路由配置可以直接跳过这一段&#xff09; 输入npm指令&#xff0c;然后写一个项目名称&#xff0c;之后一路回车即可 npm create vuelatest 注意这里我们不选引入vue router&#xff0c;成功后可以 查看目录 然后按提示信息输入指…

python导出手机可执行

流程&#xff1a; 梦想->安装打包工具->编写程序->生成打包配置->执行打包命令->生成手机可执行文件->OK完成梦想 步骤1&#xff1a;安装打包工具 # 安装PyInstaller pip install pyinstaller 步骤2&#xff1a;编写Python程序 接下来&#xff0c;你需要编…

新闻出版署发布新规定,腾讯游戏限制未成年人端午期间每天一小时

原标题&#xff1a;腾讯游戏端午节期间针对未成年人的游戏时间限制措施 易采游戏网6月3日消息&#xff1a;近日国家新闻出版署针对未成年人沉迷网络游戏问题发布了《关于进一步严格管理 切实防止未成年人沉迷网络游戏的通知》&#xff0c;旨在加强对未成年人保护的力度&#xf…

GIS之arcgis系列06:线划图缓冲区分析

缓冲区工具将在输入要素周围指定距离内创建缓冲区面。 缓冲区例程将遍历输入要素的每个折点并创建缓冲区偏移。 通过这些偏移创建输出缓冲区要素 原理&#xff1a; 01.打开文件 02.确定单位&#xff0c;在文件属性里。 03.工具箱-->分析工具-->邻域分析-->缓冲区。 …

PDF格式分析(八十三)——屏幕注释(screen)

屏幕注释(PDF 1.5及其以上版本支持)&#xff0c;在指定页面区域内播放媒体剪辑。它也可以被actiond的动作进行触发。 下表显示了该型注释的字典条目&#xff1a; 条目类型详细Subtypename(必填)本词典描述的注释类型;必须为Screen。Ttext string(可选)屏幕注释的标题。MKdicti…

派派派森02

目录 1.容器 1.列表 2.元组 3.字符串 3.序列 4.集合 5.字典 2.数据容器通用操作 • max最大元素 • min最小元素 • 容器的通用转换功能 • 通用排序功能 3.字符串大小比较 4.函数中多个返回值 5.函数参数多种传递方式 1.位置参数 2.关键字参数 3.缺省参数 …

【C++/STL】list(常见接口、模拟实现、反向迭代器)

&#x1f308;个人主页&#xff1a;秦jh_-CSDN博客&#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/qinjh_/category_12575764.html?spm1001.2014.3001.5482 目录 前言 list的常见接口 对迭代器的封装 节点 重载-> const迭代器 list与vector的对比 反向迭代…

2020长安杯

链接成功 检材一 1检材 1 的操作系统版本是 ()A. CentOS release 6.5 (Final)B. Ubuntu 16.04.3 LTSC. Debian GNU/ Linux 7.8 (wheezy)D. CentOS Linux release 7.6.1810 (Core)D 2检材 1 中&#xff0c;操作系统的内核版本是 ()(答案格式&#xff1a; “1.2.34” 数字和半角…

【小海实习日记】校验及优化

一、在代码中添加校验 1.与产品端确定自定义指标判断数据。 2.与前端沟通接口&#xff0c;沟通返回的错误码。 3.测试 4.git commit, git push 二、优化 当查询多个id大于十个以上时&#xff0c;原有的代码存在效率不高的情况。 原始代码中的部分是一个循环遍历 List 的过程&am…

JVMの堆、栈内存存储

1、JVM栈的数据存储 通过前面的学习&#xff0c;我们知道&#xff0c;将源代码编译成字节码文件后&#xff0c;JVM会对其中的字节码指令解释执行&#xff0c;在解释执行的过程中&#xff0c;又利用到了栈区的操作数栈和局部变量表两部分。 而局部变量表又分为一个个的槽位&…

前端将DOM元素导出为图片

前端工作中经常会用到把一些元素导出&#xff0c;比如表格&#xff0c;正好项目有遇到导出为excel和导出为图片&#xff0c;就都封装实现了一下&#xff0c;以供其他需求的开发者使用&#xff1a; 1.导出为文档 这个说白了就是下载的功能&#xff0c;传过去检索参数&#xff…

MySQL——事务补充

十一、RR和RC的本质区别 select * from 表名 (lock in share mode) #当不加共享锁时&#xff0c;说明此时进行的是快照读&#xff0c;加了共享锁则进行的是当前读&#xff1b;​ 当进行快照读的时候才会形成read view结构&#xff1b; ​ read view形成的时机不同&#xff0c…

超分辨重建——SRGAN网络训练自己数据集与推理测试(详细图文教程)

&#x1f4aa; 专业从事且热爱图像处理&#xff0c;图像处理专栏更新如下&#x1f447;&#xff1a; &#x1f4dd;《图像去噪》 &#x1f4dd;《超分辨率重建》 &#x1f4dd;《语义分割》 &#x1f4dd;《风格迁移》 &#x1f4dd;《目标检测》 &#x1f4dd;《暗光增强》 &a…

标题:Go语言中的YAML魔法:轻松配置你的环境

摘要&#xff1a; 本文将介绍如何在Go语言项目中使用YAML文件来管理配置&#xff0c;包括如何读取YAML文件以及如何在代码中解析和使用这些配置。 正文&#xff1a; 在编程世界中&#xff0c;配置管理是每个项目都必须面对的问题。对于Go语言项目来说&#xff0c;YAML文件是一…

【TB作品】msp430f149单片机,读取ds18b20温度,显示到数码管,串口发送温度到电脑

功能 msp430f149单片机 读取ds18b20温度&#xff0c;显示到数码管&#xff0c;串口发送温度到电脑 部分程序 /************************************************* * 程序功能&#xff1a;用DS18B20测量室温并在数码管上显示。 * --------------------------------------…

计算机视觉与模式识别实验2-1 角点检测算法(Harris,SUSAN,Moravec)

文章目录 &#x1f9e1;&#x1f9e1;实验流程&#x1f9e1;&#x1f9e1;Harris算法SUSAN算法Moravec算法 &#x1f9e1;&#x1f9e1;全部代码&#x1f9e1;&#x1f9e1; &#x1f9e1;&#x1f9e1;实验流程&#x1f9e1;&#x1f9e1; Harris算法 Harris算法实现步骤&…

【面试题-015】DockerFile中CMD和ENTRYPOINT指令有什么区别

文章目录 DockerFile中CMD和ENTRYPOINT指令有什么区别docker容器是怎么实现的docker的联合文件系统是什么 简单说下docker如何实现网络通信 DockerFile中CMD和ENTRYPOINT指令有什么区别 在Docker中&#xff0c;CMD和ENTRYPOINT指令都是用来指定容器启动时运行的命令。它们之间…

《尚上优选》项目Bug记录

写在前面 本项目为该系列第二个项目&#xff0c;有一些问题如果没有在本文摘录&#xff0c;可以到 《云尚办公》项目 BUG记录 中查找是否有类似的解决方案。 &#xff08;2024.3.24以下&#xff09; (P11) 管理端前端node20版本启动报OpenSSL错误 经典问题&#xff0c;把we…

PostgreSQL设置自增主键

PostgreSQL设置自增主键 1 创建一个序列 CREATE SEQUENCE id_seq START 1; 2将指定字段修改为对应的数据类型序列 alter table test alter column id set default nextval(id_seq);test , id , id_seq