栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

学会Nacos应用这一篇就够了

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学会Nacos应用这一篇就够了

下载地址: https://github.com/alibaba/nacos/releases/tag/2.1.0

什么是Nacos

Nacos 由Alibaba开发,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
作为这样的一个平台,核心就是两一个功能,配置管理和服务注册与发现。

现在一般的Spring Cloud生态可以由 服务网关GateWay 、服务注册Nacos、服务配置Nacos、服务调用、OpenFeign、服务降级Hystrix几个部分注册

启动与关闭服务

Nacos默认集群模式,单机测试需加配置
Linux/Unix/Mac

启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone
如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:
bash startup.sh -m standalone

Windows

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

控制台:http://127.0.0.1:8848/nacos/#/login 默认账号密码 naocs

Linux/Unix/Mac

sh shutdown.sh

Windows

cmd shutdown.cmd
组成

Nacos的学习主要围绕着下图进行

SpringBoot快速搭建 环境搭建-依赖

pom.xml

        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
            ${nacos.version}
        
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            ${nacos.version}
        
        
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
            ${openfeign.version}
        

环境搭建-application配置

application.yml

# nacos注册中心ip和端口
NACOS_SERVER: localhost:8848
NACOS_NAME: cloud-nacos-provider
NACOS_GROUP: DEFAULT_GROUP  

server:
  port: 10001

spring:
  profiles:
    active: dev 	#    配置文件使用的环境
    
  application:
    name: ${NACOS_NAME}
  cloud:
    nacos:
     config:
        server-addr: ${NACOS_SERVER}   # nacos本地服务器地址
        file-extension: yaml   # 配置文件的格式,默认properties
        group: ${NACOS_GROUP}   # 分组,默认DEFAULT_GROUP
#        namespace: dev # 使用命名空间
#        name:  # 设置data-id
      discovery:
        server-addr: ${NACOS_SERVER}  # 配置本地的Nacos服务器地址
        group: ${NACOS_GROUP}   # 分组,默认DEFAULT_GROUP
#        集群命名空间,一定要写的是命名空间的id ,不是name
#        namespace: 102a40ad-3a07-4ae7-8be0-638b8d698fed

Nacos配置文件的核心就是设置config 和 discovery
config用于设置读取配置管理中的配置,由外到内主要就是遵循配置 namespace 、group、 name


假如我们根据配置文件创建了以下配置

如果我们没有主动设置 name(data-id)和 namespace(命名空间) ,那么他自动寻找以下规则
namespace : 默认位public,可在命名空间出设置
dataID : 完整格式 如下

${prefix}-${spring.profiles.active}.${file-extension} 

其中 prefix 默认为 spring.application.name 的值,因此dataID 就变成了

${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}


如果主动设置了 name 即data-id设置好了,读取我们设置的配置,多个文件可以用

  cloud:
    nacos:
     config:
        server-addr: ${NACOS_SERVER}   # nacos本地服务器地址
        file-extension: yaml   # 配置文件的格式,默认properties
        group: ${NACOS_GROUP}   # 分组,默认DEFAULT_GROUP
 		shared-configs:
          - data-id: 

环境搭建-启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient //服务注册
@EnableFeignClients    //服务发现 
public class CloudNacosProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(CloudNacosProviderApplication.class, args);
    }
}

完成上述步骤,nacos基本就整合完了

配置持久化

nacos默认将数据存在本地文件夹中

我们也可以将数据存在mysql中,配置也很简单
1)新建库表,用它conf目录下的 sql文件即可

2)配置好application.properties
数据库配置一样可以设置集群

高可用集群

为了防止一个nacos崩掉,一般我们会创建三个或以上的nacos作为集群

startup.bat Model默认就是cluster集群模式

注意:配置集群需配置mysql持久化

  1. 指定下IP ,和端口(8848、8849、8850)


2)将cluster.conf.example改成cluster.conf
配置ip列表


服务器设置下多个地址,逗号隔开

@FeignClient基本使用

在A服务器要掉B服务器的接口,将B服务器接口
入参类型、返回类型、请求地址全路径再加上@FeignClient注解, 就会被Spring依赖注入

@FeignClient(value = "cloud-nacos-provider")
public interface DispatcherService {

    @PostMapping("/dispatch/user/saveUser")
    ResultEntity saveUser(@RequestBody SysUserEntity sysUserEntity);

}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/919490.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号