【Nacos】Nacos快速上手使用(注册中心)【详解】

news2024/12/25 10:28:51

文章目录

    • 1.基本介绍
    • 2. 使用Nacos服务注册中心
      • 2.1创建Nacos提供者集群 8001,8002
      • 2.2创建Nacos消费者集群 8887

1.基本介绍

Nacos(Dynamic Naming and Configuration Service)是服务中心的另外一种实现。从注册中心的功能实现角度,与Eureka等价,只是实现方式有所差异。与Eureka不同的是,Nacos注册中心类似于Tomcat,是独立启动的服务器。因此在我们的代码中,无需在专门创建一个工程用于启动注册中心。

一句话:Nacos就是代理已经过时的注册中心Eureka + 配置中心config

首先,下载好Nacos安装包(.zip压缩包),解压后,如下图
在这里插入图片描述
进入bin目录,打开命令行,输入如下命令

windows: startup.cmd -m standalone
linux: startup.sh -m standalone

出现类似redis大佛一样的玩意就是启动好了
在这里插入图片描述
访问地址:localhost:8848/nacos

2. 使用Nacos服务注册中心

下面我们使用Nacos作为服务注册中心,实现服务的注册与自动发现。
在这里插入图片描述
首先,在父工程中,导入如下依赖

    <dependencyManagement>
        <dependencies>
            <!--SpringCloudAlibaba-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.1.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--springCloud的依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--SpringBoot-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.2.2.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>

2.1创建Nacos提供者集群 8001,8002

在nacos-provider-8002服务提供者工程中,添加如下依赖

 <dependencies>
        <!--SpringCloud ailibaba nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

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

在nacos-provider2模块中,添加如下配置

server:
  port: 8002
spring:
  application:
    name: nacos-provider
  cloud:
    nacos:
      discovery:
       # nacos服务器地址
        server-addr: localhost:8848 

nacos-provider-8002模块代码中,代码如下

@RestController
@RequestMapping("/nacos")
public class RegistryProviderController {

    @GetMapping("/registry/hello")
    public String hello(String name) {
        return "hello, " + name;
    }
}

在启动类上加注解@EnableDiscoveryClient

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

启动两个服务,然后我们打开nacos官网
在这里插入图片描述
点击详情,可以看到我们编写的服务提供者
在这里插入图片描述

2.2创建Nacos消费者集群 8887

接着是nacos-consumer-9001模块,依赖,配置同nacos-provider-8002,就是server.port端口改为8887,这里不再赘述。代码如下

@Configuration
public class ClientConfig {

    @Bean
    public RestTemplate template() {
        return new RestTemplate();
    }
}
@RestController
@RequestMapping("/call")
public class RegistryConsumerController {

    @Autowired
    DiscoveryClient discoveryClient;

    @Autowired
    RestTemplate template;

    @GetMapping("/nacos")
    public String consumeNacos() {
        // 服务发现,获取nacos-provider-8002服务的服务注册信息(即服务注册表)
        List<ServiceInstance> instances = discoveryClient.getInstances("nacos-provider-8002");
        //随机发起调用在8001和8002之间
        Random random = new Random();
        int m = random.nextInt(2);
        ServiceInstance serviceInstance = instanceList.get(m);
        String uri = serviceInstance.getUri().toString();
		String url = uri + "/registry/hello?name={1}";
        ResponseEntity<String> response = template.getForEntity(url, String.class, "ikun");
        String result = response.getBody();
        return result;
    }
}

这时候我们启动消费者,发现多了一个集群
在这里插入图片描述
点击详情,可以看到我们编写的消费提供者
在这里插入图片描述

在这里插入图片描述
我们现在访问消费者
在这里插入图片描述
也是我们自己实现的随机选择8001和8002服务
在这里插入图片描述

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

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

相关文章

HumanNeRF:Free-viewpoint Rendering of Moving People from Monocular Video 翻译

HumanNeRF&#xff1a;单目视频中运动人物的自由视点绘制 引言。我们介绍了一种自由视点渲染方法- HumanNeRF -它适用于一个给定的单眼视频ofa人类执行复杂的身体运动&#xff0c;例如&#xff0c;从YouTube的视频。我们的方法可以在任何帧暂停视频&#xff0c;并从任意新的摄…

Python批量读取身份证信息录入系统和重命名

前言 大家好&#xff0c; 如果你对自动化处理身份证图片感兴趣&#xff0c;可以尝试以下操作&#xff1a;从身份证图片中快速提取信息&#xff0c;填入表格并提交到网页系统。如果你无法完成这个任务&#xff0c;我们将在“Python自动化办公2.0”课程中详细讲解实现整个过程。…

教师节送什么礼物给老师好 送礼送什么显高档又实用

教师节送什么礼物给老师好 送礼送什么显高档又实用 教师节即将到来&#xff0c;许多学生和家长都在思考如何表达对老师的感激之情。选择一份合适的礼物不仅能够表达心意&#xff0c;还能让老师感受到学生的关心和尊重。那么&#xff0c;送什么礼物给老师既显高档又实用呢&#…

字节跳动笔试题:自动校对程序:解决王大锤的拼写错误

字节跳动面试题:自动校对程序:解决王大锤的拼写错误 引言问题描述数据范围输入输出描述算法与数据结构伪代码C 代码实现代码解释测试用例边界情况复杂度分析结论后记引言 王大锤,一个出版社的编辑,每天面对海量的英文稿件,不胜其烦。然而,凭借他蓝翔技校挖掘机和程序设计…

[情商-13]:语言的艺术:何为真实和真相,所谓真相,就是别人想让你知道的真相!洞察谎言与真相!

