SpringCloud(第十七章 SpringCloud Alibaba Nacos服务注册和配置中心)

一、Nacos简介

1.为什么叫Nacos

前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service。

2.是什么

1.一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
2.Nacos: Dynamic Naming and Configuration Service
3.Nacos就是注册中心 + 配置中心的组合
等价于
Nacos = Eureka+Config +Bus

3.能干嘛

1.替代Eureka做服务注册中心
2.替代Config做服务配置中心

4.去哪下

1.https://github.com/alibaba/Nacos
2.官网文档
https://nacos.io/zh-cn/index.html
https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#_spring_cloud_alibaba_nacos_discovery

5.各种注册中心比较

在这里插入图片描述

据说Nacos在阿里巴巴内部有超过10万的实例运行,已经过了类似双十一等各种大型流量的考验。

二、安装并运行Nacos

1.本地Java8 + Maven环境已经OK
2.先从官网下载Nacos

https://github.com/alibaba/nacos/releases
在这里插入图片描述

3.解压安装包,直接运行bin目录下的startup.cmd
在这里插入图片描述
4.命令运行成功后直接访问http://localhost:8848/nacos

默认账号密码都是nacos

5.结果页面
在这里插入图片描述

三、Nacos作为服务注册中心演示

1.官网文档

https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#_spring_cloud_alibaba_nacos_config

2.基于Nacos的服务提供者

2.1 新建Module

cloudalibaba-provider-payment9001

2.2 改pom
2.2.1 改父pom(在父模块添加cloud alibaba依赖)

<dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.1.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

2.2.2 改本pom

 
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <parent>
        <artifactId>mscloud</artifactId>
        <groupId>com.atguigu.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <artifactId>cloudalibaba-provider-payment9001</artifactId>

    <dependencies>
        <!--SpringCloud ailibaba nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- SpringBoot整合Web组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--日常通用jar包配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

2.3 新建yml

server:
  port: 9001

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #配置Nacos地址

management:
  endpoints:
    web:
      exposure:
        include: '*'

2.4 主启动类

package com.atgugu.cloudalibaba;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;


@EnableDiscoveryClient
@SpringBootApplication
public class PaymentMain9001
{
    public static void main(String[] args) {
            SpringApplication.run(PaymentMain9001.class, args);
    }
}

2.5 业务类

 
package com.atgugu.cloudalibaba.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

/**
 * @auther zzyy
 * @create 2019-12-03 16:05
 */
@RestController
public class PaymentController
{
    @Value("${server.port}")
    private String serverPort;

    @GetMapping(value = "/payment/nacos/{id}")
    public String getPayment(@PathVariable("id") Integer id)
    {
        return "nacos registry, serverPort: "+ serverPort+"\t id"+id;
    }
}

2.6 测试

http://localhost:9001/payment/nacos/1

2.6.1 nacos控制台
在这里插入图片描述

nacos服务注册中心+服务提供者9001都OK了

2.7 为了下一章节演示nacos的负载均衡,参照9001新建9002

1.新建cloudalibaba-provider-payment9002
2.9002其它步骤你懂的
3.或者取巧不想新建重复体力劳动,直接拷贝虚拟端口映射
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.基于Nacos的服务消费者

3.1 新建Module

cloudalibaba-consumer-nacos-order83

3.2 改pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>mscloud03</artifactId>
        <groupId>com.atguigu.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>cloudalibaba-consumer-nacos-order83</artifactId>



    <dependencies>
        <!--SpringCloud ailibaba nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- 引入自己定义的api通用包,可以使用Payment支付Entity -->
        <dependency>
            <groupId>com.atguigu.springcloud</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
        <!-- SpringBoot整合Web组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--日常通用jar包配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

为什么nacos支持负载均衡?
在这里插入图片描述
3.3 新建yml

server:
  port: 83


spring:
  application:
    name: nacos-order-consumer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848


#消费者将要去访问的微服务名称(注册成功进nacos的微服务提供者)
service-url:
  nacos-user-service: http://nacos-payment-provider 

3.4 主启动类

package com.atguigu.springcloud.alibaba;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * @auther zzyy
 * @create 2020-02-10 12:01
 */
@EnableDiscoveryClient
@SpringBootApplication
public class OrderNacosMain83
{
    public static void main(String[] args)
    {
        SpringApplication.run(OrderNacosMain83.class,args);
    }
} 

3.5 业务类
3.5.1 配置类ApplicationContextBean

package com.atguigu.springcloud.alibaba.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * @auther zzyy
 * @create 2020-02-10 12:01
 */
