阿里巴巴微服务开源项目Nacos于近期发布了 v0.6.0 版本,该版本开始支持 Dubbo的服务发现和配置管理,并针对 Docker 部署提供了官方的 Docker 镜像,以及优化了Nacos 控制台的国际化框架,还将集成测试效率大大优化。
一脉相承, Nacos 支持 Dubbo
Nacos 从 v0.6.0 版本开始,支持 Dubbo 注册中心和配置中心。同样孵化于内部近10年生产实践的开源项目 Nacos,和Dubbo有着千丝万缕的联系。
2018年双11当天,平台承载了2135亿的销售额,交易创建峰值达49.1万笔/秒。举个例子,相当于5个鸟巢体育馆规模的消费者(一个鸟巢承载9.1万人)推着购物车,在同一秒进入天猫淘宝的结算平台,这给整个微服务架构和各个组件之间的配合带来了极大的考验,而 Dubbo 和 Nacos 的协作正是在这样的场景下,不断打磨而成的。
Nacos 是 Dubbo 生态系统中重要的注册中心基础设施。其中, dubbo-registry-nacos 是 Dubbo 融合 Nacos 注册中心的桥梁,基于 Dubbo 强大的注册中心 SPI 以及 Nacos Naming 服务,提供实时的服务注册和发现。目前 dubbo-registry-nacos 处于 preview 阶段,最新的发布版本为 0.0.2
,已测试最新的 Dubbo 以及 Dubbo OPS,推荐开发人员使用最新的 Dubbo 2.6.5
以及 Nacos 0.6.1
,确保享受最佳体验。如果您现在正在使用 Zookeeper 或者 Redis 作为注册中心的话,迁移到 Nacos 的部分也非常简单,以 Zookeeper 为例:
场景一:外部化配置
调整前的配置:
## Zookeeper registry address dubbo.registry.address = zookeeper://127.0.0.1:2181
调整后的配置:
## Nacos registry address dubbo.registry.address = nacos://127.0.0.1:8848
场景二:XML 配置驱动
调整前的配置:
<!-- 使用 Zookeeper 注册中心 --><dubbo:registry address="zookeeper://127.0.0.1:2181" />
调整后的配置:
<!-- 使用 Nacos 注册中心 --><dubbo:registry address="nacos://127.0.0.1:8848" />
调整完毕后,先确保 Nacos Server 已启动,再重启您的 Dubbo 应用,随后您在 Nacos 控制台 “服务列表” 中就能看到注册信息:
如果您对 Dubbo 与 Nacos 整合敢兴趣,不妨访问项目主页了解更多详情,地址为:
Dubbo Nacos Registry:https://github.com/dubbo/dubbo-registry-nacos
Apache Dubbo:https://github.com/apache/incubator-dubbo
如果您在使用的过程中遇到了任何问题和有任何建言,请将在https://github.com/dubbo/dubbo-registry-nacos/issues 中进行讨论。
在容器大行其道的今天,支持容器化已经成为必然,Docker作为容器化大多数人的选择,Nacos 在v0.6.0版本宣布支持Docker化部署,并且提供出官方镜像,并且会在预计在下几个版本中支持K8S部署。
如何通过Docker部署
本地需要确定已经按照了Docker,如果没有安装,请参考 https://docs.docker.com/install/。安装之后这时就可以快速的从远程拉去镜像,拽起一个单机版本的Nacos,体验一下,运行以下命令:
docker run --name nacos-standalone -e MODE=standalone -p 8848:8848 nacos/nacos-server:latest
另一种应用方式,docker-compose编排方式,可以参照以下命令:
1. git clone 项目 并且进入项目根目录
git clone https://github.com/nacos-group/nacos-docker.git cd nacos-docker
2. 启动
单机启动
docker-compose -f example/standalone.yaml up
集群启动
docker-compose -f example/cluster-hostname.yaml up
这时你的Nacos就已经启动起来,你就可以访问http://localhost:8848/nacos/index.html 体验Nacos的功能了。