目录 前言&#xff1a; 一、说话的真实程度分级 二、说谎动机分级&#xff1a;善意谎言、中性谎言、恶意谎言 三、小心&#xff1a;所谓真相&#xff1a;只说对自己有利的真相 四、小心&#xff1a;所谓真相&#xff1a;就是别人想让你知道的真相 五、小心&#xff1a;所…

Redis 事务:支持回滚吗?深入解析

今天我们要来探讨一个关于 Redis 事务的重要问题&#xff1a;Redis 事务支持回滚吗&#xff1f;这个问题在 Redis 的使用中经常被提及&#xff0c;对于正确理解和使用 Redis 事务至关重要。那么&#xff0c;让我们一起深入解析这个问题吧&#xff01; 一、Redis 事务简介 在了…

Linux命令分享 三 (ubuntu 16.04)

1、‘>’ >>输出重定向 用法&#xff1a;命令 参数 > 文件 ls > a.txt ‘>’ 将一个命令的结果不输出到屏幕上&#xff0c;输出到文件中&#xff0c;如果文件不存在就创建文件&#xff0c;如果存在就覆盖文件。 ls >> a.txt ‘>>’ 如果文件不存…

数据结构与算法02 - 复杂度

1、空间复杂度 空间复杂度指的是临时占用存储空间大小的量度&#xff1b;空间复杂度计算的是变量的个数&#xff0c;也采用大O渐进表示法&#xff1b;由于函数在运行的时候所需要的栈空间&#xff08;存储参数、局部变量、一些寄存器信息等&#xff09;在编译器已经确定好了&a…

BERN2(生物医学领域)命名实体识别与命名规范化工具

BERN2: an advanced neural biomedical named entity recognition and normalization tool 《Bioinformatics》2022 1 摘要 NER和NEN&#xff1a;在生物医学自然语言处理中&#xff0c;NER和NEN是关键任务&#xff0c;它们使得从生物医学文献中自动提取实体&#xff08;如疾病…

modelsim仿真流程

modelsim仿真流程 1、建立工程 project new "../prj" test.mpf2、添加rtl文件 project addfile "../test.v" verilog3、建立仿真库 vlib work4、编译rtl到仿真库中 vlog -sv -sv09compat defineT133 incdir"../rtl" test.v -work work5、加载…

【Python】6.基础语法(6)文件

文章目录 1. 文件是什么2. 文件路径3. 文件操作3.1 打开文件3.2 关闭文件3.3 写文件3.4 读文件 4. 关于中文的处理5. 使用上下文管理器 1. 文件是什么 变量是把数据保存到内存中。如果程序重启/主机重启, 内存中的数据就会丢失。 要想能让数据被持久化存储, 就可以把数据存储…

openGauss 之索引回表

一. 前言 ​ 在openGauss中如果表有索引信息&#xff0c;查询的谓词条件中又包含索引列&#xff0c;openGauss支持通过索引信息快速拿到需要访问元组的位置信息&#xff0c;然后直接到该位置上取出元组数据&#xff0c;称之为回表查询。如下所示&#xff0c;利用索引索引…

JS中this指向问题

首先&#xff0c;this的绑定和定义的位置无关&#xff0c;它的指向只和调用方式有关&#xff0c;this只有在运行时才知道指向谁。 一&#xff0c;默认绑定 默认绑定&#xff0c;也可以说是独立函数调用&#xff0c;这时this指向window。 function foo() {console.log(this) …

DataGrip数据迁移

第一步 第二步 第三步 第四步 选择你刚刚到处的文件即可

海信发布以旧换新举措,补贴力度、补贴链路、服务体验全面升级

9月7日&#xff0c;由中国家用电器商业协会主办的“海信全国十城联动以旧换新”发布会在北京举行。 据「TMT星球」了解&#xff0c;活动以“品质换新就选海信”为主题&#xff0c;旨在贯彻政府加大消费品以旧换新的战略部署&#xff0c;为我国家电行业绿色化、智能化、高端化高…

知名AIGC人工智能专家培训讲师唐兴通谈AI大模型数字化转型数字新媒体营销与数字化销售

在过去的二十年里&#xff0c;中国企业在数字营销领域经历了一场惊心动魄的变革。从最初的懵懂无知到如今的游刃有余&#xff0c;这一路走来&#xff0c;既有模仿学习的艰辛&#xff0c;也有创新突破的喜悦。然而&#xff0c;站在人工智能时代的门槛上&#xff0c;我们不禁要问…

最厉害顶尖新媒体营销专家培训讲师唐兴通谈数字营销社群营销私域运营大客户销售AIGC大模型创新思维数字化转型商业模式短视频内容社私域数字经济人工智能

​数字人工智能时代的营销进化&#xff1a;从临摹到自我革新 引言&#xff1a;从模仿到变革的时代拐点 中国企业在过去的几十年里&#xff0c;经历了从电子商务的初兴到搜索引擎营销&#xff0c;再到微博、微信以及短视频等多种数字营销形式的迅速发展。在这个过程中&#xf…

力扣最热一百题——最大子数组和

目录 题目链接&#xff1a;53. 最大子数组和 - 力扣&#xff08;LeetCode&#xff09; 题目描述 示例 提示&#xff1a; 解法一&#xff1a;动态规划 举例分析 时间复杂度 Java写法&#xff1a; C写法&#xff1a; 优化 总结 题目链接&#xff1a;53. 最大子数组和 …

「数学::质数」试除法 / Luogu P5736(C++)

概述 在质数的第一节我们来讲解试除法。 质数是指在大于1的自然数中只能被1和它自己整除的数。 我们可以利用这一除法性质对质数进行判定。 Luogu P5736&#xff1a; 输入 n 个不大于 10^5 的正整数。要求全部储存在数组中&#xff0c;去除掉不是质数的数字&#xff0c;依…

012.Oracle-索引

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…