Amazon web services AWS SQS和ElasticBeanStalk环境设置

Amazon web services AWS SQS和ElasticBeanStalk环境设置,amazon-web-services,amazon-elastic-beanstalk,amazon-sqs,worker,Amazon Web Services,Amazon Elastic Beanstalk,Amazon Sqs,Worker,以下是我针对aws sqs的spring配置 <bean id="CredentialsProviderBean" class="com.myapp.util.ClasspathPropertiesFileCredentialsProvider" /> <bean id="ConnectionFactoryBuilder" class="com.amazon.sqs.javamessaging.SQSConnectionFactory$Builder">

以下是我针对aws sqs的spring配置

<bean id="CredentialsProviderBean"
    class="com.myapp.util.ClasspathPropertiesFileCredentialsProvider" />

<bean id="ConnectionFactoryBuilder"
    class="com.amazon.sqs.javamessaging.SQSConnectionFactory$Builder">
    <property name="regionName" value="us-east-1" />
    <property name="numberOfMessagesToPrefetch" value="1" />
    <property name="awsCredentialsProvider" ref="CredentialsProviderBean" />
</bean>

<bean id="ConnectionFactory" class="com.amazon.sqs.javamessaging.SQSConnectionFactory"
    factory-bean="ConnectionFactoryBuilder" factory-method="build" />

<bean id="Connection" class="javax.jms.Connection" factory-bean="ConnectionFactory"
    factory-method="createConnection" init-method="start" destroy-method="close" />

<bean id="QueueName" class="java.lang.String">
    <constructor-arg value="myqueue" />
</bean>

<bean id="amazonMessageListener" class="com.myapp.daemon.AsyncMessageListener" />

<bean id="messageListener"
    class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
    <property name="delegate" ref="amazonMessageListener" />
    <property name="defaultListenerMethod" value="onMessage" />
    <property name="messageConverter">
        <null />
    </property>
</bean>

<bean id="jmsContainer"
    class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="connectionFactory" ref="ConnectionFactory" />
    <property name="destinationName" ref="QueueName" />
    <property name="messageListener" ref="messageListener" />
</bean>
我很难理解如何在AWS中设置它

ElasticBeanStalk提供两种环境, 1.工人和2。网络服务器

根据文档,认为工人类型的环境符合要求。AWS在ec2实例中部署了一个守护进程,并从SQS中提取消息并将其封装到http post请求的消息体中。此post请求可用于发布到web服务器

然而,我编写的组件做到了这一点。从队列中提取消息,并执行一些后台处理


在这种情况下,我应该选择哪种环境类型?

如果必须使用工作层,则不需要使用组件,并且确保应用程序的后台处理部分具有HTTP Post接口。您可以将轮询留给beanstalk提供的守护进程。如果你想使用elasticbeanstalk,我会推荐这个

如果您想使用您的组件,那么您也可以只使用web层,尽管如果您只是做后台处理,而不是服务web流量,那么您将有端口侦听web流量,ELB是没有原因的