@Configuration
public class ApplicationContextBean
{
    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate()
    {
        return new RestTemplate();
    }
}

3.5.2 controller类

package com.atguigu.springcloud.alibaba.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;

/**
 * @auther zzyy
 * @create 2020-02-10 12:02
 */
@RestController
public class OrderNacosController
{
    @Resource
    private RestTemplate restTemplate;

    @Value("${service-url.nacos-user-service}")
    private String serverURL;

    @GetMapping("/consumer/payment/nacos/{id}")
    public String paymentInfo(@PathVariable("id") Long id)
    {
        return restTemplate.getForObject(serverURL+"/payment/nacos/"+id,String.class);
    }

}

3.6 测试
3.6.1 nacos控制台
在这里插入图片描述

地址:http://localhost:83/consumer/payment/nacos/13
83访问9001/9002,轮询负载OK

4.服务注册中心对比

4.1 Nacos全景图所示
在这里插入图片描述

4.2 Nacos和CAP
在这里插入图片描述

在这里插入图片描述

4.3 切换

Nacos 支持AP和CP模式的切换

1、 C是所有节点在同一时间看到的数据是一致的;而A的定义是所有的请求都会收到响应。
2、何时选择使用何种模式?
一般来说,
如果不需要存储服务级别的信息且服务实例是通过nacos-client注册,并能够保持心跳上报,那么就可以选择AP模式。当前主流的服务如 Spring cloud 和 Dubbo 服务,都适用于AP模式,AP模式为了服务的可能性而减弱了一致性,因此AP模式下只支持注册临时实例。
3、 如果需要在服务级别编辑或者存储配置信息,那么 CP 是必须,K8S服务和DNS服务则适用于CP模式。
CP模式下则支持注册持久化实例,此时则是以 Raft 协议为集群运行模式,该模式下注册实例之前必须先注册服务,如果服务不存在,则会返回错误。
4、 curl -X PUT ‘$NACOS_SERVER:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=CP’

四、Nacos作为服务配置中心演示

1.Nacos作为配置中心-基础配置

1.1 新建Module

cloudalibaba-config-nacos-client3377

1.2 改pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>mscloud03</artifactId>
        <groupId>com.atguigu.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>cloudalibaba-config-nacos-client3377</artifactId>



    <dependencies>
        <!--nacos-config-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!--nacos-discovery-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--web + actuator-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--一般基础配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>
 

1.3 新建yml(两个yml)

为什么配置两个?
1、Nacos同springcloud-config一样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正常启动。
2、springboot中配置文件的加载是存在优先级顺序的,bootstrap优先级高于application

1.3.1 bootstrap

# nacos配置
server:
  port: 3377

spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #Nacos服务注册中心地址
      config:
        server-addr: localhost:8848 #Nacos作为配置中心地址
        file-extension: yaml #指定yaml格式的配置
 
 
# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}

1.3.2 application

spring:
  profiles:
    active: dev # 表示开发环境

1.4 主启动类

package com.atguigu.springcloud.alibaba;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * @auther zzyy
 * @create 2020-02-10 16:51
 */
@EnableDiscoveryClient
@SpringBootApplication
public class NacosConfigClientMain3377
{
    public static void main(String[] args) {
            SpringApplication.run(NacosConfigClientMain3377.class, args);
    }
}
 

1.5 业务类

package com.atguigu.springcloud.alibaba.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @auther zzyy
 * @create 2020-02-10 16:55
 */
@RestController
@RefreshScope //在控制器类加入@RefreshScope注解使当前类下的配置支持Nacos的动态刷新功能。
public class ConfigClientController
{
    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/config/info")
    public String getConfigInfo() {
        return configInfo;
    }
}

@RefreshScope注解作用:
在这里插入图片描述

1.6 在Nacos中添加配置信息

Nacos中的匹配规则

1.6.1 理论

Nacos中的dataid的组成格式及与SpringBoot配置文件中的匹配规则

官网:

https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html

在这里插入图片描述

 最后公式:
