-
Nacos
2020-03-01 15:53:56nacos1 nacos是什么
一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
https://nacos.io/zh-cn/docs/what-is-nacos.html
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
2 Docker部署单机版的nacos
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界面访问
登录名/密码 默认是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),从作用范围来看,分为服务级别的元信息、集群的元信息及实例的元信息。
元数据作用
- 提供描述信息
- 让微服务调用更加灵活
例如:微服务版本控制
- 内容中心 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:552、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
- https://nacos.io/zh-cn/docs/quick-start.html来来来,点击nacos快速开始
- 下载地址
https://github.com/alibaba/nacos/releases/tag/1.3.1
- 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(以后补充哈!)
- https://nacos.io/zh-cn/docs/quick-start.html来来来,点击nacos快速开始
-
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的示例代码
-
nacos与zookeeper、consul、eureka之间的对比
2020-09-21 13:57:03nacos eureka consul zookeeper 一致性协议 CP + AP 可切换 AP CP CP 健康检查 TCP/HTTP/MySQL/Client Beat Client Beat TCP/HTTP/gRPC/CMD Client Beat 负载均衡 权重/DSL/metadata/CMDB Ribbon Fabio注册中心特性对比
一致性(Consistency)、 可用性(Availability)、分区容错性(Partition tolerance)
比较 nacos eureka consul zookeeper 一致性协议 CP + AP 可切换 AP CP CP 健康检查 TCP/HTTP/MySQL/Client Beat Client Beat TCP/HTTP/gRPC/CMD Client Beat 负载均衡 权重/DSL/metadata/CMDB Ribbon Fabio 无 雪崩保护 支持 支持 不支持 不支持 自动注销实例 支持 支持 不支持 支持 访问协议 HTTP/DNS/UDP HTTP HTTP/DNS TCP 监听支持 支持 支持 支持 支持 多数据中心 支持 支持 支持 不支持 跨注册中心 支持 不支持 支持 不支持 SpringColud集成 支持 支持 支持 不支持 Dubbo集成 支持 不支持 不支持 支持 kubernates集成 支持 不支持 支持 不支持 -
Nacos(二):SpringCloud项目中接入Nacos作为注册中心
2019-07-09 17:18:01通过上一篇文章:Nacos介绍 简单了解了Nacos的发展历程和现状,本文我们开始Nacos试水的第一步: 使用Nacos做注册中心 上周末(7.6)Nacos发布了V1.1.0版本,这次更新支持灰度配置、地址服务器模式、配置文件导入... -
编译Nacos,解决failed to req API:/nacos/v1/ns/instance after all servers([127.0.0.1:8848])
2019-05-27 17:28:37本地编译的Nacos-1.0 master分支,配置好mysql后,作为服务中心和配置中心启动成功 但是网关应用启动时报错500 空指针异常。 failed to req API:/nacos/v1/ns/instance after all servers([127.0.0.1:8848]) 网上... -
-
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笔记
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
2020-11-02 19:32:52本文只介绍其他项目集成到nacos,关于nacos基本概念,nacos项目地址,请自行查阅 整体流程(假设nacos服务端已经部署),一添加pom依赖,二项目添加nacos配置,三 nacos服务端添加项目配置 一,pom依赖 <?xml ... -
nacos服务的负载均衡功能演示
2020-09-21 13:35:52服务提供者 第一个服务提供者 @SpringBootApplication @EnableDiscoveryClient public class CloudalibabaProviderPayment01Application { public static void main(String[] args) { SpringApplication.run... -
-
Nacos快速入门(1):启动Nacos Server
2019-03-04 23:39:23Nacos由阿里于2018年7月开启的一个新的开源项目 官方介绍: Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos ... -
注册中心Nacos
2019-04-23 20:23:24nacos官方文档 Nacos 有三大主要功能: 服务发现和服务健康监测 Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。 动态配置管理 配置中心化管理让实现无状态服务变得更简单,让服务按需... -
Nacos使用
2020-12-22 16:42:150.nacos集成spring_启动nacos-server 1.nacos集成spring_切换nacos-server数据源为mysql 2.nacos集成spring_pom依赖 3.nacos集成spring_spring配置文件引入nacos配置文件 4.nacos集成spring_nacos配置文件 5.... -
单机启动nacos_Nacos(八):Nacos持久化
2020-12-30 14:21:49Spring Cloud Alibaba基础教程:Nacos的数据持久化 前言 前景回顾: Nacos(七):Nacos共享配置 Nacos(六):多环境下如何“管理”及“隔离”配置和服务 Nacos(五):多环境下如何“读取”Nacos中相应... -
nacos 公共_Nacos(八):Nacos持久化
2020-12-22 11:16:44参考和感谢前言前景回顾:前面的七篇文章,从Nacos介绍,到Nacos做注册中心、做配置中心,一直都没有提及持久化的问题。我们服务的信息、配置的信息都放在哪的?当我们使用默认配置启动Nacos时,所有配置文件都被...
-
Kotlin协程极简入门与解密
-
第1章 Java入门基础及环境搭建【java编程进阶】
-
【数据分析-随到随学】SPSS调查问卷统计分析
-
js毫秒转换为年月日时分
-
转行做IT-第6章 IDEA、方法
-
2021随着AI投资退去,最后剩下的玩家如何打破这一僵局
-
数字孪生体白皮书(全版).pdf
-
成绩追踪最新.xls
-
戴尔MD3200存储解锁
-
橙色高校教育学院网页模板
-
flash actionscript3 从1个SWF中加载另1个SWF 按1播放SWF中的一段 按2播放另一段动画.rar
-
Royal_TSX_4.3.1_(4.3.1.1000)__.zip
-
银河系创投徐芳:专注B2B这片热土,燃起产业新势能
-
Python入门到项目直通车
-
2021,转转能摆脱衰落趋势吗?
-
转行做IT-第7章 数组
-
linux ifconfig is not found
-
复杂干扰情况下的结构光条纹中心提取方法
-
JavaEE框架(Maven+SSM)全程实战开发教程(源码+讲义)
-
【2021】UI自动化测试框架(Selenium3)