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

问题描述 投票:0回答:2

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

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

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

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

amazon-web-services amazon-ec2 elastic-beanstalk microservices aws-api-gateway
2个回答
1
投票

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

如果您打算在loyalty应用程序中调用私有API方法,那么直接调用“忠诚度”应用程序是有意义的,因为即使假设您对API网关方法拥有适当的身份验证控制,对他们来说甚至更好完全暴露在公众面前。

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


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.