nacos近期发布了0.7.0版本,该版本支持对接第三方cmdb获取cmdb数据、使用selector机制来配置服务的路由类型、支持单机模式使用mysql数据库、上线node.js客户端,并修复了一些bug。
对接cmdb实现就近访问
在服务进行多机房或者多地域部署时,跨地域的服务访问往往延迟较高,一个城市内的机房间的典型网络延迟在1ms左右,而跨城市的网络延迟,例如上海到北京大概为30ms。此时自然而然的一个想法就是能不能让服务消费者和服务提供者进行同地域访问。
nacos定义了一个spi接口,里面包含了与第三方cmdb约定的一些方法。用户依照约定实现了相应的spi接口后,将实现打成jar包放置到nacos安装目录下,重启nacos即可让nacos与cmdb的数据打通。
cmdb插件开发流程 参考 https://github.com/nacos-group/nacos-examples,这里已经给出了一个示例plugin实现。
具体步骤如下:
新建一个maven工程,引入依赖nacos-api:
com.alibaba.nacos nacos-api 0.7.0 引入打包插件:
org.apache.maven.plugins maven-assembly-plugin jar-with-dependencies 定义实现类,继承com.alibaba.nacos.api.cmdb.cmdbservice,并实现相关方法。
在src/main/resource/目录下新建目录:meta-inf/services
在src/main/resources/meta-inf/services目录下新建文件com.alibaba.nacos.api.cmdb.cmdbservice,并在文件里将第三步中创建的实现类全名写入该文件:
代码自测完成后,执行命令进行打包:
mvn package assembly:single -dmaven.test.skip=true 将target目录下的包含依赖的jar包上传到nacos cmdb插件目录:
{nacos.home}/plugins/cmdb 在nacos的application.properties里打开加载插件开关:
nacos.cmdb.loaddataatstart=true 重启nacos server,即可加载到您实现的nacos-cmdb插件获取您的cmdb数据。
配置服务路由类型 在控制台上,对服务进行编辑,使用同机房优先策略:
这样配置后,所有访问该服务的消费者,都会实现同机房优先策略。
支持单机模式使用mysql数据库 在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:
安装数据库,版本要求:5.6.5+
初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
修改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为例,下面是一个简单的接入说明,具体接入可以参考:https://github.com/nacos-group/nacos-sdk-nodejs
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);
恩智浦:安全的无线MCU是核心问题
AT32 MCU定时器入门指南
5G标准的推迟不会影响5G商用并且5G流量单价肯定会比4G降低
飞步科技与梅东公司续签4期合作:全球最大港口L4级无人驾驶集卡车队扩容至60台
汽车的前驱和后驱有什么区别
Nacos v0.7.0:对接CMDB,实现基于标签的服务发现能力
光编码器及光编码芯片
泰科电子推出UL1741标准新型预接线SOLARLOK汇流箱
NVIDIA即将推出首批基于开创性 NVIDIA Hopper 架构的产品和服务
全方面评测上汽大通D90 2.0T 四驱版
华为mate9保时捷款图赏 八千可入手高端到不止万元档次
10.1.3 碰撞电离MOS器件∈《集成电路产业全书》
AI接近你,你害怕吗?
利用模糊CMAC神经网络优化机械臂系统中控制器的设计
如何让嵌入式智能硬件开发如搭积木般简单?
关于紫外线探测器在紫外光刻机中的应用
MiR为工厂部署MiR500自主移动机器人来提高其仓储物流效率
PLC与伺服电机的接线方法
应用便携式设备中的D类音频放大器介绍
通信芯片的物理设计难点及IBM应用解决方案