Подключите 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. или

  1. или мы можем передать хост, порт, имя пользователя, пароль космокассандры при запуске кассандры и каденции отдельно (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.