2016-12-08 42 views
0

我有一个Rails应用程序,我搬到了docker。该过程迫使我将应用程序分成2个微服务:主应用程序和地址验证微服务。我将地址验证微服务封装到我的主应用程序调用的另一个Rails应用程序中。它使用rest-client,它会阻塞,直到收到响应。微服务应该如何在Docker中彼此交谈

请求用于在300ms内处理。现在,他们需要1.3秒。在查看newrelic数据之后,似乎大部分时间都花在主要的Rails应用程序中,称为地址验证Rails应用程序。微服务应该在容器之间进行通信吗?我想我的问题是具体的Ruby/Rails。我应该看看RabbitMQ吗?问题是我很早就需要一个经过验证的地址到流中,所以我不确定到地址验证微服务Rails应用程序的异步请求会花费多少时间来购买我。

newrelic data

+0

在迁移到微服务/码头服务器之前,您是如何打电话给您的地址验证服务的?服务有很大改变吗?调用本地Web服务会增加很多时间似乎很奇怪,除非它是并发问题。您可以尝试使用typheous或em-http-request进行非阻塞请求 – Matt

+0

地址验证是内部呼叫。我只是把这些类放到一个新的Rails应用程序中。 –

回答

0

事实证明,地址验证微服务出现了问题。我在地址验证中启用了设计,并且用户查找/更新操作花费了大量时间。我仍然不确定他们为什么要这么长时间,但是一旦我禁用了他们,我就回到了正常的数字。我需要找出设计中发生了什么。这仍然不是我用内部呼叫所做的,但docker &微服务并不那么糟糕。