我用docker run-e cassandra\u seeds=10.x.x.x e ubercadence运行cadence和cassandra外部运行/server:. 并成功运行。
azure cosmos表示,任何运行在cassandra上的系统都可以使用提供的cosmos cassandra api,通过修改客户端连接创建代码来使用azure cosmos,例如:go app示例代码:
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正在使用它来持久化)连接到azurecosmos,并且可以在azurecosmodb中创建keyspace表。但是,当我运行cadence服务器时,所有新表仍然是在本地cassandra本身(而不是axure cosmos)上创建的,可能cadence只连接到cassandra。
下面有两个问题:
1.由于cadence是用go编写的,我们可以修改源代码来建立到azurecosmodb的连接吗。或
或者我们可以在分别运行cassandra和cadence时传递cosmocassandra的主机、端口、用户名和密码(docker run-e cassandra\u seeds=10.x.x e ubercadence/server:)
COSMOSCAssandra联系人:xyz.cassandra.cosmos.azure.com cosmoscassandraport:10350 cosmoscassandrauser:xyz cosmoscassandrapassword:xyz
1条答案
按热度按时间ocebsuys1#
我正在积极支持其他nosql数据库:https://github.com/uber/cadence/issues/3514 完成后,使用azurecosmos/aws键空间会更容易。
基本上,我们只需要从现有的Cassandra模型定制一小部分。