是否针对不同的应用程序使用相同的Redis实例来反对分离关注原则?

时间:2015-06-08 15:30:11

标签: design-patterns separation-of-concerns

我有一个应用程序A 严格 与应用程序B一起使用。它们是一大堆的一部分。

目前,他们通过HTTP调用互相交流。当应用A需要某些内容时,它会向应用B发送HTTP API调用。但由于HTTP比Redis调用慢得多,我考虑改变我的流程,因为使用Redis set / gets而不是HTTP调用。

没有任何其他应用需要与AB具有相同的关系。

那么,是否正在使用Redis在两个应用程序之间共享数据而不是API调用以防止关注点分离?

1 个答案:

答案 0 :(得分:0)

  

那么,是否正在使用Redis在两个应用程序之间共享数据而不是API调用以防止关注点分离?

关注点分离是关于你的代码没有与其他类/系统紧密耦合。如果您将应用程序硬件连接到Redis,那么您已经违反了SoC原则。

目前,您似乎拥有消费者 - 生产者架构。做你打算做的事情意味着你正在转向基于存储库的arcitecture。

主要问题是你将如何组织你的组件。

看起来你可以按照以下方法之一进行操作:

  1. Redis在与应用程序A(或B)相同的服务器上运行,应用程序B(或A)在需要时通过网络访问它。

  2. Redis在应用程序A和B服务器上运行,作为群集运行。

  3. Redis在单独的服务器上运行,应用程序A和B服务器将在必要时通过网络访问它。

  4. 此外,您可能必须在redis实现之上创建一个层,以将您的应用程序与特定存储实现分离。

    只有一个数据访问点而不是两个点会引导您走向SoC原则,而不是相反。