Trino418版本动态加载catalog不需要重启集群修改思路及实现


(资料图片)

熟悉Trino 的同学应该都知道Trino新增、删除 catalog 都需要重启集群,这个生产环境里如果需要频繁增加数据源的场景是非常不友好的操作。网上关于动态加载Catalog的方案有一些,但是在Trino比较新的版本里面已经无法适用。目前官方关于这个功能一直都没有完成,详细issueDynamic Catalogs#12709。详细阅读了这个issue里面的讨论,有2个推送虽然没有被官方确认合并,但这2个推送给我了改造思路,目前推送的都是半成品,所以想要完整的实现还需要自己修改源代码实现一部分功能。 相关推送:JDBCRESTFUL API改造思路:1.catalog 统一维护存储 如 Database、Zoopkeeper、中间件 等。2.增加Restful API 接口来统一管理 管理 catalog目录3.集群重启、node节点单独重启,能加载到最新catalog目录。具体实现:1.选择数据库来实现,方便跟公司程序集成。2.按照2个github的推送,实现Database 跟 Restful 接口开发。(这部分不赘述,照着推送的代码实现就行,重点是后面的修改思路)3.第2步完成后,会发现遇到的问题

①启动后只有Coordinator节点能够正常的加载catalog目录,node节点启动的时候无法加载catalog目录。这部分是因为 官方的DynamicCatalogManagerModule 功能并不完整,只实现了Coordinator的部分的功能,下面的 Worker的加载功能并没有实现,这部分需要新增Worker加载Catalog目录功能、以及实现CatalogManager接口。

②Restful Api接口来新增catalog时候,Worker节点没有成功加载catalog: 这个是我实现过程中花了时间最长,但是又最不需要修改的地方。网上有方案修改DiscoveryNodeManager在检测心跳的时候去新增这个Catalog,但是我测试了下在比较新的Trino版本并没有作用。 另外的做定时刷新,这个可能是有用,但是并不符合我的想法,我想只有在新增的catalog时API接口触发下就行,而且立马就可以用,不需要等刷新时间。 实现方案:其实ServerMainModule里注入了RestfulAPI后,就相当于Coordinator 跟 Worker 都实现了这些API,并不是只有Coordinator才有这些功能,所以这一步只要通过/v1/node 获取到所有的node节点, 通过对应的地址去注册Catalog就行,根本就不需要去做多余的额外实现。(为了这个不需要修改的功能搞了2个星期,最后发现不需要改也能实现,崩溃。。。。。)实践效果:

1.获取node节点

2.新增catalog

Coordinator:

Worker:

不需要重启查询:

删除某个catalog:

到这里基本就完成了不重启自动加载Catalog目录的功能,但是仍然有一点小问题,经过测试同样名称的catalog新增后删除后,再新增仍然使用同样的名称跟连接器,会导致跟前面加载进去的同名连接器冲突,但是这个可以让程序上就源头上规避掉,使用过的catalog名称就不然再使用。在数据库里面把名称设为主键,删除catalog只修改状态不删除记录。

目前这个是我实现的方案,如果有更好的想法老铁欢迎留言一起交流,关于Coordinator同步了能自动同步到Worker节点的功能,网上关于这个修改的资料比较少。

关键词:

    为你推荐

    当前最新:接骨木有什么技巧?接骨木的功效与作用

    接骨木又名公道老、马尿骚等,接骨木不仅是一种常见的花卉植物,而且接骨木全株都可入药,接骨木额什么作用了,下面我们就来分享一下接骨木

    来源: 23-01-18

    【环球报资讯】和田枣和若羌枣的区别 如何挑选和田枣?

    新疆和田枣果形大、颗粒饱满、果肉厚实、皮薄核小、营养丰富,口味更甜醇。每一颗“和田枣”都是自然精华的结晶,和田枣产自新疆和田地区,

    来源: 23-01-18

    世界观点:苹果套袋技术注意什么?苹果的套袋技术

    苹果套袋是我国苹果生产中广泛采用的一项重要管理措施。苹果套袋可以改善果实外观品质,防治病虫害,减少农药残留,提高商品价值,增加经济

    来源: 23-01-18

    中国重工和中国船舶差距82% 同期涨幅仅为10%

    2022年上半年,中国重工涨幅为-8 96%,同行业的中国船舶涨幅为7 55%,两者看起来相差不大。但是,从4月27日的底部算起,中国船舶涨幅为82%

    来源: 23-01-18

    国美零售的三年蜕变:苦练内功关键数据亮眼

    5月28日晚间,京东溢价37 91%认购国美零售1亿美元的可转债,初步转股价为1 255港元 股,如最终全部行使转化权,京东将获得6 22亿股国美零

    来源: 23-01-18
    返回顶部