搬运君又来搬运优质 Discussions 啦,发起者来源于 GitHub zhfeng
zhfeng:
功能要求
- 创建一个 quarkus 扩展就像
quarkus-sharding-sphere
- 它应该利用 Quarkus 数据源
- 它需要
ShardingSphereDataSource
使用application.properties
或 yaml 配置生成 bean 。 - 需要支持 JVM 和 Native 模式
欢迎任何反馈!
tristaZero:
嘿@zhfeng,
你的想法我觉得不错。 你想添加quarkus.datasource.db-kind=shardingsphere
?我能知道你为什么要添加shardingsphere-db-kind
的Quarkus
?
我很好奇人们会选择哪种场景Quarkus-dataSource
?
zhfeng:
是的,这应该是添加 .db 类型的一种选择shardingshpere
。我想在接下来的几周内创建一个 PoC 项目。
它应该利用 Quakrus 本机模式通过使用 Graal VM 将 shardingsphere 应用程序构建到本机执行中。这可以提高运行时的启动速度和内存。
另外我认为如果人们想用 Quarkus 框架构建一个云原生应用程序并且还想使用数据库分片功能,shardingsphere
应该是他们的第一和最佳选择。
zhfeng:
我只是创建了一个初始 repo https://github.com/zhfeng/quarkus-shardingsphere-jdbc。@tristaZero你能检查一下名字是否合适吗?目前 Quarkus 有https://github.com/quarkiverse/来保存所有的 3rd 方扩展。无论如何,我们也可以选择将扩展保存在 shardingsphere repo 中。
tristaZero:
听起来很有趣,我更喜欢融入 Quarkus 生态系统,让Quarkus
用户利用 ShardingSphere。
BTW,如果ShardingSphere轮流使用Quakus的dataSource,你怎么看?我的意思Vert.x
是DataSource。
期待您的评论,您的想法看起来很有吸引力。
zhfeng:
它可能依赖于 JdbcDataSourceBuildItem 并创建一个 Map<String, DataSource> ,它可能会传递给 ShardingSphereDataSourceFactory 以在运行时创建一个新的数据源。
zhfeng:
好的,我在 Quarkus 生态系统上创建了https://github.com/quarkiverse/quarkus-shardingsphere-jdbc。
zhfeng:
看来现在支持原生模式有点困难。shardingsphere 需要一些依赖来支持 graalvm 编译。我会继续调查并在这里收集一些信息
- 升级到 antltr 4.8 将 antlr4 升级到 4.8 #12791
- apache calcite CALCITE-4786 方便使用 graalvm 本机图像编译
- apache curator 这可能是动态创建客户端的一些问题
terrymanu:
apache curator 是 ShardingSphere 的可选依赖,先用 etcd 试试怎么样?
zhfeng:
好的我明白了。我试图让一个简单ShardingSphereDataSource
的工作开始。顺便说一句,如果 curator 是可选的,为什么 shardingsphere-jdbc-core 依赖于它?
zhfeng:
@terrymanu @tristaZero我只是想知道我们是否有一些链接来详细解释每个 shardingsphere 配置application.properties
?
quarkus.shardingsphere.rules.sharding.default-sharding-column=account_id
quarkus.shardingsphere.rules.sharding.binding-tables=t_order,t_order_item
quarkus.shardingsphere.rules.sharding.broadcast-tables=t_address
我想确保这些与shardingsphere -spring-boot-starter
.
为了中文开发者更好的查阅,讨论已经翻译成中文
详情链接点击 这里