• Nacos 注册中心入门及使用


    1. Nacos概述

    官方地址:https://nacos.io/zh-cn/

    下载地址 github地址:https://github.com/alibaba/nacos

    **面试题:**微服务间远程交互的过程?

    1. 先去注册中心查询服务的服务器地址
    2. 调用方给对方发送http请求

    1.1. 什么是 Nacos

    Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

    Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

    Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

    1.2. 为什么是Nacos

    常见的注册中心:

    1. Eureka(原生,2.0遇到性能瓶颈,停止维护)
    2. Zookeeper(支持,专业的独立产品。例如:dubbo)
    3. Consul(原生,GO语言开发)
    4. Nacos

    相对于 Spring Cloud Eureka 来说,Nacos 更强大。

    Nacos = Spring Cloud Eureka + Spring Cloud Config

    Nacos 可以与 Spring, Spring Boot, Spring Cloud 集成,并能代替 Spring Cloud Eureka, Spring Cloud Config。

    • 通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的动态变更。

    • 通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 实现服务的注册与发现。

    1.3. 可以干什么

    Nacos是以服务为主要服务对象的中间件,Nacos支持所有主流的服务发现、配置和管理。

    Nacos主要提供以下四大功能:

    1. 服务发现和服务健康监测
    2. 动态配置服务
    3. 动态DNS服务
    4. 服务及其元数据管理

    2.下载及安装

    2.1.下载

    下载地址:https://github.com/alibaba/nacos/releases

    下载完成后,window直接解压,并放在英文路径下
    在这里插入图片描述

    在mysql中新建一个数据库,命名为:nacos。在解压的文件夹中,找到conf下的nacos-mysql.sql文件,并导入到新建的数据库中。

    找到并修改conf下的application.properties文件中的连库信息

    # db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    # db.user.0=nacos
    # db.password.0=nacos
    
    • 1
    • 2
    • 3

    2.2.linux环境解压

      unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
      cd nacos/bin
    
    • 1
    • 2

    2.3.启动

    在解压文件的 bin目录 下,打开cmd窗口并输入命令

    window启动命令( standalone代表着单机模式运行,非集群模式 ):

    .\startup.cmd -m standalone
    
    • 1

    也可以 修改 startup.cmd 文件中 set MODE=“cluster”

    修改成:

    rem set MODE="cluster"
     
    set MODE="standalone"
    
    
    • 1
    • 2
    • 3
    • 4

    linux 启动命令

    sh startup.sh -m standalone
    
    • 1

    在这里插入图片描述

    2.4.访问

    启动完成后,访问http://localhost:8848/nacos,可进入nacos的管理页面,(用户名和密码默认都是 nacos / nacos )

    在这里插入图片描述

    2.5.linux 下安装

    2.5.1.安装jdk

    2.5.2.将 nacos 压缩文件复制到 /usr/local

    2.5.3.解压

    # 安装 解压工具
    $ yum install -y unzip zip
    
    
    # 解压 nacos.zip 文件
    $ cd /usr/local
    $ unzip nacos-server-2.0.0.zip
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.5.4.单例启动

    # 跳转到 nacos/bin
    $ cd nacos/bin
    
    # 单例启动
    $ sh startup.sh -m standalone
    
    • 1
    • 2
    • 3
    • 4
    • 5
    /usr/local/jdk/bin/java  -Xms512m -Xmx512m -Xmn256m -Dnacos.standalone=true -Dnacos.member.list= -Djava.ext.dirs=/usr/local/jdk/jre/lib/ext:/usr/local/jdk/lib/ext -Xloggc:/usr/local/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/usr/local/nacos/plugins/health,/usr/local/nacos/plugins/cmdb -Dnacos.home=/usr/local/nacos -jar /usr/local/nacos/target/nacos-server.jar  --spring.config.additional-location=file:/usr/local/nacos/conf/ --logging.config=/usr/local/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
    nacos is starting with standalone
    nacos is starting,you can check the /usr/local/nacos/logs/start.out
    
    
    • 1
    • 2
    • 3
    • 4

    2.5.5.外部访问

    关闭防火墙(或者 打开默认8848端口), 在 外网通过 浏览器 访问

    命令: firewall-cmd --query-port=8848/tcp
    结果:no
    
    命令: firewall-cmd --add-port=8848/tcp
    结果:success
    
    命令:firewall-cmd --query-port=8848/tcp
    结果:yes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.5.6.启动异常

    在mysql中新建一个数据库,命名为:nacos。

    在解压的文件夹中,找到conf下的nacos-mysql.sql文件,并导入到新建的数据库中。

    找到并修改conf下的application.properties文件中的连库信息

    #*************** Config Module Related Configurations ***************#
    ### If use MySQL as datasource:
    # spring.datasource.platform=mysql
    
    ### Count of DB:
    # db.num=1
    
    ### Connect URL of DB:
    # db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    # db.user.0=nacos
    # db.password.0=nacos
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    3.注册项目

    3.1.创建项目

    创建 模块 , 选择 https://start.aliyun.com

    在这里插入图片描述

    在这里插入图片描述

    选择 Spring Cloud Alibaba / Nacos Service Discovery

    在这里插入图片描述

    3.2. pom.xml 导入 依赖

    <dependency>
    	<groupId>org.springframework.bootgroupId>
    	<artifactId>spring-boot-starter-webartifactId>
    dependency>
    <dependency>
    	<groupId>com.alibaba.cloudgroupId>
    	<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
        <properties>
            <java.version>1.8java.version>
            <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
            <spring-boot.version>2.3.7.RELEASEspring-boot.version>
            <spring-cloud-alibaba.version>2.2.2.RELEASEspring-cloud-alibaba.version>
        properties>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    	<dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.bootgroupId>
                    <artifactId>spring-boot-dependenciesartifactId>
                    <version>${spring-boot.version}version>
                    <type>pomtype>
                    <scope>importscope>
                dependency>
                <dependency>
                    <groupId>com.alibaba.cloudgroupId>
                    <artifactId>spring-cloud-alibaba-dependenciesartifactId>
                    <version>${spring-cloud-alibaba.version}version>
                    <type>pomtype>
                    <scope>importscope>
                dependency>
            dependencies>
        dependencyManagement>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    3.3.配置文件 中 配置地址

    # 应用名称
    spring.application.name=sca-nacos-provider
    # 应用服务 WEB 访问端口
    server.port=10001
    
    
    # Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html
    # Nacos认证信息
    spring.cloud.nacos.discovery.username=nacos
    spring.cloud.nacos.discovery.password=nacos
    # Nacos 服务发现与注册配置,其中子属性 server-addr 指定 Nacos 服务器主机和端口
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
    # 注册到 nacos 的指定 namespace,默认为 public
    spring.cloud.nacos.discovery.namespace=public
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    3.4.在启动配置类 增加 注解

    @EnableDiscoveryClient
    
    • 1

    3.5.在 Nacos中 查看服务

    启动项目后 可以看到

    在这里插入图片描述

    点击 详细 查看

    在这里插入图片描述

    4.开启多实例

    4.1.配置启动名称及端口

    在这里插入图片描述

    在这里插入图片描述

    4.2.复制实例配置

    在这里插入图片描述

  • 相关阅读:
    猿创征文|C++来时路 _ 重温经典之C++类和对象 | 三大特性之一 - 封装 | 腾讯面试题
    48种数据分析可视化图表
    使用mybatis拦截器模糊查询统一处理%_字符
    一文了解Spring Boot启动类SpringApplication
    快速入门ESP32——开发环境配置PlatformIO IDE
    【uniapp】proxy 代理切换至线上测试地址调试接口
    Keka v1.3.5(mac压缩解压工具)
    Fluent批处理及.jou和.scm文件编写的相关操作
    中英文互译在线翻译
    小程序源码:求职招聘微信小程序源码下载v4.1.78
  • 原文地址:https://blog.csdn.net/yuanchun05/article/details/127129014