博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nacos v0.7.0:对接CMDB,实现基于标签的服务发现能力
阅读量:6801 次
发布时间:2019-06-26

本文共 3886 字,大约阅读时间需要 12 分钟。

摘要: Nacos近期发布了0.7.0版本,该版本支持对接第三方CMDB获取CMDB数据、使用Selector机制来配置服务的路由类型、支持单机模式使用MySQL数据库、上线Node.js客户端,并修复了一些bug。

Nacos近期发布了0.7.0版本,该版本支持对接第三方CMDB获取CMDB数据、使用Selector机制来配置服务的路由类型、支持单机模式使用MySQL数据库、上线Node.js客户端,并修复了一些bug。

-> “阿里巴巴中间件”微信公众号后台发送 “Nacos”,了解更多项目信息。

对接CMDB实现就近访问

在服务进行多机房或者多地域部署时,跨地域的服务访问往往延迟较高,一个城市内的机房间的典型网络延迟在1ms左右,而跨城市的网络延迟,例如上海到北京大概为30ms。此时自然而然的一个想法就是能不能让服务消费者和服务提供者进行同地域访问。

Nacos定义了一个SPI接口,里面包含了与第三方CMDB约定的一些方法。用户依照约定实现了相应的SPI接口后,将实现打成jar包放置到Nacos安装目录下,重启Nacos即可让Nacos与CMDB的数据打通。

CMDB插件开发流程

参考 ,这里已经给出了一个示例plugin实现。

具体步骤如下:

  1. 新建一个maven工程,引入依赖nacos-api:

    com.alibaba.nacos
    nacos-api
    0.7.0
    复制代码
  2. 引入打包插件:

    org.apache.maven.plugins
    maven-assembly-plugin
    jar-with-dependencies
    复制代码
  3. 定义实现类,继承com.alibaba.nacos.api.cmdb.CmdbService,并实现相关方法。

  1. 在src/main/resource/目录下新建目录:META-INF/services

  1. 在src/main/resources/META-INF/services目录下新建文件com.alibaba.nacos.api.cmdb.CmdbService,并在文件里将第三步中创建的实现类全名写入该文件:

  1. 代码自测完成后,执行命令进行打包:

    mvn package assembly:single -Dmaven.test.skip=true复制代码
  2. 将target目录下的包含依赖的jar包上传到nacos CMDB插件目录:

    {nacos.home}/plugins/cmdb复制代码
  3. 在nacos的application.properties里打开加载插件开关:

    nacos.cmdb.loadDataAtStart=true复制代码
  4. 重启nacos Server,即可加载到您实现的nacos-cmdb插件获取您的CMDB数据。

配置服务路由类型

在控制台上,对服务进行编辑,使用同机房优先策略:

这样配置后,所有访问该服务的消费者,都会实现同机房优先策略。

支持单机模式使用MySQL数据库

在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:

安装数据库,版本要求:5.6.5+

初始化mysql数据库,数据库初始化文件:

修改application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。

spring.datasource.platform=mysqldb.num=2db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=truedb.url.1=jdbc:mysql://11.163.152.9:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=truedb.user=nacos_devtestdb.password=youdontknow复制代码

再以单机模式启动nacos

sh startup.sh -m standalone复制代码

nacos所有写嵌入式数据库的数据都写到了mysql

支持Node.js客户端

在 Java 版本客户端推出之后,我们一直思考多语言版本,在对多语言的调研中,Node.js 的呼声是最高的,不少 Node.js 开发者都期盼着有原生的 Node.js 客户端可以使用。

如今我们推出了第一版客户端,完成了常见的增删改查功能,借由此,向多语言化迈出了第一步。

以nacos-config为例,下面是一个简单的接入说明,具体接入可以参考:

