如何在2个aws弹性beanstalks上托管的2个应用程序之间进行通信

时间:2017-12-22 03:41:59

标签: amazon-web-services amazon-ec2 elastic-beanstalk microservices aws-api-gateway

我有两个不同的模块,一个是忠诚度,另一个是钱包。 (都是用java编写的)

忠诚度应用程序托管在AWS弹性beanstalk上,我有一个AWS API网关。

现在我要建立钱包,它需要使用忠诚度模块的一些功能。我可以把它放在忠诚之下,但它没有意义,因为它们都有不同的用途。

所以我想我会把钱包放在AWS API Gateway的另一个AWS弹性beanstalk上,但后来我想知道,如果钱包想要调用忠诚度来使用它的任何功能,应该怎么做呢?我不确定在忠诚度之上调用API网关以访问其功能是否是个好主意。或者这是一种正确的方法吗?

2 个答案:

答案 0 :(得分:1)

它是否是“正确”方式取决于您的架构和设计偏好。您可以通过API网关从另一个调用另一个beanstalk应用程序,特别是如果您正在调用公共API方法,并且一个beanstalk应用程序可以直接调用另一个(如果您的子网和安全组已设置为允许此操作(使用默认安全组设置)通过VPC确实允许这个))。

如果您打算在loyalty应用中调用私有API方法,那么直接调用“忠诚度”应用是有意义的,因为即使假设您对API网关方法有适当的身份验证控制,更好的是他们根本不会暴露给公众。

更一般地说,如果应将loyaltywallet个应用视为同一个服务的一部分,那么我会将两者放在相同< / em> API网关实例,允许wallet直接调用loyalty,而无需通过API网关。

答案 1 :(得分:-1)

我不擅长AWS,但据我了解,您的问题听起来像是在混合部署结构和源代码结构。我认为你可以为两者编写共享源代码,并单独部署dll(而不是AWS中的dll)。我认为调用API网关并不好。