cassandra - 将 Cadence 连接到 Azure Cosmo Cassandra API
问题描述
我正在使用 docker run -e CASSANDRA_SEEDS=10.xxx e ubercadence/server: 在外部运行 cassandra 运行 cadence。并且它运行成功。
Azure cosmos 说,在 Cassandra 上运行的任何系统都可以使用 Azure cosmos 使用提供的 cosmos cassandra APi,通过修改客户端连接创建代码,例如:GO 应用示例代码:
func GetSession(cosmosCassandraContactPoint, cosmosCassandraPort, cosmosCassandraUser, cosmosCassandraPassword string) *gocql.Session {
clusterConfig := gocql.NewCluster(cosmosCassandraContactPoint)
port, err := strconv.Atoi(cosmosCassandraPort)
clusterConfig.Authenticator = gocql.PasswordAuthenticator{Username: cosmosCassandraUser, Password: cosmosCassandraPassword}
clusterConfig.Port = port
clusterConfig.SslOpts = &gocql.SslOptions{Config: &tls.Config{MinVersion: tls.VersionTLS12}}
clusterConfig.ProtoVersion = 4
session, err := clusterConfig.CreateSession()
...
return session
}
从我的角度来看,我可以将外部 cassandra 的 cqlsh(cadence 用于持久化)连接到 azure cosmos,并可以在 azure cosmo db 中创建 KeySpace、表。但是,当我运行 Cadence 服务器时,所有新表仍然在本地 cassandra 本身(而不是 Axure cosmos)上创建,可能是,cadence 仅连接到 cassandra。
所以下面基本上有2个问题:
1.cadence是用GO编写的,能否修改源码建立与AzureCosmoDb的连接。或者
- 或者我们可以在分别运行 cassandra 和 cadence 时传递 cosmocassandra 的主机、端口、用户名、密码吗(docker run -e CASSANDRA_SEEDS=10.xxx e ubercadence/server :)
cosmosCassandraContactPoint : xyz.cassandra.cosmos.azure.com cosmosCassandraPort : 10350 cosmosCassandraUser : xyz cosmosCassandraPassword : xyz
解决方案
我正在积极支持其他 NoSQL DB:https ://github.com/uber/cadence/issues/3514完成后使用 Azure cosmos/AWS Keyspace 会更容易。
基本上我们只需要从现有的 Cassandra 模型中定制一小部分。
推荐阅读
- sql - Dense_rank order by 超过 999 个字符
- reporting-services - 在 SSRS 中使用 User!UserID 访问 SSAS Cube 中的数据
- javascript - Tabulator 4 我可以扩展格式化程序而不是创建自定义格式化程序吗?
- oracle - Netsuites 保存的搜索
- node.js - 温斯顿:加密敏感信息
- apache - 如何使用具有 JNDI 属性的 Apache MQ 配置分布式主题或队列,并将 MQ 嵌入应用服务器
- json - 使用 jq 向 json 数组中的每个对象添加一个新的键/值
- c# - 使用原生 win32 gdi 绘制透明线
- acumatica - DAC 字段上的 PXSelector 导致列过滤器问题
- excel - Vlookup 在不同的行中返回多个匹配值