我计划将我的monolthic服务器拆分成许多小型docker容器,但尚未找到"容器间通信"的良好解决方案.这是我的目标场景:

我知道如何将容器链接在一起以及如何公开端口,但这些解决方案都不能令我满意.
是否有任何解决方案可以通过容器之间的主机名(容器名称)进行通信,就像在传统的服务器网络中一样?
我想将多用户提要阅读器从 MySQL 迁移到 NoSQL 数据库,但我无法确定 MongoDB 还是 Neo4j 更适合该应用程序。
这是当前的数据库架构:

该应用程序具有以下用例:
用户:
订阅:
条目:
书签:
你会推荐哪个数据库?我的直觉说 MongoDB 是因为我没有“高度互连”的数据,但是我在迁移 user_entries 表时遇到了问题。也许您有一些技巧可以如何为与 MongoDB 的关系建模?
更新:Neo4j 的优势在于我可以将其嵌入到我的 Java 应用程序中。我使用 Spring Data Neo4j/MongoDB 和 QueryDSL 作为数据访问层。据我了解,Spring Data MongoDB 会自动将所有关联(@DbRef)映射到一个文档中,这可能会导致条目数量不断增加,从而产生非常大的开销。另一方面,我可以使用此处所述的手动参考:http : //docs.mongodb.org/manual/reference/database-references/