当前位置: 首页 > 知识库问答 >
问题:

将Cadence连接到Azure Cosmo Cassandra API(Cadence工作流)

红弘盛
2023-03-14

我正在运行节奏,卡桑德拉使用 docker run -e CASSANDRA_SEEDS=10.x.x.x e 超级数据库/服务器运行:。并成功运行。

Azure cosmos表示,任何运行在Cassandra上的系统都可以使用Azure cosmos,使用提供的cosmos cassandra APi,通过修改客户端连接创建代码,例如:GO app示例代码:

Func Get会话(cosmosCassandraContactPoint, cosmosCassandraPort, cosmosCassandraUser, cosmosCassandraPassword string)*gocql.Session{clusterConfig:=gocql.NewCluster(cosmosCassandraContactPoint)端口,错误:=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(其节奏用于持久化)连接到蔚蓝宇宙,并且可以在蔚蓝宇宙数据库中创建KeySpace表。但是,当我运行Cadence服务器时,所有新表仍然在本地卡桑德拉本身(而不是Axure宇宙)上创建,节奏仅连接到卡桑德拉。

所以下面基本上有2个问题分享:

1.由于节奏是用GO编写的,我们是否可以修改源代码以建立与 AzureCosmoDb 的连接。或

或者我们可以在分别运行cassandra和cadence时传递cosmocassandra的主机、端口、用户名、密码(docker run-e CASSANDRA _ SEEDS = 10 . x . x . e Uber cadence/server:)cosmosCassandraContactPoint:xyz.cassandra.cosmos.azure.com cosmosCassandraPort:10350 cosmosCassandraUser:XYZ cosmoscassandrappassword:XYZ

共有1个答案

廉高邈
2023-03-14

非常令人兴奋的是,Azure Cosmo 卡桑德拉现在支持 LWT!

我快速看了一下文件

我认为它可能不会直接工作,因为它不支持LoggedBatch

但Cadence正在使用记录的批处理:

我认为在Cadence中使用未记录的批处理可能可以。因为所有操作总是在一个分区中。来自Datastax文档:

单分区批处理操作是自动原子的,而多分区批处理作业需要使用批处理日志来确保原子性

这意味着对于Cadence来说,使用未标记的批次应该是相同的。(尽管我认为Cadence选择使用日志批处理以确保安全)

如果我们在Cadence Cassandra插件中稍微更改代码,它应该可以工作

 类似资料:
  • 我正在运行节奏,卡桑德拉使用 docker run -e CASSANDRA_SEEDS=10.x.x.x e 超级数据库/服务器运行:。并成功运行。 Azure cosmos表示,任何在Cassandra上运行的系统都可以使用提供的cosmos cassandra APi使用Azure cosmos,方法是修改客户端连接创建代码,例如:GO app示例代码: 从我这边开始,我可以将外部cassa

  • 为用户可视化节奏工作流的最佳方式是什么? 我想在一个高层次的视图中向用户展示工作流的不同步骤(类似于大多数食品配送应用程序的功能:下单- 我对向用户展示实际执行的节奏活动不感兴趣,因为我不希望他们看到我的工作流程的详细信息,我只想可视化他们感兴趣的某种高级阶段。 一种方法是保留工作流的高级描述,并在工作流代码本身内部进行状态转换(在启动活动 X 时将阶段 Y 标记为已启动等)。但是,我试图将这个问

  • Cadence 是 Uber 开发的一个分布式,可扩展,持久且高度可用的编排引擎,以可扩展和弹性的方式执行异步长期运行的业务逻辑。 业务逻辑被建模为工作流和活动。工作流程是协调逻辑的实现。其唯一目的是协调活动执行。活动是业务逻辑中特定任务的实现。工作流和活动实现在工作进程中托管和执行。这些工作人员长期轮询Cadence服务器以执行任务,通过调用工作流或活动实现来执行任务,并将任务结果返回给Cade

  • 假设我有用不同语言编写的工人(Java

  • 节奏工作流版本控制: 工作流执行具有以下代码: 工作流1: o/p的开始--版本1:1 工作流实施中的更改: 工作流2: o/p的开始--版本1:2 工作流实施中的更改: 工作流3: o/p的开始--版本1:3 工作流2的重放:o/p版本1: -1 工作流重播 1 : o/p --version1: -1 我期待低于o / p 重播工作流程2: o/p--版本1:2 工作流重播 1 : o/p -

  • 在执行任务时,如果出现故障,希望定义配置以在一定间隔后重试并从失败的任务中恢复。是否可以实现恢复选项?