import {NacosConfigClient} from 'nacos';   // tsconst NacosConfigClient = require('nacos').NacosConfigClient; // js// 下面的代码是寻址模式const configClient = new NacosConfigClient({  endpoint: 'acm.aliyun.com', // acm 控制台查看  namespace: '***************', // acm 控制台查看  accessKey: '***************', // acm 控制台查看  secretKey: '***************', // acm 控制台查看  requestTimeout: 6000, // 请求超时时间,默认6s});// 下面的代码是直连模式const configClient = new NacosConfigClient({  serverAddr: '127.0.0.1:8848', // 对端的 ip 和端口,其他参数同寻址模式});// 主动拉取配置const content= await configClient.getConfig('test', 'DEFAULT_GROUP');console.log('getConfig = ',content);复制代码

蓬勃发展的 Nacos 社区

DISS is cheap, show me your hand

比吐槽更重要的是搭把手,参与社区一起发展Nacos

  • 作为用户关注和加入 Nacos 社区

Nacos 社区正在蓬勃发展,截止到发文为止,Nacos 短短几个月已经有5个微信群,其中4个已满员,1个QQ群,1个钉钉群,关注 Nacos 的社区人数已经近3000人,在 Nacos 群里跟 “道(基)友” 切磋技术,交流经验,招聘交友,抢抢红包...不亦乐乎。

要加入 Nacos 微信社区,你可以通过扫下面的__“超哥”__的微信二维码,让__“超哥”__ 帮你拉入 “Nacos社区微信交流群”

  • 作为代码贡献者加入 Nacos 社区

从Nacos用户发展而成贡献者顺理成章,而Nacos开发团队也确实在日趋壮大,从开始的只有4个代码contributor发展到目前的24个,随着__阿里巴巴__其他团队成员如 @小马哥 等人,__虎牙直播__的 @张波 @周健 团队等人, 贡献者 @张龙__,前端的主要贡献者饿了么 __@王彦民__,Spring Cloud中文社区创立者 __@许进 等的陆续加入,相信未来Nacos社区的力量未来会越来越强大。

而社区也正在计划在合适的时机上,将在Nacos官网 中添加团队介绍页,将大家正式公布于众,欢迎大家加入Nacos社区,贡献社区。用Apache的话说,__“社区高于代码”!__

新人时刻 - "什么是Nacos?"

还不知道什么是Nacos? 没关系,在github上star一下跟程序猿兄弟打个招呼吧!!

是阿里巴巴于7月份新开源的项目,Nacos的主要愿景是期望通过提供易用的 动态服务发现服务配置管理服务共享与管理 的基础设施,帮助用户在云原生时代更好的构建、交付、管理自己的微服务平台。

github项目地址在

更多与 Nacos 相关的开源项目信息

转载地址:http://acywl.baihongyu.com/

你可能感兴趣的文章
Microsoft资源
查看>>
WordPress 永久链接或固定链接设置技巧
查看>>
数据结构之线性表
查看>>
在PPT中插入FLASH遇到的系列问题
查看>>
2018CCTV网络春晚:胡晓明携阿里云ET城市大脑给大家拜早年啦!
查看>>
佳能牌(Canon)打印机安装时在 Windows XP中测试显示页面的程序(软件编写)
查看>>
2015百度之星 下棋
查看>>
常用的CMD命令
查看>>
搭建网站必不可少的知识11
查看>>
python下的MySQLdb使用
查看>>
CCNP路由实验---4、配置EIGRP不等价均衡
查看>>
Fedora20下安装vim
查看>>
CentOS 6.5 使用docker 容器
查看>>
pl/sql中的exception
查看>>
Android开发:通过AdbWireless,不用数据线连接到安卓手机进行调试
查看>>
Spring Security系列1:一个最基础的入门实例
查看>>
组策略对应于注册表位置汇总
查看>>
Java虚拟机参数配置
查看>>
RHCE 学习笔记(31) - 防火墙 (中)
查看>>
巧用UWA资源检测,轻松剔除冗余资源!
查看>>