有一个物联网数据收集项目和一个物联网数据处理项目。它们是单独开发和维护的。然而,在奥尔良筒仓(或筒仓集群)中共享它们之间的共同谷物将是有益的。架构在自托管场景中的外观如何 - 一个单一的筒仓,其中引用两个项目以在筒仓内进行通信或两个独立的筒仓与外部通信?如果在单个筒仓中,筒仓能否动态发现grain .dll?
问问题
524 次
1 回答
2
可能会有更好的答案,但在那之前:
有一些取舍。在性能方面,最好将所有粒度(所有服务)分布在集群中。这样每个grain都通过Orleans基础设施与其他grain进行通信(我猜这是通过tcp的二进制序列化消息),没有任何额外的开销。但是,当每个服务(或项目)都有自己的孤岛时,除了 Orleans 之外,您还需要一个网关(可能是 HTTP 侦听器)。但是,在第一个示例中,您的服务变得耦合。你不能部署新版本的服务,只要有一个筒仓运行它的旧版本(否则,可能有 2 个相同实体的颗粒)。但是,如果您关闭了该筒仓,您将关闭其余的服务。这是一个非常重要的问题。
如果在单个筒仓中,筒仓可以动态发现grain .dll 的吗?
不明白你的意思。当筒仓启动时,它会在其文件夹中递归搜索 dll,如果找到颗粒,则加载它们。
于 2015-08-16T11:10:09.947 回答