- https://nacos.io/zh-cn/
- https://github.com/alibaba/nacos/releases
- https://nacos.io/zh-cn/docs/quick-start.html
一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
https://nacos.io/zh-cn/docs/what-is-nacos.html
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
https://hub.docker.com/r/nacos/nacos-server
docker pull nacos/nacos-server:1.3.0
docker run \
--name nacos \
-p 8848:8848 \
-e MODE=standalone \
-d nacos/nacos-server:1.3.0
http://ip:8848/nacos
登录名/密码 默认是nacos
UTF-8
UTF-8
1.8
2.2.0.RELEASE
Hoxton.SR3
2.2.0.RELEASE
org.springframework.boot
spring-boot-dependencies
${spring-boot.version}
pom
import
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
com.alibaba.cloud
spring-cloud-alibaba-dependencies
${spring-cloud-alibaba.version}
pom
import
spring-boot-starter-{xxx}
{xxx}-spring-boot-starter
spring-cloud-starter-{spring cloud子项目的名称}-{模块名称}
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
2.2.0.RELEASE
org.springframework.cloud
spring-cloud-starter-alibaba-nacos-discovery
0.2.2.RELEASE
nacos无需添加@EnableDiscoveryClient注解
//@EnableDiscoveryClient
@SpringBootApplication
public class App {
public static void main(String[] args) {
new SpringApplicationBuilder(App.class)
.web(WebApplicationType.SERVLET)
.run(args);
}
}
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
命名空间:用于实现隔离;开发环境、生产环境、测试环境;不同的命名空间是互相隔离的;
- Namespace : 实现隔离,默认public
- Group : 不同服务可以分到一个组,默认DEFAULT_GROUP
- Service : 微服务
- Cluster : 对指定微服务的一个虚拟划分,默认DEFAULT
- Instance : 微服务实例
在nacos控制台里面点击命名空间选择新建命名空间即可创建命名空间
spring:
cloud:
nacos:
discovery:
server-addr: 39.106.196.224:8848
namespace: d3c16b50-bdb0-4fb6-917d-9fc7a4d5ff04
cluster-name: NJ
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: 用户中心
***************************
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