Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rabbit="http://www.springframework.org/schema/rabbit"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit.xsd">
- <beans profile="com.iqmen.amqp.enabled">
- <bean id="amqp.taskExecutor.connectionFactory" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
- <property name="corePoolSize" value="64"/>
- <property name="maxPoolSize" value="100"/>
- <property name="queueCapacity" value="1000"/>
- <property name="keepAliveSeconds" value="10"/>
- <property name="allowCoreThreadTimeOut" value="true"/>
- <property name="daemon" value="true"/>
- <property name="threadNamePrefix" value="amqp-connection-factory-pool#"/>
- </bean>
- <rabbit:connection-factory id="amqp.connectionFactory" host="${com.iqmen.amqp.host}" port="${com.iqmen.amqp.port}" virtual-host="${com.iqmen.amqp.virtual-host}"
- username="${com.iqmen.amqp.user-name}" password="${com.iqmen.amqp.password}" executor="amqp.taskExecutor.connectionFactory"/>
- <rabbit:admin connection-factory="amqp.connectionFactory" ignore-declaration-exceptions="true" auto-startup="true" id="amqp.rabbitadmin"/>
- <bean id="amqp.retryTemplate" class="org.springframework.retry.support.RetryTemplate">
- <property name="backOffPolicy">
- <bean class="org.springframework.retry.backoff.ExponentialBackOffPolicy">
- <property name="initialInterval" value="500" />
- <property name="multiplier" value="10" />
- <property name="maxInterval" value="10000" />
- </bean>
- </property>
- <property name="retryPolicy">
- <bean class="org.springframework.retry.policy.AlwaysRetryPolicy"/>
- </property>
- </bean>
- <!-- очередь в которую будут поступать запросы на получение информации о состоянии сервера -->
- <rabbit:queue id="iqmen.server.monitoring-pipe.request" name="iqmen.server.monitoring-pipe.request" auto-declare="true" durable="true" auto-delete="false"/>
- <rabbit:queue id="iqmen.server.monitoring-pipe.response" name="iqmen.server.monitoring-pipe.response" auto-declare="true" durable="true" auto-delete="false"/>
- <!-- exchange в который будут попадать запросы на предоставление информации о состоянии сервера -->
- <rabbit:direct-exchange name="iqmen.server.monitoring-pipe" auto-declare="true" durable="true" auto-delete="false">
- <rabbit:bindings>
- <rabbit:binding queue="iqmen.server.monitoring-pipe.request" key="request"/>
- <rabbit:binding queue="iqmen.server.monitoring-pipe.response" key="response"/>
- </rabbit:bindings>
- </rabbit:direct-exchange>
- <rabbit:listener-container connection-factory="amqp.connectionFactory" task-executor="amqp.taskExecutor.embeddedIndexator" auto-declare="false" missing-queues-fatal="false" prefetch="10" acknowledge="auto" auto-startup="false">
- <rabbit:listener ref="amqp.monitoringPipeListener" queues="iqmen.server.monitoring-pipe.request"/>
- </rabbit:listener-container>
- <bean class="com.iqmen.server.monitoring.MonitoringPipeListener" id="amqp.monitoringPipeListener">
- <property name="responseTemplate">
- <rabbit:template connection-factory="amqp.connectionFactory" exchange="iqmen.server.monitoring-pipe" retry-template="amqp.retryTemplate"/>
- </property>
- <property name="responseRoutingKey" value="response"/>
- <property name="mapping">
- <map>
- <entry key="/info/ping" value-ref="pingHttpHandler"/>
- <entry key="/info/threads" value-ref="threadDumpHttpHandler"/>
- <entry key="/info/metrics" value-ref="publicMetricsHttpHandler"/>
- </map>
- </property>
- </bean>
- </beans>
- </beans>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement