Spring Cloud Alibaba中Nacos的安装(Windows平台)以及服务的发现

news2024/11/24 19:33:15

Spring Cloud Alibaba中Nacos的安装(Windows平台)以及服务的发现

  • 下载安装Nacos
  • 解压启动
  • 验证是否启动
  • 搭建一个简单的Spring Cloud Alibaba项目
    • Spring Cloud Alibaba 以及 Nacos的引入
      • 如何选择对应的版本
    • 服务的注册
    • Nacos相关组件的说明

下载安装Nacos

Github下载地址链接

往下滑找到Assets 选择对应的版本下载即可
在这里插入图片描述

解压启动

将得到的压缩包下载下来 然后解压到一个合适文件夹
在这里插入图片描述
bin目录下运行startup.cmd -m standalone 命令启动Nacos

执行命令Nacos以单机模式启动,而不是在集群中运行,其中的-m代表模式standalone意为单机

验证是否启动

浏览器输入以下地址访问Nacos控制台

http://本机IP:8848/nacos

如果不知道本机ip就打开命令行,输入ipconfig查看即可

如果顺利运行的话,上述地址应当返回以下界面
在这里插入图片描述

搭建一个简单的Spring Cloud Alibaba项目

这里我们要准备一个简单的SpringBoot项目,
如果不会创建,请参考我的这篇文章:
Maven项目转为SpringBoot项目

Spring Cloud Alibaba 以及 Nacos的引入

这里需要的引入的依赖就几个:Spring BootSpring Cloud AlibabaNacos相关组件
但是问题在于,Spring Cloud Alibaba对组件有着严格的版本要求,如果版本未选择对,项目就运行不起来。

而且对于Maven的镜像也要注意,有的镜像中没有对应组件的版本,会导致下载失败。

如何选择对应的版本

所以在版本选择这里,大家要先去GithubSpring Cloud Alibaba看看各版本适配说明去看看。这里推荐几个地址:

github上的spring-cloud-alibaba
在这里插入图片描述

alibab给出的版本说明
这里简单介绍了Spring Cloud AlibabaSpringBoot、及其一些所需要的组件(如Nacos、Seata等)对应的版本关系,虽然只是一小部分
在这里插入图片描述

官方给出的自动选择版本
这是我最喜欢的,它会自动帮你选择所需要的组件的版本信息,并且保证是适配
在这里插入图片描述
勾选上对应的Spring Boot版本以后,它会自动帮你选择Spring Cloud Alibaba以及你勾选的其他组件版本
在这里插入图片描述
选择完成以后点击下面的浏览
在这里插入图片描述
即可看到其创建的简单示例项目中的pom文件中的对应版本
在这里插入图片描述

服务的注册

这里我们要用到的几个依赖分别是:Spring BootSpring Cloud AlibabaNacos-Discovery(服务的注册与发现)三个主要的依赖

我这里选择的版本是:
Spring Boot版本

	<!--    spring boot的版本-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.4</version>
    </parent>

spring cloud alibaba以及nacos-discovery的版本

		  <!--        spring cloud alibaba的版本-->
        <spring-cloud-alibab.version>2021.0.5.0</spring-cloud-alibab.version>
        <!--        nacos-discovery的版本-->
        <spring-nacos.version>2021.0.5.0</spring-nacos.version>

这里也贴一下整个的pom文件信息

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <!--    Maven的版本-->
    <modelVersion>4.0.0</modelVersion>
    <!--    打包方式指定为war包-->
    <packaging>war</packaging>

    <!--    spring boot的版本-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.4</version>
    </parent>

    <!--    项目的一些基本信息-->
    <groupId>demo.example</groupId>
    <artifactId>NocosProjectResgister</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!--    全局的属性-->
    <properties>
        <!--        项目的源代码的Java版本-->
        <maven.compiler.source>11</maven.compiler.source>
        <!--        项目编译生成的字节码的目标Java版本-->
        <maven.compiler.target>11</maven.compiler.target>
        <!--        项目的源代码文件的字符编码-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!--        spring cloud alibaba的版本-->
        <spring-cloud-alibab.version>2021.0.5.0</spring-cloud-alibab.version>
        <!--        nacos-discovery的版本-->
        <spring-nacos.version>2021.0.5.0</spring-nacos.version>
    </properties>

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

        <!--        Nacos服务注册和发现的集成-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>${spring-nacos.version}</version>
        </dependency>

    </dependencies>

    <!--    需要集中管理的依赖 子模块可以直接引用而无需重复引入 -->
    <dependencyManagement>

        <dependencies>
            <!--            引入spring cloud alibaba -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibab.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!--    项目的构建配置,包括编译、打包、测试、部署等方面-->
    <build>
        <resources>
            <!--			构建项目过程中被复制到输出目录中,以便它们可以在应用程序运行时访问-->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <!--					项目内mybatis的dao配置文件-->
                    <include>**/*.xml</include>
                </includes>
            </resource>

            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <!--					资源文件-->
                    <include>**/*.*</include>
                </includes>
            </resource>
        </resources>

        <plugins>
            <!--			spring-boot中用于支持maven打包的插件-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <!--        打包出来的名称 一般是项目的缩写外加版本号 -->
        <finalName>npr</finalName>
    </build>

</project>

然后在application.yml中添加Nacos服务的地址:

#嵌入式web服务器的配置信息
server:
  #端口为9000
  port: 9000
  tomcat:
    #Tomcat容器的URI编码 确保能够正确解析包含非ASCII字符的URL
    uri-encoding: UTF-8

spring:
  #服务相关信息
  application:
    name: nacos_register
  #cloud中相关配置信息
  cloud:
    #nacos的配置信息
    nacos:
      discovery:
        #服务的地址 我这里是安装在本机上 默认是8848端口
        server-addr: 192.168.2.102:8848

进到nacos的控制台,看到有以下信息,即算注册成功

在这里插入图片描述

Nacos相关组件的说明

在我们选择组件时不难发现,这其中有两个nacos相关的组件:
nacos-discovery 和nacos-configuration
在这里插入图片描述
前者是用于服务的发现和注册

而后者是用于 Nacos服务的配置管理模块。它允许应用程序从 Nacos 服务器中动态获取其配置信息。这意味着你可以在应用程序运行时动态更改配置不需要重启服务

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

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

相关文章

Python如何解析json对象?

目录 一、JSON简介 二、Python的json模块 1. 加载JSON数据 2. 生成JSON数据 三、处理复杂的JSON数据 四、自定义JSON解析器 五、注意事项和最佳实践 六、总结 JSON&#xff08;JavaScript Object Notation&#xff09;作为一种轻量级的数据交换格式&#xff0c;在网络通…

https原理

首先说一下几个概念&#xff1a;对称加密、非对称加密 对称加密&#xff1a; 客户端和服务端使用同一个秘钥&#xff0c;分两种情况&#xff1a; 1、所有的客户端和服务端使用同一个秘钥&#xff0c;这个秘钥被泄漏后数据不再安全 2、每个客户端生成一个秘钥&…

嵌入式每日500(4)231104 (Flash类型定义、Flash常量定义、Flash函数)

文章目录 1.Flash类型定义&#xff08;两个结构体&#xff09;2.Flash常量定义&#xff08;3种&#xff09;3.Flash函数&#xff08;31个&#xff0c;FLASH分为两个区&#xff0c;一个是普通的存储空间&#xff0c;一个是选项字节OB&#xff0c;函数名里带OB的就是对选项字节空…

一文速通Sentinel熔断及降级规则

目录 基本介绍 熔断模式 状态机的三个状态 熔断降级规则 断路器熔断策略 慢调用 异常比例 异常数 基本介绍 熔断模式 主要是参考电路熔断&#xff0c;如果一条线路电压过高&#xff0c;保险丝会熔断&#xff0c;防止火灾。放到我们的系统中&#xff0c;如果某个目标…

Azure 机器学习 - 无代码自动机器学习的预测需求

了解如何在 Azure 机器学习工作室中使用自动化机器学习在不编写任何代码行的情况下创建时序预测模型。 此模型将预测自行车共享服务的租赁需求。 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;同济本复旦硕…

【C语言】指针初阶

✨个人主页&#xff1a; Anmia.&#x1f389;所属专栏&#xff1a; C Language &#x1f383;操作环境&#xff1a; Visual Studio 2019 版本 ​ 1.指针是什么&#xff1f; 指针理解的2个要点&#xff1a; 指针是内存中一个最小单元的编号&#xff0c;也就是地址平时口语中说的…

Vue elemen ui 移除上次校验与部分清除上次校验

场景&#xff1a; 可以切换类型&#xff0c;下面的输入框参数也会随着改变。 如果不清除上次的校验就会出现&#xff0c;之前的大陆企业的校验还会出现在香港企业的校验中 方法&#xff1a; watch:{ruleForm.paymentSubjectType:{ 通过监听表单的类型来调用 clearValidate方…

计算机网络之网络层(全)

网络层的功能 互联网在网络层的设计思路是&#xff0c;向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。 路由器在能够开始向输出链路传输分组的第一位之前&#xff0c;必须先接收到整个分组&#xff0c;这种机制称为&#xff1a;存储转发机制 异构网络互连 用…

transformers-Causal lanuage modeling

https://huggingface.co/docs/transformers/main/en/tasks/language_modelinghttps://huggingface.co/docs/transformers/main/en/tasks/language_modelingcausal lanuage model常用于文本生成。预测token系列中的下一个toekn&#xff0c;并且model只能关注左侧的token&#xf…

超声波清洗清洁力强怎么选、适合家用超声波清洗机推荐

因为各种原因很多导致很多小朋友从小就开始近视&#xff0c;佩戴眼镜&#xff0c;眼镜只要是戴上了就很难再摘下来&#xff0c;也有很多朋友从小到大都不知道清洗眼镜的重要性&#xff0c;眼镜长时间不清洗的话上面的细菌堪比茅厕这么脏&#xff01;所以眼镜清洗千万别忽视了&a…

vue2导出数据生成xlsx文件

1.在utils文件夹新建tool.js tool.js文件 import XEUtils from xe-utilsexport function exportCsv(csv, title) {const t XEUtils.toDateString(Date.now(), yyyy-MM-dd) // 当前日期const filename ${t title}.xlsx // 拼接文件名const blob new Blob([csv]) //创建一…

在Linux上编译gdal3.1.2指南

作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> 以Ubuntu 18编译gdal3.1.2为例,编译gdal3.1.2需要先编译proj库和geos库(可选)。我选择的proj库版本为proj-7.1.0,编译proj-7.1.0需要先编译tiff库和sqlite3。我选择的sqlite3的版本为…

玩转多个数据库,一个Itbuilder在线工具就搞定!

随着需要使用的数据库类型日渐繁多&#xff0c;开发运维等技术人员如何高效便捷的访问、操作和管理数据&#xff0c;成了一个难题。设计一个好的数据库&#xff0c;就像孩子从小打下的基础&#xff0c;很多项目的失败是由于缺乏适当的数据库设计。因此&#xff0c;选择正确的数…

版本控制系统-SVN

SVN Apache Subversion 通常被缩写成 SVN&#xff0c;是一个开放源代码的版本控制系统。 官网&#xff1a;https://subversion.apache.org 资料&#xff1a;https://svnbook.red-bean.com、https://www.runoob.com/svn/svn-tutorial.html 下载&#xff1a;https://sourceforg…

【LeetCode刷题-哈希】--217.存在重复元素

217.存在重复元素 class Solution {public boolean containsDuplicate(int[] nums) {Set<Integer> hashSet new HashSet<>();for(int i 0;i<nums.length;i){if(hashSet.contains(nums[i])){return true;}hashSet.add(nums[i]);}return false;} }

U盘格式化恢复怎么做?常用的3个方法分享!

“前段时间由于我的u盘中病毒了&#xff0c;我不得已把它格式化了&#xff0c;但是今天我在找一份重要的资料时才发现我的资料在u盘中被一起删除掉了&#xff0c;有什么方法可以帮我找回我u盘中的数据吗&#xff1f;” U盘可以为我们存储各种类型的文件&#xff0c;同时它也很便…

C++标准模板(STL)- 类型支持 (类型属性,is_volatile,is_trivial,is_const)

类型特性 类型特性定义一个编译时基于模板的结构&#xff0c;以查询或修改类型的属性。 试图特化定义于 <type_traits> 头文件的模板导致未定义行为&#xff0c;除了 std::common_type 可依照其所描述特化。 定义于<type_traits>头文件的模板可以用不完整类型实例…

SOLIDWORKS PDM缩短图纸从设计到发布时间

SOLIDWORKS线上协同设计、线上审核、版本管理、任务等大大缩短图纸从设计到发布时间。 在SOLIDWORKS PDM 中工作流程是整个系统的骨架和脉络&#xff0c;所有的文档都需要进入某一工作流程&#xff0c;所有的操作及权限&#xff0c;都依附于特定的工作流程。SOLIDWORKS PDM的工…

一文掌握Java Stream API

引言 Java Stream API 自 Java 8 引入以来&#xff0c;已成为处理集合数据的强大工具。它不仅提高了代码的可读性&#xff0c;还优化了性能&#xff0c;使得集合操作变得更加简洁和高效。本文将深入探讨如何利用 Stream API 的常用操作&#xff0c;帮助你更好地掌握这一强大的…

算法模板之队列解密 | 图文详解

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;数据结构、算法模板、汇编语言 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️模拟队列1.1 &#x1f514;用数组模拟实现队列1.1.1 &#x1f47…