我们有一个整体式Rails API,该API也正在为我们的Websocket提供服务。最近,我们超过了ActionCable,我们决定将Websockets迁移到Elixir的Phoenix。
在此模型中,客户端仍然与Rails应用程序进行HTTP请求交互,但是Phoenix处理所有Websocket流量。 Rails向Phoenix传递要发送的数据以及在哪个通道上传输,然后Phoenix实质上充当了Rails发送数据的传递。
我最初是使用Redis PubSub进行设置的,以实现从Rails到Phoenix的通信。在目前的规模下,它运作良好,但我开始认为它可能是次等选择。这是我的优缺点列表:
Redis
优点:
缺点:
HTTP
优点:
缺点:
即使权衡利弊,我仍然很难说一个是明确的选择。服务之间是否存在Redis或HTTP通信模式,这些模式可以缓解我的一些问题?如果没有,那么考虑到缺点,最好选择这两个中的哪一个?
还有我要忽略的另一个简单选择吗?如果可以避免的话,我不想涉及类似Rabbit MQ的事情。