我有一个带有直接绑定逻辑端口的业务流程.让我们称之为"O1"O1订阅消息类型"A"(在接收端口的filter属性中指定)
当O1收到类型为"A"的消息时,它会在完成之前等待一些用户输入.(这里有一些相关性)
到现在为止还挺好...
我有第二个编排,"O2",它构造并将"A"类型的消息推送到消息框.
当发生这种情况时,我会启动许多O1实例.我能想到的只是,只要存在O1的实例,消息仍然可以在消息框上供订阅者使用.所以,我将获得不断创建业务流程的实例.
当Orchestration正在处理消息时,它是否会保留在消息框中直到完成?
非常感激有人可以解释发生了什么以及我错过了什么!
服务编排和聚合有什么区别?在 SO 的类似帖子中,有人提到这两个术语之间只有一线之隔。能否获得有关这条细线的更多详细信息?此外,什么是服务增强以及它如何与另外两个概念相关。
作为平台设置编排的一部分,我们使用python包在云中的机器集群上安装各种软件包.
我们有以下场景:
我们能做什么 - 我们成功地在单独的厨师烹饪书的帮助下在我们的集群机器中单独安装ambari服务器和ambari代理.
我们无法做什么 - 我们如何修改每台机器的ambari-agent属性文件,使其指向我们的ambari服务器IP.总的来说,作为Chef orchestration的一部分,将基于群集的软件连接起来的优雅方式是什么?
NB:.ambari-server是在飞行中创建的,因此它的IP是在运行时获得的.
可能吗?有没有上述问题的替代方案?
谢谢
我正在阅读这篇文章,称为事件驱动架构中的变体,它们演示了中介和代理拓扑.
根据文章,中介拓扑看起来有点像这样:
事件流开始于客户端将事件发送到事件队列,该事件队列用于将事件传输到介体.该事件介体接收初始事件,并通过发送附加异步事件编排该事件的事件通道以执行该过程的每个步骤.监听事件通道的事件处理器从偶数调解器接收事件并执行特定的业务逻辑来处理事件[...]重要的是要注意事件调解器实际上并不执行必要的业务逻辑处理初始事件,而不是它知道处理事件所需的步骤[...]事件通道可以是消息队列o消息主题.
所以,我正在研究这个图,试图理解中介如何确定给定处理器何时完成处理给定事件,以便它可以协调下一步的过程.
它说的文章不够清楚
对于每个初始事件步骤,事件中介器创建处理事件,发送该处理事件并等待相应事件处理器处理处理事件.此过程将继续,直到处理完初始事件中的所有步骤.
现在,文章清楚地表明通信是异步的,并且事件消息将通过消息队列传播,但该图不显示从事件处理器发出并返回到调解器的任何事件.
文章说调解员等待事件处理器完成,但目前尚不清楚这应该如何在架构方面发生.
它是异步的,基于队列的RPC(例如Rabbit RPC),还是有另一个侦听器在某处等待异步响应?
有关如何从架构的角度实现这一点的任何想法?
events event-driven-design event-driven orchestration microservices
我有一个耐用的功能扇出和输入模式,但似乎工作不可靠。每 10 分钟从 Timer 函数调用一次 Orchestration,但此后已将其增加到 20 分钟。使用 context.CallActivityAsync 调用 Activity 函数并返回一个整数(已处理的行数)。目前,传入的 workItems 应该只包含 2 个要处理的项目。第一项处理所有行并在日志中显示完整的行。第二项有时显示正在处理的行,但在某些时候它只是停止...没有其他活动被识别,并且“完成”永远不会显示在日志中。另外,第二个活动有时会显示它同时运行多次...我已经在我的开发机器上使用相同的数据尝试了这个确切的代码,并且它处理完成的时间不超过 5 分钟。我还将hosts.json 文件设置为
{
"version": "2.0",
"functionTimeout": "00:10:00",
"extensions": {
"queues": {
"maxPollingInterval": "00:00:05"
}
}
}
Run Code Online (Sandbox Code Playgroud)
编排:
public static async void RunOrchestrator(
[OrchestrationTrigger] DurableOrchestrationContext context, ILogger log)
{
log.LogInformation($"************** Fanning out ********************");
var parallelTasks = new List<Task<int>>();
//object[] workBatch = await context.CallActivityAsync<object[]>("GETVendors", null);
object[] workBatch = GETVendors(log); //work batch only has 2 items
for (int i = 0; i<workBatch.Length; i++)
{
Task<int> task …Run Code Online (Sandbox Code Playgroud) 我有一个作为 Web 服务运行的应用程序,它根据用户请求向 Spark 提交作业。每个用户需要限制作业队列。我计划使用 Airflow 作为编排框架来管理作业队列,虽然它支持并行 DAG 执行,但它针对批处理而不是实时进行了优化。Airflow 是否旨在每秒处理约 200 次 DAG 执行并具有多个队列(每个用户一个),还是我应该寻找替代方案?
我正在尝试实施 Azure Durable Function 工作流。
每 6 分钟我就有一个 Azure TimerTrigger 函数调用一个 Azure 编排函数 (OrchestrationTrigger),它依次启动许多活动函数 (ActivityTrigger)。
然而,有时,Orchestration 函数会在几秒钟内被调用两次!这是一个大问题,因为我的活动函数不是幂等的!
下面是我的代码是如何被调用的。
定时器触发功能:
[FunctionName("StartupFunc")]
public static async Task Run([TimerTrigger("0 */6 * * * *", RunOnStartup = true, UseMonitor = false)]TimerInfo myStartTimer, [OrchestrationClient] DurableOrchestrationClient orchestrationClient, TraceWriter log)
{
List<OrchestrationModel> ExportModels = await getData();
string id = await orchestrationClient.StartNewAsync("OrchestratorFunc", ExportModels);
}
Run Code Online (Sandbox Code Playgroud)
编排功能:
[FunctionName("OrchestratorFunc")]
public static async Task<string> TransformOrchestration([OrchestrationTrigger] DurableOrchestrationContext context, TraceWriter log)
{
var dataList = context.GetInput<List<OrchestrationModel>>();
var tasks = new List<Task>();
foreach (var data in …Run Code Online (Sandbox Code Playgroud) 我有一个使用 kubeadm (不是 minikube)安装了 kubernetes 的虚拟机。VM 充当集群的单个节点,删除了污点以允许它充当主节点和工作节点(如 kubernetes 文档中所示)。我已经保存、传输并加载了我的应用程序:测试图像。我可以使用 docker run 轻松运行容器。当我运行sudo docker images时它会出现。
当我创建使用此映像的部署/pod 并指定Image-PullPolicy: IfNotPresent或Never时,我仍然遇到ImagePullBackoff错误。描述命令显示它尝试从 dockerhub 中提取图像...
请注意,当我尝试使用因创建另一个 pod 而拉取的本地映像时,ImagePullPolicies 似乎可以工作,没有问题。尽管当我运行 sudo docker images --all 时图像没有出现。
如何在 kubernetes 中使用 pod 的本地镜像?有没有办法在不使用私有存储库的情况下做到这一点?
我们目前使用核心 Activiti 5.22.0.5 版本来编排 spring-boot 微服务,现在需要将 Activiti 升级到最新版本 Activiti 7.x
有人可以告诉我最新版本有哪些附加功能,并告诉我是否可以直接升级到最新版本吗?
如果不可能,那么我们的升级流程应该是什么?
(例如:Activiti 5.22.0.5 -> Activiti 6.x -> Activiti 7.x 或其他)
如果有人做过类似的要求,请帮助我?如果没有,请在列表中让我知道这些版本之间的区别以及最新版本中提供的功能。
提前致谢
我有一个服务 A,它通过 REST API 调用另一个服务 B(以及其他一些服务)。问题是服务 B 的容量非常低,它每秒只能处理 3 个请求,因此对我的服务 A的许多调用由于调用服务 B超时而失败。
有什么办法可以解决这个问题吗?我正在考虑对服务 B的调用进行排队,这样至少对服务 A 的调用不会失败,并且还限制我的服务 A 的速率,但我想看看是否有任何方法可以以某种方式绕过服务 B限制。
顺便说一句,我无权修改服务 B。
orchestration ×10
soa ×2
activiti ×1
aggregation ×1
airflow ×1
alfresco ×1
automation ×1
azure ×1
binding ×1
biztalk ×1
c# ×1
chef-infra ×1
cloud ×1
containers ×1
event-driven ×1
events ×1
kubernetes ×1
python ×1
rest ×1
spring ×1
workflow ×1