精华内容
下载资源
问答
  • Nacos

    千次阅读 2020-03-01 15:53:56
    nacos

    1 nacos是什么

    一个更易于构建云原生应用的动态服务发现、配置管理服务管理平台。

    https://nacos.io/zh-cn/docs/what-is-nacos.html 

    Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

    Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。


    2 Docker部署单机版的nacos

    https://hub.docker.com/r/nacos/nacos-server 

    2.1 拉取镜像 

    docker pull nacos/nacos-server:1.3.0

    2.2 启动nacos

    docker run \
    --name nacos \
    -p 8848:8848 \
    -e MODE=standalone \
    -d nacos/nacos-server:1.3.0

    2.3 web界面访问

    http://ip:8848/nacos

    登录名/密码 默认是nacos

    2.4 版本参考 


    3 集成 spring cloud alibaba

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <!--版本锁定-->
        <spring-boot.version>2.2.0.RELEASE</spring-boot.version>
        <spring-cloud.version>Hoxton.SR3</spring-cloud.version>
        <spring-cloud-alibaba.version>2.2.0.RELEASE</spring-cloud-alibaba.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <!--springboot-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--spring cloud-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--spring cloud alibaba-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    4 使用nacos

    4.1 引依赖

    • spring-boot-starter-{xxx}
    • {xxx}-spring-boot-starter
    • spring-cloud-starter-{spring cloud子项目的名称}-{模块名称}
    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.2.0.RELEASE</version>
        </dependency>
    </dependencies>

    以前是下面这个依赖,后面改成了上面的那个依赖

    <!--
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>0.2.2.RELEASE</version>
    </dependency>
    ->

    4.2 加注解

    nacos无需添加@EnableDiscoveryClient注解

    //@EnableDiscoveryClient
    @SpringBootApplication
    public class App {
        public static void main(String[] args) {
            new SpringApplicationBuilder(App.class)
                    .web(WebApplicationType.SERVLET)
                    .run(args);
        }
    }
    

    4.3 写配置

    spring:
      cloud:
        nacos:
          discovery:
            server-addr: 39.106.196.224:8848

    2020-04-02 18:05:22.554  WARN 23064 --- [           main] o.s.c.a.n.registry.NacosServiceRegistry  : No service to register for nacos client...

    未配置服务名称 (服务名称尽量用 -

    spring:
      application:
        name: order-center

    2020-04-02 18:10:38.489  INFO 12036 --- [           main] o.s.c.a.n.registry.NacosServiceRegistry  : nacos registry, order-center 192.168.56.1:9761 register finished


    5 服务发现的领域模型

    • Namespace : 一般用于实现环境隔离,默认public
    • Group : 不同服务可以分到一个组,默认DEFAULT_GROUP
    • Service : 微服务
    • Cluster : 对指定微服务的一个虚拟划分,默认DEFAULT
    • Instance : 微服务实例

    5.1 命名空间namespace

    用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。

    spring:
      cloud:
        nacos:
          discovery:
            server-addr: 39.106.196.224:8848
            namespace: d3c16b50-bdb0-4fb6-917d-9fc7a4d5ff04

    6 元数据

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

    Nacos数据(如配置和服务)描述信息,如服务版本、权重、容灾策略、负载均衡策略、鉴权配置、各种自定义标签 (label),从作用范围来看,分为服务级别的元信息、集群的元信息及实例的元信息。

    元数据作用

    1. 提供描述信息
    2. 让微服务调用更加灵活

    例如:微服务版本控制

    • 内容中心 v1 ---调用-->  用户中心 v1
    • 内容中心 v2 ---调用-->  用户中心 v2

    三种级别的元素据都可以在nacos控制台指定

    spring:
      cloud:
        nacos:
          discovery:
            metadata:
              version: 1.5.0.RELEASE
              describe: 用户中心


    7 异常处理

    ***************************
    APPLICATION FAILED TO START
    ***************************
    Description:
    The bean 'nacosServiceRegistry', defined in class path resource [org/springframework/cloud/alibaba/nacos/NacosDiscoveryAutoConfiguration.class], could not be registered. A bean with that name has already been defined in class path resource [com/alibaba/cloud/nacos/registry/NacosServiceRegistryAutoConfiguration.class] and overriding is disabled.
    Action:
    Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

    nacos/nacos-server: 1.1.4

    spring-cloud-starter-alibaba-nacos-discovery: 2.2.0.RELEASE

    报错原因:订单中心、用户中心同时引入了spring-cloud-starter-alibaba-nacos-discovery;订单中心依赖了用户中心;这个时候启动订单中心启动的时候就可能会报错;

    解决方法:删除订单中心引入的依赖 spring-cloud-starter-alibaba-nacos-discovery

    当遇到同样名字的时候,是否允许覆盖注册 

    spring:
      main:
        allow-bean-definition-overriding: true

     

    展开全文
  • nacos

    千次阅读 2020-12-11 11:53:55
    2、windows搭建nacos2.1 下载nacos2.2 安装nacos2.3 nacos启动前环境准备(来到官网的部署手册吧!!!)2.3.1 在mysql中执行conf/nacos-mysql.sql2.3.2 修改conf/application.properties2.4 windows 单机启动nacos2.5 ...


    1、nacos是什么?

    官网走一波啊: https://nacos.io/zh-cn/index.html

    2、windows搭建nacos

    2.1 下载nacos

    1. https://nacos.io/zh-cn/docs/quick-start.html来来来,点击nacos快速开始
      在这里插入图片描述
    2. 下载地址
      https://github.com/alibaba/nacos/releases/tag/1.3.1
      在这里插入图片描述
    3. github下载太慢,我开放了资源,分享给大家
      链接:https://pan.baidu.com/s/11Iv4z9jeI_xUqsSMNmssDA
      提取码:mzod

    2.2 安装nacos

    解压即可

    2.3 nacos启动前环境准备(来到官网的部署手册吧!!!)

    2.3.1 在mysql中执行conf/nacos-mysql.sql

    nacos1.3.1+ 开始支持mysql8

    2.3.2 修改conf/application.properties

    放开:
    在这里插入图片描述

    2.4 windows 单机启动nacos

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

    在这里插入图片描述

    2.5 访问控制台

    2.5.1 http://127.0.0.1:8848/nacos

    2.5.2 输入nacos/nacos

    在这里插入图片描述

    2.6 服务注册测试

    2.6.1 导包

     <!-- SpringCloud Ailibaba Nacos 在spring cloud alibaba里边呢-->
     <dependency>
         <groupId>com.alibaba.cloud</groupId>
         <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
     </dependency>
    

    2.6.2 配置文件

    spring: 
      cloud:
        nacos:
          discovery:
            # 服务注册地址
            server-addr: 127.0.0.1:8848
          config:
            # 配置中心地址
            server-addr: 127.0.0.1:8848
            # 配置文件格式
            file-extension: yml
            # 共享配置
            shared-dataids: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
    

    2.6.3 注解

    启动类上加 @EnableDiscoveryClient

    2.6.4 查看结果(控制台中康康!)

    在这里插入图片描述

    3、Linux搭建nacos(以后补充哈!)

    展开全文
  • 本地编译的Nacos-1.0 master分支,配置好mysql后,作为服务中心和配置中心启动成功 但是网关应用启动时报错500 空指针异常。 failed to req API:/nacos/v1/ns/instance after all servers([127.0.0.1:8848]) 网上...

    问题描述

    本地源码编译Nacos-1.0 master分支,配置好mysql后,作为服务中心和配置中心启动成功
    但是网关应用启动时报错500 空指针异常。

    failed to req API:/nacos/v1/ns/instance after all servers([127.0.0.1:8848])

    网上查询说是因为以集群方式启动导致的,更改为单机模式启动即可(standalone)。
    但是源码不是很熟,配置里改貌似没起效。

    解决方式

    方法一

    临时先在nacos-console项目中的main方法里加了系统配置后,正常使用,我这里使用的是嵌入式数据库。

    @SpringBootApplication(scanBasePackages = "com.alibaba.nacos")
    @ServletComponentScan
    @EnableScheduling
    public class Nacos {
    
        public static void main(String[] args) {
            System.setProperty("nacos.standalone", "true");
            SpringApplication.run(Nacos.class, args);
        }
    }
    

    暂时不清楚在配置文件里配的nacos.standalone=true不生效具体原因,可能是放错了文件,有机会再填坑

    方法二

    (本地未编译的项目和已编译的包都有效)
    添加启动参数-Dnacos.standalone=true

    方法三

    如果下载的是已编译完成的nacos。可以直接加命令启动
    ./bin/startup.sh -m standalone

    统一回复下评论
    • 我这个是本地源码编译启动和测试的时候遇到的问题。
    • 如果是集群模式报错,建议查阅官方文档和issue,检查部署环境、配置文件、IP地址、所有的错误日志。
    • 如果IP地址有问题可以参考这篇文章:https://blog.csdn.net/zimou5581/article/details/91041239
    展开全文
  • Nacos做服务注册中心使用案例

    万次阅读 2020-09-21 04:27:51
    关于环境搭建部分请借鉴:nacos做配置中心和服务注册中心 的完整使用案例 ...spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> server.port=8070 spring.application.nam

    关于环境搭建部分请借鉴:nacos做配置中心和服务注册中心 的完整使用案例

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    
    server.port=8070
    spring.application.name=server-provider
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
    

    主启动类示例代码

    @SpringBootApplication
    @EnableDiscoveryClient
    public class NacosProviderApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(NacosProviderApplication.class, args);
    	}
    
    	@RestController
    	class EchoController {
    		@RequestMapping(value = "/echo/{string}", method = RequestMethod.GET)
    		public String echo(@PathVariable String string) {
    			return "Hello Nacos Discovery " + string;
    		}
    	}
    }
    

    然后启动该主启动类,注意:主启动类至少有一个restful风格的请求资源,不然容易失败,因为是一个空服务

    启动项目后,如下在服务列表中能找到说明成功!
    在这里插入图片描述

    Springboot的示例代码

    在这里插入图片描述

    展开全文
  • springboot+nacos入门

    万次阅读 2020-09-11 11:26:52
    一、nacos与Eureka有相同的三个对象:注册中心、服务提供者、服务消费者 首先在官方下载nacos程序包,点击\nacos\bin\startup.cmd启动 二、编写provider 1.修改pom,添加maven依赖 <properties> <java....
  • Nacos(二):SpringCloud项目中接入Nacos作为注册中心

    万次阅读 多人点赞 2019-07-09 17:18:01
    通过上一篇文章:Nacos介绍 简单了解了Nacos的发展历程和现状,本文我们开始Nacos试水的第一步: 使用Nacos做注册中心 上周末(7.6)Nacos发布了V1.1.0版本,这次更新支持灰度配置、地址服务器模式、配置文件导入...
  • nacos源码阅读--服务注册

    万次阅读 2021-02-07 18:16:01
    一、springboot启动日志报NacosServiceRegistry springboot+nacos启动时,log会有一条nacos注册...通过查看spring.factories文件也可以看到,nacos自动装配的类如下,nacos按照了springboot的约定进行了自动装配:**
  • SpringCloud-Alibaba-Nacos服务注册和配置中心--一篇入门

    万次阅读 多人点赞 2020-11-19 23:09:11
    前言: 前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service 一个更易于构建云原生应用的动态服务发现,配置管理和服务管理中心 ...D:\work\nacos\nacos\bin 双击startup.cmd 启动成功访问 ht
  • SpringBoot使用Nacos配置中心

    万次阅读 热门讨论 2019-01-26 18:27:59
    本文介绍SpringBoot如何使用阿里巴巴Nacos做配置中心。 1.Nacos简介 Nacos是阿里巴巴集团开源的一个易于使用的平台,专为动态服务发现,配置和服务管理而设计。它可以帮助您轻松构建云本机应用程序和微服务平台。 ...
  • Nacos - nacos基础概念

    千次阅读 2019-12-03 18:31:25
    文章目录Nacos - nacos基础概念1、什么是nacos2、nacos 的主要功能3、nacos 引入的一些基础概念4、nacos 架构设计 Nacos - nacos基础概念 1、什么是nacos 一个易于使用的动态服务发现,配置和服务管理平台,用于...
  • nacos源码阅读--本地单机debug调试

    万次阅读 2021-02-07 17:49:25
    一、从github上下载下来nacos的源代码 https://github.com/alibaba/nacos 源码长这个怂样子: 二、找到distribution中的sql脚本,运行sql脚本 可以复制到navicat或其他数据库管理软件中执行 三、找到console中如下...
  • nacos笔记

    万次阅读 2020-09-05 10:24:49
    【1】nacos server 【2】nacos spring 【3】Nacos Spring Boot 【4】Nacos Spring Cloud 【5】Nacos Config 【6】Nacos discovery 【7】nacos 部署 【8】常见问题 【1】nacos server nacos文档 1.源码部署 git ...
  • Nacos教程_4 配置讲解

    万次阅读 2021-01-14 14:33:39
    教程原稿 ...在 Nacos Spring Cloud 中,dataId 的完整格式如下: ${prefix}-${spring.profiles.active}.${file-extension} prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,185
精华内容 12,074
热门标签
关键字:

nacos