Nacos:服务注册及配置中心

Spring Cloud Alibaba Nacos:服务注册及配置中心

一、Nacos简介

1. Nacos简介

​ Nacos是由阿里巴巴提供的一款专门构建云本地应用的动态服务发现、配置中心和服务管理平台。在Spring Cloud Alibaba中常使用Nacos作为注册中心和分布式配置中心。

​ Nacos 官网地址:

https://nacos.io/en-us/

​ Nacos github地址:

https://github.com/alibaba/nacos

2. Nacos特性

2.1 服务发现和管理

​ 动态服务发现是以服务为中心(例如微服务或云原生)体系结构的关键。Nacos支持基于DNS和基于RPC(Dubbo,gRPC)的服务发现,并提供实时服务运行状况检查,以防止将路由请求发送到不正常的主机或服务实例。使用Nacos,您还可以轻松地为您的服务安装断路器。

2.2 动态配置服务

​ 动态配置服务使您可以集中,外部化和动态地管理所有环境中的配置。动态配置使您不必在配置更新时重新部署应用程序和服务。您可以实施无状态服务并轻松实现按需扩展。

2.3 动态DNS服务

​ 通过支持加权路由,动态DNS(域名系统,Domain Name System)服务可帮助您在数据中心内的生产环境中实现中间层负载均衡,更灵活的路由,流量控制和DNS解析服务。动态DNS服务还使您更容易实现基于DNS的服务发现,从而最大程度地降低了耦合到特定于供应商的服务发现API的风险。

3. 为什么使用Nacos

3.1 易于使用
  • 动态服务发现,配置管理和动态DNS服务的一站式解决方案。
  • 20多种现成的功能,以服务为中心的体系结构。
  • 轻巧的生产就绪控制台。
3.2 更适合云架构
  • 无缝支持kubernetes和Spring Cloud
  • 易于在流行的公共云(例如AliCloud和AWS(亚马逊AWS(Amazon Web Services)))上部署和运行
  • 支持多租户和多环境
3.3 生产等级
  • 源自阿里巴巴集团经过时间考验的内部产品
  • 支持数百万种服务的大规模方案
  • 具有企业级SLA(服务级别协议)的开源产品
3.4 丰富的互联网应用场景亲和力
  • 支持速率调节,大型促销计划以及多区域双活架构
  • 直接或稍微扩展支持各种基于Internet的相关用例
  • 流量调度和服务治理

二、基于Docker安装Nacos

1. 拉取Nacos镜像

docker pull nacos/nacos-server

2. 创建目录及配置文件

​ 创建两个目录,分别是初始化目录和日志目录。

mkdir -p /root/nacos/init.d /root/nacos/logs

​ 新建配置文件

vim  /root/nacos/init.d/custom.properties

​ 在文件中添加以下内容: spring-boot-starter-actuator 启动器的配置

management.endpoints.web.exposure.include=*

3. 创建并启动容器

​ http端口8848,gRPC端口9848,两个端口都需要开启(2.x版本以后Nacos,1.x版本只需要开启8848端口);Mode=standalone 单机版;–restart always 自动启动容器;Nacos默认使用内置Derby(Apache的一款小巧数据库)数据库。

docker run -d -p 8848:8848 -p 9848:9848 -e MODE=standalone -e PREFER_HOST_MODE=hostname -v /root/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties -v /root/nacos/logs:/home/nacos/logs --restart always --name nacos nacos/nacos-server

4. 访问Nacos可视化管理界面

​ 启动过程需要花费一定时间,需要稍等一会才能访问。容器启动成功后,访问: http://192.168.8.128:8848/nacos 。默认的用户名和密码都是nacos。入口如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jyzYhU0P-1659528671663)(images/nacos2.png)]

三、使用Nacos作为注册中心

1 创建父工程

​ 创建父工程 alibaba_parent

1.1 POM依赖
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.12.RELEASE</version>
</parent>
<dependencyManagement>
    <dependencies>
        <!-- spring cloud 总体依赖版本管理 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Hoxton.SR12</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
        <!-- spring cloud alibaba 总体依赖版本管理 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.2.7.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
</dependencies>

2. 使用Nacos作为Dubbo的注册中心

2.1 创建API服务接口工程

​ 创建工程 alibaba_dubbo_api

2.1.1 编辑服务接口
public interface TestAPI {
   
    String sayHello(String name);
}
2.2 创建provider服务提供者工程

​ 创建工程alibaba_dubbo_provider

2.2.1 POM依赖
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <!-- dubbo技术在spring cloud alibaba技术栈中的必要依赖
         且需要另外一个必要依赖。commons-lang3
     -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-dubbo</artifactId>
    </dependency>
    <!-- 过往版本中必要,现版本中已修补此BUG -->
    <dependency>
        <groupId>com.alibaba.spring</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>1.0.11</version
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值