2016-02-09 2 views
0

1) Ниже приведен код конфигурации для rabbitMQ с Spring.Интеграция RabbitMQ с пружиной Пожалуйста, сообщите, как реализовать сценарии сбоя.

<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" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xsi:schemaLocation="http://www.springframework.org/schema/rabbit 
         http://www.springframework.org/schema/rabbit/spring-rabbit-1.5.xsd 
         http://www.springframework.org/schema/context 
         http://www.springframework.org/schema/context/spring-context-4.1.xsd   
         http://www.springframework.org/schema/beans 
         http://www.springframework.org/schema/beans/spring-beans-4.1.xsd"> 

    <context:component-scan base-package="com.messaging.impl" /> 

    <rabbit:connection-factory id="connectionFactory" 
      host="${rabbitmq.host}" port="${rabbitmq.port}" 
      username="${rabbitmq.username}" password="${rabbitmq.password}" 
      channel-cache-size="${rabbitmq.ChannelCacheSize}" 
      requested-heartbeat="${rabbitmq.requestedHeartBeat}" /> 

    <rabbit:template id="amqpTemplate" connection-factory="connectionFactory" 
     exchange="${request.exchange}" queue="${request.out.queue}" /> 

    <rabbit:admin id="rabbitAdmin" connection-factory="connectionFactory" /> 

    <rabbit:queue name="${request.out.queue}" 
      declared-by="rabbitAdmin" /> 

    <rabbit:listener-container 
     connection-factory="connectionFactory"> 
     <rabbit:listener queues="${request.out.queue}" 
       ref="messageSender" /> 
    </rabbit:listener-container> 

    <bean id="messageSender" 
      class="com.messaging.impl.MessageSenderImpl" /> 

    <rabbit:topic-exchange name="${request.exchange}" 
      declared-by="rabbitAdmin"> 
     <rabbit:bindings> 
      <rabbit:binding queue="${request.out.queue}" 
        pattern="routingkey.*" /> 
     </rabbit:bindings> 
    </rabbit:topic-exchange> 


</beans> 

2) Ниже приведен код для класса отправителя Java.

@Service 
    public class MessageSenderImpl implements MessageSender { 
     @Autowired 
     private AmqpTemplate amqpTemplate; 

     public void sendMessage(String message){ 

      amqpTemplate.convertAndSend(message); 
      System.out.println("message is" +message); 
     } 
    } 

3) pom.xml имеет ниже зависимость

<dependency> 
     <groupId>org.springframework.amqp</groupId> 
     <artifactId>spring-amqp</artifactId> 
     <version>1.5.3.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.amqp</groupId> 
     <artifactId>spring-rabbit</artifactId> 
     <version>1.5.3.RELEASE</version> 
    </dependency> 

Я не нашел полный пример, который может быть использован для этого requirement.I пришел с этой конфигурации после проверки различных веб-сайтов и выбора те, которые мне нужны для этой установки. Пожалуйста, порекомендуйте.

ПРИМЕЧАНИЕ. - Я уже внедрил проводку для обмена и чтения из очереди. Однако мне нужно сообщить, как реализовать сценарии отказа. Пожалуйста, порекомендуйте.

ответ

0

Не могли бы вы разместить весь стек? Что произойдет, если вы используете старомодный

<bean id="amqpTemplate" class="org.springframework.amqp.core.AmqpTemplate" > 
</bean 
0

Это самый простой сценарий успеха, и я предлагаю вам следить за тем, как это видно. Прежде всего убедитесь, что вы подключены к правильному серверу, а затем добавьте больше вещей в поток. Я думаю, вы пропустили vhost в любом случае посмотрите ниже. (Также вы забыли указать, к какому вопросу вы столкнулись)

<int-amqp:inbound-channel-adapter channel="fromRabbit" queue-names="${rabbitmq.sourcequeue}" connection-factory="connectionFactory" concurrent-consumers="5" /> 
<int:channel id="fromRabbit"> 
     <int:interceptors> 
      <int:wire-tap channel="consoleOut" /> 
     </int:interceptors> 
</int:channel> 
<int-stream:stdout-channel-adapter id="consoleOut" append-newline="true" /> 
<!-- Infrastructure --> 
<rabbit:connection-factory id="connectionFactory" host="${rabbitmq.host}" port="${rabbitmq.port}" username="${rabbitmq.username}" password="${rabbitmq.password}" virtual-host="${rabbitmq.vhost}" /> 
<rabbit:template id="amqpTemplate" connection-factory="connectionFactory" /> 
<rabbit:admin connection-factory="connectionFactory" /> 
<rabbit:queue name="${rabbitmq.sourcequeue}" /> 
<rabbit:direct-exchange name="${rabbitmq.exchangeaname}"> 
    <rabbit:bindings> 
    <rabbit:binding queue="${rabbitmq.sourcequeue}" key="${rabbitmq.keyname}" /> 
    </rabbit:bindings> 
</rabbit:direct-exchange>