【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-provider
  cloud:
    nacos:
      discovery:
        username: nacos
        password: nacos
        server-addr: 127.0.0.1:8848
        namespace: 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-consumer
  cloud:
    nacos:
      discovery:
        username: nacos
        password: nacos
        server-addr: 127.0.0.1:8848
        namespace: 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 {
    @Resource
    private 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/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学生信息管理系统C++

设计目的 使学生进一步理解和掌握课堂上所学的面向对象C编程知识&#xff0c;巩固和加深学生对C面向对象课程的基本知识的理解和掌握。掌握C面向对象编程和程序调试的基本技能&#xff0c;学会利用C语言进行基本的软件设计&#xff0c;着重提高运用C面向对象语言解决实际问题的…

生成式 AI——ChatGPT、Dall-E、Midjourney 等算法理念探讨

1.概述 艺术、交流以及我们对现实世界的认知正在迅速地转变。如果我们回顾人类创新的历史&#xff0c;我们可能会认为轮子的发明或电的发现是巨大的飞跃。今天&#xff0c;一场新的革命正在发生——弥合人类创造力和机器计算之间的鸿沟。这正是生成式人工智能。 生成模型正在模…

【遂愿赠书 - 1期】:安恒“网安三剑客”-大模型时代下的网络安全实战指南

文章目录 一、图书背景二、网安实战宝典2.1《内网渗透技术》2.2《渗透测试技术》2.3《Web应用安全》 三、校企合作&#xff0c;产学研结合四、大模型时代的数字安全五、 网络安全无小事 一、图书背景 大模型风潮已掀起&#xff0c;各大巨头争相入局&#xff0c;从ChatGPT到Sor…

研学活动报名收集材料怎么写?教程来了!

研学活动作为学校教育的重要组成部分&#xff0c;不仅能够拓宽学生的视野&#xff0c;还能促进家校沟通。学生们报名还是十分积极踊跃的&#xff0c;然而研学活动报名收集材料该怎么写却困扰着不少老师&#xff0c;其实只需要把姓名和联系方式等收集全就可以了&#xff0c;主要…

Go Modules 使用

文章参考https://blog.csdn.net/wohu1104/article/details/110505489 不使用Go Modules&#xff0c;所有的依赖包都是存放在 GOPATH /pkg下&#xff0c;没有版本控制。如果 package 没有做到完全的向前兼容&#xff0c;会导致多个项目无法运行(包版本需求不同)。 于是推出了g…

遥感卫星影像处理流程

当空中的遥感卫星获取了地球数字影像&#xff0c;并传回地面&#xff0c;是否工作就结束了&#xff1f;答案显然是否定的&#xff0c;相反&#xff0c;这正是遥感数字图像处理工作的开始。 遥感数字图像&#xff08;Digital image&#xff0c;后简称“遥感影像”&#xff09;是…

FTP

文章目录 概述主动模式和被动模式的工作过程注意事项 概述 文件传输协议 FTP&#xff08;File Transfer Protocol&#xff09;在 TCP/IP 协议族中属于应用层协议&#xff0c;是文件传输标准。主要功能是向用户提供本地和远程主机之间的文件传输&#xff0c;尤其在进行版本升级…

数据分析每周挑战——心衰患者特征数据集

这是一篇关于医学数据的数据分析&#xff0c;但是这个数据集数据不是很多。 背景描述 本数据集包含了多个与心力衰竭相关的特征&#xff0c;用于分析和预测患者心力衰竭发作的风险。数据集涵盖了从40岁到95岁不等年龄的患者群体&#xff0c;提供了广泛的生理和生活方式指标&a…

【Linux终端探险】:从入门到熟练,玩转基础命令的秘密(二)

文章目录 &#x1f680;Linux基础命令&#xff08;二&#xff09;&#x1f308;1. 寻找目录/文件命令⭐2. 创建文件命令&#x1f44a;3. 网络接口查询命令❤️4. 打包命令&#x1f4a5;5. 解压命令 上期回顾&#xff1a; &#x1f525;&#x1f525;&#x1f525;【Linux终端探…

CMakeFile.txt通过sysroot方式后生成makefile报错

报错信息如下&#xff1a; -- The C compiler identification is unknown -- The CXX compiler identification is unknown -- Check for working C compiler: /home/xj/asm/host/bin/aarch64-buildroot-linux-gnu-gcc -- Check for working C compiler: /home/xj/asm/host/bi…

英伟达GeForce发布《星球大战:亡命之徒》宣传片,8月30日开售

易采游戏网6月3日消息&#xff1a;英伟达GeForce近日发布了一款激动人心的宣传片&#xff0c;展示了备受期待的游戏大作《星球大战&#xff1a;亡命之徒》。该宣传片不仅展现了游戏的华丽画面和引人入胜的故事情节&#xff0c;还重点介绍了支持NVIDIA DLSS 3.5、光线追踪和Refl…

工业级物联网边缘网关解决方案-天拓四方

随着工业4.0时代的到来&#xff0c;越来越多的企业开始寻求智能化升级&#xff0c;以提高生产效率、降低运营成本并增强市场竞争力。然而&#xff0c;在实际的转型升级过程中&#xff0c;许多企业面临着数据孤岛、设备兼容性差、网络安全风险高等问题&#xff0c;这些问题严重制…

mybatis+vue2前后端分离

目录 后端样例目录结构&#xff1a; ​编辑pom.xml文件 连接数据库信息&#xff08;mysql&#xff09;&#xff1a; config.properties 全部配置文件&#xff1a;mybatis-config.xml 包装sqlSessionFactory&#xff08;减少代码耦合&#xff09; 实体类food: 编写mapper.…

SpringCloud网关-gateway

一 什么是网关&#xff1f;为什么选择 Gateway? 网关功能如下&#xff1a; 身份认证和权限校验服务路由、负载均衡请求限流 在 Spring Cloud 中网关的实现包含两种&#xff1a; Gateway&#xff08;推荐&#xff09;&#xff1a;是基于 Spring5 中提供的 WebFlux &#xff…

仿真文件下载审核 有效保障HPC环境下的数据安全性

仿真文件在科学、工程和技术领域中具有重要性&#xff0c;所以确保仿真文件的安全性是非常重要的&#xff0c;特别是当这些文件包含敏感信息或涉及到关键的业务操作时。在获取仿真文件时&#xff0c;仿真文件下载审核这个流程也比较重要的。 审核仿真文件下载&#xff0c;你需要…

SAP 日期函数

1.计算两个时间的时间差&#xff1a;cl_abap_tstmp>subtract DATA: tstmp1 TYPE timestampl, tstmp2 TYPE timestampl, diff TYPE tzntstmpl. " P代表秒 " 获取两个时间戳 tstmp1 20230911183000. tstmp2 20230911153000. diff cl_abap_tstmp&g…

第 53 期:MySQL 创建了用户却无法登陆

社区王牌专栏《一问一实验&#xff1a;AI 版》全新改版归来&#xff0c;得到了新老读者们的关注。其中不乏对 ChatDBA 感兴趣的读者前来咨询&#xff0c;表达了想试用体验 ChatDBA 的意愿&#xff0c;对此我们表示感谢 &#x1f91f;。 目前&#xff0c;ChatDBA 还在最后的准备…

HBuilderX打包uni-app项目成安卓app

目录 1、下载Android 离线SDK 2、Android Studio导入工程 3、生成签名 3.1、进入到jdk bin目录下&#xff0c;输入cmd执行命令keytool -genkey -alias wxsalias -keyalg RSA -keysize 2048 -validity 36500 -keystore wxs.keystore 生成签名 3.2、查看签名密钥keytool -lis…

APP 备案步骤

一、打开阿里云备案系统平台&#xff1a;aliyunbaike.com/go/beian 二、开始备案 三、填写APP名称并进行信息校验 四、填写主办者基础信息和主办者负责人信息 五、填写互联网信息,android打包的APK包可直接上传识别信息&#xff0c;ios需要手动填写信息 公钥和证书SHA-1指纹如…