Подключите Cadence к API Azure Cosmo Cassandra

Я использую cadence с внешним запуском cassandra, используя docker run -e CASSANDRA_SEEDS = 10.x.x.x 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.x.x.x e ubercadence / server :)

космосКассандраКонтактная точка: xyz.cassandra.cosmos.azure.com космосКассандраПорт: 10350 космос


person Ashutosh Kumar    schedule 07.08.2020    source источник


Ответы (1)


Я активно работаю над поддержкой других баз данных NoSQL: https://github.com/uber/cadence/issues/3514, после этого будет проще использовать Azure cosmos / AWS Keyspace.

По сути, нам просто нужно будет настроить небольшую часть существующей модели Cassandra.

person Long Quanzheng    schedule 19.09.2020