Nacos服务注册发现和分布式配置

Nacos: Dynamic Naming and Configuration Service

1.Nacos安装(Windows)

1.下载安装包 github 里面alibaba 的nacos仓库https://github.com/alibaba/nacos,Release 稳定版本下载,解压

2.进入解压文件,在bin文件夹 打开终端,输入命令 startup.cmd -m standalone (-m 代表模式  standlone 代表单机启动)

3. 显示"nacos is starting with standalone",成功后复制网址到浏览器,输入默认账号密码(都是nacos)进行登录

 

2.Nacos基础(Windows)

springcloud组件中,springcloud common 中定义接口规范,定义了服务发现和注册的接口,nacos也会遵循这些接口。

使用Nacos服务地址和服务依赖会发生改变。

服务注册到nacos步骤

1.在父工程中添加 spring-cloud-alibaba管理依赖

<!--spring-cloud-alibaba管理依赖-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.5.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

2.注释掉原有的eurake依赖(如果有的话)

3.添加Nacos客户端依赖(在客户端pom中)

<!--nacos客户端依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

4.修改yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud_order?useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
  application:
    name: orderservice #order服务名称
  cloud:
    nacos:
      server-addr: localhost:8848

5.启动完成

Nacos服务分级存储模型

服务-集群(以机房划分集群,多个实例)-实例(一个服务的实例可能在多个集群中-容灾)

服务跨集群调用问题

局域网内访问速度快,延迟低

服务调用尽可能选择本地集群服务,跨集群调用延迟较高,本地集群不可访问时候,再去访问其他集群。如何配置实例的集群属性呢?

服务跨集属性

修改yml,配置集群名称(可-Dserver.port=8083 复制实例测试)

server:
  port: 8081
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud_user?useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
  application:
    name: userservice #user服务
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: SH

同一启动批次,集群名字相同,例子为上海

 

posted @ 2021-10-20 14:44  zuiAI0658  阅读(166)  评论(0)    收藏  举报