Подключите Cadence к API Azure Cosmo Cassandra
Я использую cadence с внешним запуском cassandra, используя docker run -e CASSANDRA_SEEDS=10.xxx e ubercadence/server:. и он работает успешно.
В 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
}
Со своей стороны, я могу подключить внешний cqlsh cassandra (который cadence используется для сохранения) к лазурному космосу и могу создать KeySpace, таблицу в лазурном cosmo db. Однако, когда я запускаю сервер Cadence, все новые таблицы по-прежнему создаются на самой локальной кассандре (вместо Axure cosmos), может быть, каденция подключена только к кассандре.
Итак, в основном есть два вопроса, представленных ниже:
1. Поскольку каденция написана на GO, можем ли мы изменить исходный код, чтобы установить соединение с AzureCosmoDb. или
- или мы можем передать хост, порт, имя пользователя, пароль космокассандры при запуске кассандры и каденции отдельно (docker run -e CASSANDRA_SEEDS=10.xxx e ubercadence/server:)
cosmosCassandra Контактная точка: xyz.cassandra.cosmos.azure.com cosmosCassandraPort: 10350 cosmosCassandra Пользователь: xyz cosmosCassandra Пароль: xyz
0 ответов
Я активно работаю над поддержкой других баз данных NoSQL: https://github.com/uber/cadence/issues/3514 этого будет проще использовать Azure cosmos/AWS Keyspace.
По сути, нам просто нужно будет настроить небольшую часть существующей модели Cassandra.