nacos官方文档
Nacos 有三大主要功能:
除了对于阿里开源生态体系如 Dubbo 等自身的支持,Nacos 也非常强调融入其它的开源生态,包括 Java 的微服务生态体系 Spring Cloud,Kubernetes云原生生态体系。Nacos 无缝支持 Spring Cloud,为 Spring Cloud 用户其提供更简便的配置中心和注册中心的解决方案。
未来会有越来越多 java 生态的用户会选择 Kubernetes+Spring Cloud 组合,但不幸的是,在服务发现和配置管理的解决方案上,这 2 个体系都采用了完全不同的方案,这给同时采用 2 个体系的用户在注册中心和配置中心的需求上带来了非常大的不必要的复杂性。
Nacos 极易上手,几乎免安装,只需要简单的解压包(建议用1.0以上版本),启动服务即可。
Spring Cloud支持使用Eureka、Zookeeper、Consul实现服务发现的能力。Eureka 是其默认的也是推荐的服务注册中心组件。但从Eureka切换成Zookeeper、consul只需要改个依赖,加两行配置就可以了。
辟谣
nacos依赖
com.alibaba
dubbo-registry-nacos
0.0.1
com.alibaba
dubbo
2.6.5
com.alibaba.spring
spring-context-support
1.0.2
xml方式配置provider和consumer时只需将
或
docker search nacos
docker pull nacos/nacos-server
//单机方式启动
docker run --name nacos-standalone -e MODE=standalone -p 8848:8848 nacos/nacos-server:latest
http://192.168.99.100:8848/nacos
nohup sh startup.sh -m standalone &
startup.cmd -m standalone
java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all servers([127.0.0.1:8848]) tried
本地应用启动时报错,说明不是单机启动
默认情况下用户名密码为:nacos/nacos
生产使用:
org.springframework.boot
spring-boot-starter-security
public static void main(String[] args) {
//每次执行生成密文不同
System.out.println(new BCryptPasswordEncoder().encode("nacos123"));
}
分别在users
和roles
增加一条记录
springcloud Eureka是基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能。服务端和客户端均采用java编写,所以主要适用于java实现的分布式系统。
org.springframework.cloud
spring-cloud-starter-eureka-server
通过@EnableEurekaServer注解启动一个注册中心
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false #默认情况下,该服务注册中心会将自己作为客户端注册自己,需禁用
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
org.springframework.cloud
spring-cloud-starter-eureka
通过@EnableDisCoveryClient发现服务
通过如下属性指定服务注册中心的地址,启动应用Eureka信息面板就可以看到服务实例了。
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
客户端服务通过注解和参数配置方式
,嵌入在客户端应用程序中,应用启动时向注册中心注册自身服务,并周期性的发送心跳来更新他的服务;同时也可以从服务端查询注册的服务信息并缓存到本地,并且周期性的刷新服务状态。
…