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

对接CMDB实现就近访问

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

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

CMDB插件开发流程

参考 github.com/nacos-group…,这里已经给出了一个示例plugin实现。
具体步骤如下:

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

            <dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-api</artifactId><version>0.7.0</version></dependency>复制代码
  2. 引入打包插件:

                <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration></plugin>复制代码
  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数据库,数据库初始化文件:nacos-mysql.sql

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

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

再以单机模式启动nacos

sh startup.sh -m standalone复制代码

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

支持Node.js客户端

在 Java 版本客户端推出之后,我们一直思考多语言版本,在对多语言的调研中,Node.js 的呼声是最高的,不少 Node.js 开发者都期盼着有原生的 Node.js 客户端可以使用。
如今我们推出了第一版客户端,完成了常见的增删改查功能,借由此,向多语言化迈出了第一步。

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

import {NacosConfigClient} from 'nacos';   // ts
const 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 v0.7.0:对接CMDB,实现基于标签的服务发现能力相关推荐

  1. Nacos 发布 v0.8.0 Pre-GA版本,安全稳定上生产

    2019独角兽企业重金招聘Python工程师标准>>> 服务注册和服务配置开源项目 Nacos 本周发布了 v0.8.0 Pre-GA 版本,作为开源项目生命周期中的里程碑版本之一, ...

  2. Nacos 发布 v0.8.0 Pre-GA版本,安全稳定上生产 1

    服务注册和服务配置开源项目 Nacos 本周发布了 v0.8.0 Pre-GA 版本,作为开源项目生命周期中的里程碑版本之一,v0.8.0 Pre-GA版本支持登录.命名空间.Metrics监控(对接 ...

  3. 聊一聊和Nacos 2.0.0对接那些事

    前言 nacos 2.0.0 已经发布了 alpha1, alpha2 和 beta 三个版本了,部分测试报告也已经出来了. Nacos2.0.0-ALPHA2 服务发现性能测试报告 Nacos 2. ...

  4. 基于SAML 2.0对接阿里云的SSO(单点登录)

    背景 公司使用的阿里云作为公有云,每次员工入职或离职时同时需要维护两套账号(一套内部账号,一套阿里云RAM账号),为了让用户能够使用内部账号能访问阿里云,所以决定对接阿里云的SSO 主流程介绍 用户访 ...

  5. Nacos发布 v0.2 版本,无缝支持 Spring Cloud 微服务生态及高可用集群模式

    2019独角兽企业重金招聘Python工程师标准>>> 近日,阿里巴巴新开源项目Nacos 发布了 v0.2 版本,该版本开始支持完整的Spring生态技术栈,这包括 Spring ...

  6. OpenYurt v0.4.0 新特性发布:高效地管理边缘存储资源

    作者 | 高文俊 来源|阿里巴巴云原生公众号 ​ 简介 OpenYurt 是由阿里云开源的基于原生 Kubernetes 构建的.业内首个对于 Kubernetes 非侵入式的边缘计算项目,目标是扩展 ...

  7. 构建新模式java_Nacos 1.3.0 来了,基于全新内核构建!

    本文系投稿,作者:廖春涛(春少) 经过一年多发展,1.2.0版本已经从安全上解决上生产的最后疑虑,解决用户主要诉求. 经过社区讨论,从1.3.0版本开始修炼内功,聚焦"简单".&q ...

  8. Databend v0.9.0 版本发布

    各位社区小伙伴们,历经数月开发,Databend 于 2023 年 1 月 13 日迎来了 v0.9.0  版本的正式发布! 这次新版本是 Databend 迈向 1.0 版本的最后一个大版本,也是迄 ...

  9. Nacos 1.3.0 发布, 全新内核构建

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 1.3.0版本开始修炼内功,聚焦"简单".&q ...

最新文章

  1. 2021襄阳谷城高考成绩查询,2021高考襄阳谷城县考生求助电话
  2. 这可能是东半球最保姆级的后台服务器开发学习路线
  3. java 写文件 错误码_JAVA-读取文件错误1(错误)
  4. numpy 创建加一行_数据科学|可视化图解Python科学计算包Numpy
  5. python/Django(增、删、改、查)操作
  6. 29.rust类型转换.rs
  7. 讲字节数组转化为base64_Base64编码简介及简单实现
  8. 2019计算机应用基础期末考试试题,2019-2020年度公共课计算机应用基础考试试题附答案...
  9. 基于‘BOSS直聘招聘信息’分析企业到底需要什么样的PHPer
  10. IE和FF获得键盘码
  11. python什么是可变参数_详解Python的三种可变参数
  12. iOS直播点赞动画,iOS直播心型点赞动画
  13. Android的Crash日志记录
  14. 一文详解双目立体匹配算法:ELAS
  15. 【Linux环境下C语言编程】
  16. 如何根据光学中像差(相位)求出其点扩散函数
  17. 计算机主机外接电源,电脑DIY必修课,电源接口详解
  18. Java 开发微信公众号(订阅号)
  19. 大数据开发工程师是做什么的?岗位要求高吗?
  20. mysql中表结构是什么_查询MySQL数据库中表结构

热门文章

  1. Google Test(GTest)使用方法和源码解析——结果统计机制分析
  2. Caffe源码中caffe.proto文件分析
  3. matlab 全局变量
  4. 【C++】C++11 STL算法(四):二分查找法(Binary search operations)、合并操作
  5. accp8.0html作业,Accp8.0HTML标签
  6. parameter缩略语_缩略语
  7. arduino nano 蓝牙_探索 Golang 云原生游戏服务器开发,5 分钟上手 Nano 游戏服务器框架...
  8. sftp shell 批量上传文件_Shell自动上传下载文件到SFTP服务器
  9. python解复杂方程_Python数据处理篇之Sympy系列(五)---解方程
  10. centos 欢迎字符串_Centos系统用户密码字符串生成命令-shadow