${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

1.6.2 实操
1.6.2.1 配置新增
在这里插入图片描述
1.6.2.2 Nacos界面配置对应
在这里插入图片描述

设置DataId
1、公式:
s p r i n g . a p p l i c a t i o n . n a m e − {spring.application.name}- spring.application.name{spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
2、prefix 默认为 spring.application.name 的值
3、spring.profile.active 即为当前环境对应的 profile,可以通过配置项 spring.profile.active 来配置。
4、file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置
5、小总结
在这里插入图片描述

1.6.2.3 历史配置

Nacos会记录配置文件的历史版本默认保留30天,此外还有一键回滚功能,回滚操作将会触发配置更新

回滚:
在这里插入图片描述
1.7 测试

1、启动前需要在nacos客户端-配置管理-配置管理栏目下有对应的yaml配置文件
2、运行cloud-config-nacos-client3377的主启动类
3、调用接口查看配置信息
地址:http://localhost:3377/config/info

1.8 自带动态刷新

修改下Nacos中的yaml配置文件,再次调用查看配置的接口,就会发现配置已经刷新

2.Nacos作为配置中心-分类配置

2.1 问题

多环境多项目管理:
1、问题1:
实际开发中,通常一个系统会准备
dev开发环境
test测试环境
prod生产环境。
如何保证指定环境启动时服务能正确读取到Nacos上相应环境的配置文件呢?
2、问题2:
一个大型分布式微服务系统会有很多微服务子项目,
每个微服务项目又都会有相应的开发环境、测试环境、预发环境、正式环境…
那怎么对这些微服务配置进行管理呢?

2.2 Nacos的图形化管理界面
2.2.1 配置管理
在这里插入图片描述

2.2.2 命名空间
在这里插入图片描述
2.3 Namespace+Group+Data ID三者关系?为什么这么设计?

1、是什么
类似Java里面的package名和类名
最外层的namespace是可以用于区分部署环境的,Group和DataID逻辑上区分两个目标对象。
2、三者情况
在这里插入图片描述
2.1、默认情况:
Namespace=public,Group=DEFAULT_GROUP, 默认Cluster是DEFAULT
2.2、Nacos默认的命名空间是public,Namespace主要用来实现隔离。
比方说我们现在有三个环境:开发、测试、生产环境,我们就可以创建三个Namespace,不同的Namespace之间是隔离的。
2.3、Group默认是DEFAULT_GROUP,Group可以把不同的微服务划分到同一个分组里面去
2.4、Service就是微服务;一个Service可以包含多个Cluster(集群),Nacos默认Cluster是DEFAULT,Cluster是对指定微服务的一个虚拟划分。
比方说为了容灾,将Service微服务分别部署在了杭州机房和广州机房,
这时就可以给杭州机房的Service微服务起一个集群名称(HZ),
给广州机房的Service微服务起一个集群名称(GZ),还可以尽量让同一个机房的微服务互相调用,以提升性能。
2.5、最后是Instance,就是微服务的实例。

2.4 Case

三种方案加载配置

2.4.1 DataID方案

1、指定spring.profile.active和配置文件的DataID来使不同环境下读取不同的配置
2、默认空间+默认分组+新建dev和test两个DataID
2.1、新建dev配置DataID
在这里插入图片描述
2.2 新建test配置DataID
在这里插入图片描述
3、通过spring.profile.active属性就能进行多环境下配置文件的读取
在这里插入图片描述
4、测试
地址:http://localhost:3377/config/info
ps: 配合什么就加载什么

2.4.2 Group方案

1、通过Group实现环境区分
新建Group
在这里插入图片描述
2、在nacos图形界面控制台上新建配置文件DataID
在这里插入图片描述
3、bootstrap + application
在config下增加一条group的配置即可。
可配置为DEV_GROUP或TEST_GROUP在这里插入图片描述

2.4.3 Namespace方案

1、新建dev/test的Namespace
(注意下面的命名空间ID:)在这里插入图片描述
2、回到服务管理-服务列表查看
在这里插入图片描述
3、按照域名配置填写
在这里插入图片描述
4、yml
4.1、bootstrap
在这里插入图片描述
4.2、application
在这里插入图片描述

五、Nacos集群和持久化配置(重要)

1.官网说明

https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

1.1 官网架构图写的
在这里插入图片描述
1.2 上图官网翻译,真实情况
在这里插入图片描述
1.3 说明

默认Nacos使用嵌入式数据库实现数据的存储。所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。
为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只支持MySQL的存储。

1.3.1 按照上述,我们需要mysql数据库
1.3.2 官网说明

https://nacos.io/zh-cn/docs/deployment.html

重点说明
在这里插入图片描述
在这里插入图片描述

2.Nacos持久化配置解释

2.1 Nacos默认自带的是嵌入式数据库derby

https://github.com/alibaba/nacos/blob/develop/config/pom.xml

2.2 derby到mysql切换配置步骤

1、执行脚本

  1. nacos-server-1.1.4\nacos\conf目录下找到sql脚本
  2. nacos-mysql.sql
  3. 执行脚本(在数据新建nacos-config库,并执行nacos-mysql脚本)

2、改配置文件
nacos-server-1.1.4\nacos\conf目录下找到application.properties(添加如下配置)

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

2.3 启动Nacos,可以看到是个全新的空记录界面,以前是记录进derby,现在是记录到mysql中

3.Linux版Nacos + MySQL生产环境配置

前提条件:1个nginx + 3个nacos注册中心 + 1个mysql

3.1 Nacos下载Linux版
在这里插入图片描述

网址:https://github.com/alibaba/nacos/releases/tag/1.1.4
nacos-server-1.1.4.tar.gz

3.1.1 解压后安装
在这里插入图片描述
3.2 集群配置步骤(重点)
3.2.1 Linux服务器上mysql数据库配置
(1)SQL脚本在哪里?
在这里插入图片描述
(2)sql语句源文件

nacos-mysql.sql

(3)自己Linux机器上的Mysql数据库粘贴

执行后结果如下:
在这里插入图片描述
3.2.2 application.properties配置
(1)位置
在这里插入图片描述
(2)内容

application.properties文件打开后的最后面,配置如下内容:

spring.datasource.platform=mysql
 
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

在这里插入图片描述
3.2.3 Linux服务器上nacos的集群配置cluster.conf
(1)梳理出3台nacos机器的不同服务端口号
(2)复制出cluster.conf
在这里插入图片描述
在这里插入图片描述

(3)内容
在这里插入图片描述

这个IP不能写127.0.0.1,必须是
Linux命令hostname -i能够识别的IP
在这里插入图片描述

5.2.4 编辑Nacos的启动脚本startup.sh,使它能够接受不同的启动端口
(1)/mynacos/nacos/bin 目录下有startup.sh
(2)在什么地方,修改什么,怎么修改
(3)思考

1、/mynacos/nacos/bin 目录下有startup.sh
2、平时单机版的启动,都是./startup.sh即可。
3、但是
4、集群启动,我们希望可以类似其它软件的shell命令,传递不同的端口号启动不同的nacos实例。
命令:./startup.sh -p 3333 表示启动端口号为3333的nacos服务器实例,和上一步的cluster.conf配置的一致。

(4)修改内容
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(5)执行方式
在这里插入图片描述
5.2.5 Nginx的配置,由它作为负载均衡器
(1)修改nginx的配置文件
在这里插入图片描述

(2)nginx.conf
在这里插入图片描述
在这里插入图片描述

(3)按照指定启动
在这里插入图片描述
5.2.6 截止到此处,1个Nginx+3个nacos注册中心+1个mysql
(1)测试通过nginx访问nacos

http://ip地址:1111/nacos/#/login
eg:http://192.168.111.144:1111/nacos/#/login

(2)新建一个配置测试
在这里插入图片描述

(3)linux服务器的mysql插入一条记录
在这里插入图片描述
5.3 测试

微服务cloudalibaba-provider-payment9002启动注册进nacos集群

(1)yml

server:
  port: 9002

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        #配置Nacos地址
        #server-addr: localhost:8848
        # 换成nginx的1111端口,做集群
        server-addr: 192.168.111.144:1111


management:
  endpoints:
    web:
      exposure:
        include: '*'

(2)结果
在这里插入图片描述
5.4 高可用小总结
在这里插入图片描述

ps:尚硅谷SpringCloud学习笔记

SpringCloud(第一章 零基础理论入门)
SpringCloud(第二章 从2.2.x和H版开始说起)
SpringCloud(第三章 关于Cloud各种组件的停更/升级/替换)
SpringCloud(第四章 服务架构编码构建)
SpringCloud(第五章 Eureka服务注册与发现)
SpringCloud(第六章 Zookeeper服务注册与发现)
SpringCloud(第七章 Consul服务注册与发现)
SpringCloud(第八章 Ribbon负载均衡服务调用)
SpringCloud(第九章 OpenFeign服务接口调用)
SpringCloud(第十章 Hystrix断路器)
SpringCloud(第十一章 Gateway新一代网关)
SpringCloud(第十二章 SpringCloud Config 分布式配置中心)
SpringCloud(第十三章 SpringCloud Bus 消息总线)
SpringCloud(第十四章 SpringCloud Stream 消息驱动)
SpringCloud(第十五章 SpringCloud Sleuth 分布式请求链路跟踪)
SpringCloud(第十六章 SpringCloud Alibaba 入门简介)
SpringCloud(第十七章 SpringCloud Alibaba Nacos服务注册和配置中心)
SpringCloud(第十八章 SpringCloud Alibaba Sentinel实现熔断与限流)
SpringCloud(第十九章 SpringCloud Alibaba Seata处理分布式事务)
SpringCloud(第二十章 SpringCloud之雪花算法)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值