Nacos 1.1.4 发布,业界率先支持 Istio MCP 协议
Nacos是阿里巴巴开源的服务发现与配置管理项目,本次发布的1.1.4版本,主要带来的是与Istio的对接功能,使用的是Istio最新的MCP协议。本文将介绍包括这个功能在内的新版本发布的功能。
升级指南
服务端
0.8.0及以上版本:
- 解压安装包后替换{nacos.home}/target/nacos-server.jar
- 逐台重启Nacos Server即可
0.8.0以下版本,先升级到1.0.0版本。
客户端
替换pom依赖即可。
支持Istio MCP协议
这是本次版本最大的更新,主要是实现了Nacos服务数据往Istio下发的功能,也是目前业界所有注册中心里面第一个由官方提供的MCP协议对接版本。Pilot最新的设计中,是使用MCP协议来与所有后端的数据源进行交互的。这样做的好处是可以解耦所有扩展组件的代码,Pilot保持轻量的逻辑,在代码质量、组件稳定性及扩展性方面都大幅提升。我们可以看一下Pilot官方提供的Pilot设计图,地址详情参考这里。
图1 Pilot的最新设计概念图
虽然在设计图中,Pilot后端的MCP Server已经有了Consul、Eureka等,但是这些项目目前都没有官方支持的MCP Server。Nacos是目前首个官方支持Istio MCP协议的项目。
关于MCP协议的设计,可以参考Istio的文档。Nacos实现的MCP Server,目前使用的是单个服务编号,全量服务推送的模式,因为目前Pilot还不支持增量的服务数据推送(Nacos 1.1.4发布之后,Pilot已经支持了endpoint级别的增量推送,Nacos也会在下个版本支持)。实现的逻辑就是启动一个gRPC Server来进行MCP数据的传输,代码可以参这里。
图2 Nacos MCP Server架构
使用Nacos MCP Server的方式如下:
1、下载最新的Nacos 1.1.4安装包,解压;
2、配置application.properties,然后重启Nacos;
nacos.istio.mcp.server.enabled=true
注意:如果Nacos是集群部署,则只需要配置一台Server启动MCP Server即可,因为每台Nacos Server的数 据都是全量的。同时Nacos MCP Server使用的端口是18848,请注意端口是否冲突;
3、配置Pilot使用Nacos MCP Server:
configSources
-- address: x.x.x.x:18848
4、重启Pilot;
自定义实例ID
在之前的版本中,Instance类的instanceId字段,是用来作为唯一标识这个instance的属性,它的值默认是不能由客户端来指定的。在1.1.4版本中,我们支持了允许客户端自定义ID以及一个新增加的instanceId生成算法:一个服务内唯一的整数,这个整数可以用来作为实例在服务内的唯一索引。这个功能由vettal-wu贡献,非常感谢。
这个整形instanceId的使用方式为在注册时配置instance的metadata,指定使用该id生成算法,样例代码如下:
Instance instance = new Instance();
instance.setIp("1.1.1.1");
instance.setPort(80);
// 必须设置ephemeral=false,来保证服务端使用的是严格的一致性协议,否则可能会导致生成的instance id冲突:
instance.setEhpemeral(false);
instance.setMetadata(new HashMap<String, String>());
instance.getMetadata().put(PreservedMetadataKeys.INSTANCE_ID_GENERATOR, Constants.SNOWFLAKE_INSTANCE_ID_GENERATOR);
Nacos在这个版本也有一些关于代码质量上的优化更新,具体可以参考1.1.4版本issue列表。
如何共建
为了实现这一目标,你需要积极参与Nacos社区。如果您在文档中发现拼写错误,在代码中发现错误,或想要新功能或想要提供建议,您可以在GitHub上创建一个issues。
如果您想开始着手,可以选择github仓库中有以下标签的issues。
good first issue:对于新手来说是非常好的入门issues。
contribution welcome:非常需要解决的问题和非常重要的模块,但目前缺少贡献者,欢迎贡献者来贡献。
蓬勃发展的 Nacos 社区
DISS is cheap, show me your hand
比吐槽更重要的是搭把手,参与社区一起发展 Nacos
作为用户关注和加入 Nacos 社区
Nacos 社区正在蓬勃发展,截止到发文为止,Nacos 短短几个月已经有 9 个微信群,其中 7 个已满员,1个QQ群,1个钉钉群,关注 Nacos 的社区人数已经近5000人,在 Nacos 群里跟 “道(基)友” 切磋技术,交流经验,招聘交友,抢抢红包...不亦乐乎。
- 作为代码贡献者加入 Nacos 社区
从Nacos用户发展而成贡献者顺理成章,而Nacos开发团队也确实在日趋壮大,从开始的只有4个代码contributor发展到目前的40多个,1.1.4版本中,参与Nacos仓库贡献的开发者有:stackisok,loadchange, ly641921791, EZLippi, rushsky518, universefeeler, nkorange, vettal-wu, beldon等。
新人时刻 - "什么是Nacos?"
还不知道什么是Nacos? 没关系,在github上star一下跟程序猿兄弟打个招呼吧!!
Nacos 是阿里巴巴于2018年7月份新开源的项目,Nacos的主要愿景是期望通过提供易用的 动态服务发现、服务配置管理、服务共享与管理 的基础设施,帮助用户在云原生时代更好的构建、交付、管理自己的微服务平台。
github项目地址在这里。
更多与 Nacos 相关的开源项目信息
- Nacos
- Dubbo Registry Nacos
- Nacos DNS-F
- Nacos Docker
- Nacos Spring Project
- Nacos Spring Boot
- Spring Cloud Alibaba
- Dubbo
- Sentinel
- Spring Cloud
- Nepxion Discovery
- Spring Cloud Gateway Nacos
下期预告:Nacos的下个版本是1.2.0版本,将会支持社区广泛关注的权限控制功能,敬请期待。
本文作者:中间件小哥
本文为云栖社区原创内容,未经允许不得转载。
Nacos 1.1.4 发布,业界率先支持 Istio MCP 协议的更多相关文章
- Code Runner,率先支持刚发布的 Visual Studio 2022!
Visual Studio 被不少网友成为"宇宙第一IDE".但是,我写✍ PHP.Java 和 C#,也都是用的 VS Code. 我所在的组,是 Visual Studio C ...
- 青云QingCloud业内率先支持云端全面透明代理功能 | SDNLAB | 专注网络创新技术
青云QingCloud业内率先支持云端全面透明代理功能 | SDNLAB | 专注网络创新技术 青云QingCloud业内率先支持云端全面透明代理功能
- Win10《芒果TV》商店版更新v3.4.0:率先支持创意者画中画,工作娱乐两不误
在Win10创新者更新中,微软为Windows10 PC系统添加了UWP应用窗口置顶功能(亦称画中画功能),Win10版<芒果TV>更新v3.4.0,率先宣布支持画中画新特性,为广大用户带 ...
- 《芒果TV》UWP版利用Windows10通用平台特性,率先支持Xbox One平台
在Windows开发者中心开放提交Xbox平台应用之后,<芒果TV>UWP版迅速更新v3.1.2版,通过升级兼容目标,利用Windows10通用平台特性,率先覆盖Xbox平台用户. 芒果T ...
- Win10《芒果TV》商店内测版更新至v3.1.6:率先支持Xbox One平台 - 参与反馈,赢取VIP奖励
芒果TV For Win10商店内测版 v3.1.6 于2016年9月1日星期四下午正式登陆商店 主要是优化手机版视频下载相关设置.策略.风险提示,并升级兼容目标,率先支持Xbox One平台,覆盖更 ...
- [转帖]银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP
银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP https://news.cnblogs.com/n/652299/将手机操作系统 转移到 桌面 跟chromebook 类似的策略吧 ...
- [转帖]AIDA64 6.10版发布:全面支持中国兆芯、海光x86 CPU
AIDA64 6.10版发布:全面支持中国兆芯.海光x86 CPU https://www.cnbeta.com/articles/soft/892877.htm 支持国产x86了 作为硬件识别工具领 ...
- CentOS6下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具)
1.先添加几个RPM下载源 1.1)安装RPMforge的CentOS6源 [root@AY130611215205Z ~]# wget -c http://pkgs.repoforge.or ...
- SQL 2005远程连接是出错(provider: SQL 网络接口, error: 28 - 服务器不支持请求的协议
SQL 2005远程连接是出错(provider: SQL 网络接口, error: 28 - 服务器不支持请求的协议 sql远程连接服务器网络sql serversqlserver 解决方法:在服务 ...
随机推荐
- vfs之mount()
首先明确一点,mount是vfs层的操作. 它的核心是从设备(可能是一个分区)上读出一个super block,把这个分区对应的文件系统的vfs函数表注册到super block的sb_opearti ...
- 2,Spring MVC 学习总结(二)- 方法(Action)参数映射
一,Controller层方法(Action)参数映射 1,自动参数映射 1.1,基本数据类型参数映射 方法的参数可以是任意基本数据类型,如果方法参数名与http中请求的参数名称相同时会进行自动映射. ...
- php addcslashes()函数 语法
php addcslashes()函数 语法 作用:返回在指定字符前添加反斜杠的字符串 语法:addcslashes(string,characters) 参数: 参数 描述 string 必须,规 ...
- 【LeetCode 73】矩阵置零
题目链接 [题解] 如果a[i][j]==0. 就把第i行的第一个数字置为0 然后把第j列的第一个数字置为0 最后再处理下每行第一个为0的行.每列第一个为0的列. (第一行和第一列都得用同一个位置处理 ...
- tracert命令 -网络管理命令
Tracert是路由跟踪程序,用于确定 IP 数据报访问目标所经过的路径.Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由. 在工作 ...
- [CSP-S模拟测试]:大新闻(主席树)
题目传送门(内部题20) 输入格式 第一行为两个数$n,m$,意义如题所述.接下来一行$n$个数,代表一开始$n$条大新闻的$naive$值.接下来$m$行,每行一个操作,输入格式如下:读入$1$,代 ...
- LintCode之奇偶分割数组
题目描述: 我的分析:题目要求将奇数放在偶数的前面,没有要求将奇数或偶数排序,因此我可以设置两个指针,一个(i)指向数组第一个数字,另一个(j)指向数组的最后一个数字,因为奇数要放在前面,所以从后往前 ...
- 左手Mongodb右手Redis 第一章,进入Mongodb和Redis的世界
---恢复内容开始--- 1,为什么要使用非关系型数据库,关系型数据库咋滴,不能用嘛? 存在即合理,非关系型数据库的出现,那说明关系型数据库不适用了. 非关系型数据库(NOSQL)-->Not ...
- linux下载文件到本地命令
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/mengda_lei/article/de ...
- 在Windows及Linux下获取毫秒级运行时间的方法
在Windows下获取毫秒级运行时间的方法 头文件:<Windows.h> 函数原型: /*获取时钟频率,保存在结构LARGE_INTEGER中***/ WINBASEAPI BOOL W ...