Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nginx 负载平衡的Fiware Orion_Nginx_Supervisord_Fiware Orion - Fatal编程技术网

Nginx 负载平衡的Fiware Orion

Nginx 负载平衡的Fiware Orion,nginx,supervisord,fiware-orion,Nginx,Supervisord,Fiware Orion,我刚刚使用Nginx和supervisord创建了一个dockized负载平衡版本的OCB,分别运行Nginx平衡的Orion实例。仅用于测试目的 我的问题是,如果我使用这种方法,我会在时间间隔订阅方面遇到一些问题吗?(我不希望每个OCB流程都有“n”个通知) 任何帮助都将不胜感激。当前Orion版本(0.23.0)的工作方式如下:在创建时,LB将ONTIMEINTERVAL subscribeContext发送到其中一个CB节点,这将创建一个永久线程,负责以通知频率发送通知消息 然而,有两类问

我刚刚使用Nginx和supervisord创建了一个dockized负载平衡版本的OCB,分别运行Nginx平衡的Orion实例。仅用于测试目的

我的问题是,如果我使用这种方法,我会在时间间隔订阅方面遇到一些问题吗?(我不希望每个OCB流程都有“n”个通知)

任何帮助都将不胜感激。

当前Orion版本(0.23.0)的工作方式如下:在创建时,LB将ONTIMEINTERVAL subscribeContext发送到其中一个CB节点,这将创建一个永久线程,负责以通知频率发送通知消息

然而,有两类问题:

  • 如果客户端希望取消订阅发送unsubscribeContext,则不管理订阅的CB可能会收到该请求。因此,该操作可能会导致从数据库中删除订阅,但会继续发送通知

  • >P>考虑在给定时刻CB1托管订阅S1和S2和CB2管理S3和S4。让我们考虑CB2失败,并重新启动。CB2将在开始时“看到”四个订阅(S1、S2、S3和S4),因此创建了4个线程,最终结果是S3和S4通知被复制(由CB1和CB2同时发送)

因此,在HA和/或水平缩放场景中,不鼓励使用总时间间隔订阅。但是,请注意,所有基于ontimeeval的用例都可以在通知接收器上以相同的频率运行基于queryContext的轮询来“反转”,因此这通常不是一个大问题


编辑:时间间隔订阅。ONTIMEINTERVAL订阅有几个问题(如上面回答中所述)。实际上,它们并不是真正需要的,因为任何基于ONTIMEINTERVAL通知的用例都可以转换为等效的用例,在该用例中,接收者以相同的频率运行queryContext(并利用queryContext的功能,如分页或过滤)

谢谢@fgalan。只有一个问题:如果所有CB共享同一个mongo数据库,会发生什么(在相同的场景中)?除了上面回答文章中描述的ONTIMEINTERVAL问题外,Orion准备在共享同一mongo数据库的多节点场景中运行。答案经过编辑以添加有关从Orion 1.0.0中删除ONTIMEINTERVAL的额外信息