分布式微服务 - 2.服务注册 - 5.Nacos

分布式微服务 - 2.服务注册 - 5.Nacos

项目示例:

  • 项目示例 - 2.服务注册 - 4.Nacos

内容提要:

  • 下载启动
  • 基本使用、隔离管理
  • Nacos集群:持久化配置、集群配置
  • 服务提供者集群

文档:

下载启动

  1. 官网下载Nacos并解压
  2. 解压后的文件夹中打开bin目录,并在此目录下打开命令行窗口,并输入startup.cmd -m standalone 命令启动(Windows系统环境下的单机模式运行,非集群模式)
  3. 浏览器中输入localhost:8848/nacos 打开nacos首页

基本使用

  1. 引入依赖(注意:此依赖仅用于nacos的服务注册功能,与之后nacos的服务配置功能使用的依赖不同)
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
  1. 在application.yml中做如下配置
spring:
  application:
    name: # 服务注册时使用的别名
  cloud:
    nacos:
      discovery:
        server-addr: # nacos的地址

隔离管理

nacos提供命名空间namespace/组别group/服务名 三层级来对注册的服务进行隔离管理。一般下,命名空间namespace用于区分开发、测试等环境。注意,不同命名空间namespace或组别group时,相同别名注册的微服务不能形成集群,且服务调用时默认不能跨命名空间或组别进行调用。

命名空间namespace

  1. 在nacos首页中的命名空间一页中,新建一个命名空间
  2. 在微服务的application.yml中对nacos进行配置时,使用spring.cloud.nacos.discovery.namespace属性配置,属性值为nacos首页上新建的命名空间的ID(命名空间不配置时,默认是public)

组别group

在微服务的application.yml中对nacos进行配置时,使用spring.cloud.nacos.discovery.group属性配置,属性值为任意(一般是约定好的组别名)(组别不配置时,默认是DEFAULT_GROUP)。

集群使用

nacos集群

nacos默认使用内置的derby数据库存储信息,但配置nacos集群时会因此造成多个nacos信息不一致的情况,因此nacos集群需要配置外部数据库(即进行持久化配置)。

持久化配置

nacos目前仅支持MySQL数据库。进行持久化配置之后,不仅可以解决nacos集群数据不一致问题,在重启nacos之后,数据不会再丢失。

配置步骤:

  1. 在nacos安装目录中下的conf目录下找到mysql-schema.sql文件,在mysql中新建一个数据库,并执行文件的sql语句创建表
  2. 在nacos的conf目录下修改application.properties文件,按照创建的库表为其添加以下内容,重启nacos
spring.datasource.platform=mysql

db.num=#数据库数量
db.url.0=jdbc:mysql://#ip地址和端口号/#数据库名?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=#数据库用户名
db.password=#数据库密码
集群配置

nacos配置集群时,必须至少要三个及以上。配置好nacos集群后,微服务注册时可以随便选择一个节点的ip及端口进行注册,所有nacos节点间会自动进行同步。但是,一般在nacos集群之前配置一个nginx,nginx依照自身的负载均衡选择nacos节点进行转发,不仅可以统一服务注册时的ip地址和端口号,而且可以在服务调用时通过nginx实现对nacos集群的负载均衡。

配置步骤:

  1. nacos下载解压后,完成持久化配置
  2. 在nacos的conf目录下复制cluster.conf.example文件并重命名为cluster.conf
  3. 清空cluster.conf文件的内容,并添加每个nacos集群节点的ip地址和端口号,如192.168.237.1:8848 (注意:ip地址不能是localhost或者127.0.0.1,必须是实际的ip地址)
  4. 复制nacos若干份(每一份就是nacos集群中的一个节点),在每一份nacos文件的conf目录下,修改application.properties文件中的server.port为每个节点的端口号
  5. 依次在每个nacos的bin目录中打开命令行窗口,输入startup.cmd 命令启动

服务提供者集群

若干个微服务注册时,只要使用相同的别名进行注册,即可形成服务提供者集群。但是一般来说,集群是用一个微服务仅以不同的端口启动若干个实例形成,因为假设一个API仅在集群的部分节点中拥有,其他节点没有该API,则服务调用负载均衡到没有API的节点时,会报错异常。

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值