Nacos注册中心的安装及使用

1. 概述

  • Nacos(DynamicNaming and Configuration Service)是一个应用于服务注册与发现、配置管理的平台。
  • Nacos 致力于发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,可以快速实现动态服务发现、服务配置、服务元数据及流量管理。
  • Nacos 可以更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

2. 关键特性

  • 服务发现和服务健康监测
    • 动态服务发现对以服务为中心的(例如微服务和云原生)应用架构方式非常关键。Nacos支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服务发现。Nacos也提供实时健康检查,以防止将请求发往不健康的主机或服务实例。借助Nacos,您可以更容易地为您的服务实现断路器。
  • 动态配置服务
    • 动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。
    • 动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。
    • 配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。
  • 动态 DNS 服务
    • 通过支持权重路由,动态DNS服务能让您轻松实现中间层负载均衡、更灵活的路由策略、流量控制以及简单数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以DNS协议为基础的服务发现,以消除耦合到厂商私有服务发现API上的风险。
  • 服务及其元数据管理
    • Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。
  • 官网:
    https://nacos.io/zh-cn/index.html
    

3. Nacos 的安装和配置

3.1 准备工作

  • 首先,查看电脑是否已经配置JAVA_HOME环境变量在这里插入图片描述
  • 之后,确保MySQL版本在5.7以上(MariaDB10.5以上)在这里插入图片描述

3.2 下载与安装

  • 在官网下载Nacos,官网地址
    https://github.com/alibaba/nacos/releases
    
  • 选择下载zip包在这里插入图片描述
  • 之后解压Nacos压缩文件,最好不要解压到中文目录下

3.3 初始化配置

  • 登录MySQL,执行对应的脚本,命令为
    source  盘符:/nacos-mysql.sql
    
  • 执行成功后,会创建一个名为 nacos_config 的数据库,会有多个表。
  • 之后,打开 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_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    db.user.0=root
    db.password.0=root
    

4. Nacos服务的启动和访问

4.1 启动Nacos服务

  • Linux启动命令(standalone代表着单机模式运行,非集群模式):
    ./startup.sh -m standalone
    
  • Windows启动命令(standalone代表着单机模式运行,非集群模式):
    startup.cmd -m standalone
    

4.2 访问Nacos服务

  • 访问如下网址,默认账号密码都是nacos
    http://localhost:8848/nacos
    

在这里插入图片描述

5. 服务注册与调用入门

5.1业务描述
  • 创建两个项目Module分别为服务提供者和服务消费者,两者都要注册到NacosServer中(这个server本质上就是一个web服务,端口默认为8848),然后服务提供者可以为服务消费者提供远端调用服务(例如支付服务为服务提供方,订单服务为服务消费方),如图所示:在这里插入图片描述
5.2 生产者服务创建及注册
  • 创建服务提供者工程(module名为sca-provider),继承parent工程(01-sca),其pom.xml文件内容如下:
    <dependencies>
    	<!-- web服务依赖 -->
    	<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>
    	</dependency>
    </dependencies>
    
  • 创建并修改配置文件application.yml(或者application.properties),实现服务注册,关键代码如下:
    server:
       port: 8081
    spring:
      application:
        name: sca-provider
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848
    
    • 服务名不要使用下划线(“_”),应使用横杠(“-”),这是规则。
  • 创建启动类
    package com.lofasp;
    
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.context.config.annotation.RefreshScope;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * @Author Sky-haohao
     * @Date 2021/9/15 10:43
     * @Version 1.0
     */
    @Slf4j
    @SpringBootApplication
    public class ProviderApplication {
         
        public static void main(String[] args) {
         
            SpringApplication.run(ProviderApplication.class, args);
        }
    }
    
  • 定义处理请求的控制层对象和方法ProviderController:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值