Например, если у меня есть потребитель, в конечном итоге на броке Потребитель B заканчивает брокером B, затем, когда я закрываю брокера, потребитель A просто перепрыгнет к брокеру B вместо того, чтобы перепрыгнуть к его реплицированной резервной копии. Затем, если я закрою брокера B после перезапуска брокера, потребитель, который ранее прыгнул в брокер B, отпрыгнется в брокер некоторое время, который другой потребитель должным образом уйдет в спину для брокера b. < /P>
Я не уверен, что это изменит что -то или будет иметь важное значение, но я использую реплицированную настройку для HA, где у меня есть все 6 узлов, которые работают локально с смещением портов. Конечной целью будет 3 сервера, но сейчас это так, как я могу протестировать вещи. DO добавить «HA» и «ReconnectAttempts» в мой URL Factory Connection Factory.
Код: Выделить всё
public ActiveMQConnectionFactory activeMQConnectionFactory() throws NamingException{
ArtemisTargetConfig config = (ArtemisTargetConfig) new InitialContext().lookup("java:comp/env/bean/ArtemisConfig");
ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("udp://" + config.getGroupAddress() + ":" + config.getGroupPort() + "?ha=true&reconnectAttempts=10");
cf.setUser(config.getUserName());
cf.setPassword(config.getPassword());
return cf;
}
мой файл jmsconfig.java. < /p>
Код: Выделить всё
@EnableJms
@Configuration
public class JmsConfig {
private static final Logger LOG = LoggerFactory.getLogger(JmsConfig.class);
private final ActiveMQConnectionFactory activeMQConnectionFactory;
@Autowired
public JmsConfig(
ActiveMQConnectionFactory activeMQConnectionFactory){
this.activeMQConnectionFactory = activeMQConnectionFactory;
@Bean
public CachingConnectionFactory cachingConnectionFactory() {
return new CachingConnectionFactory(activeMQConnectionFactory);
}
@Bean
public JmsTemplate jmsTemplate(CachingConnectionFactory cachingConnectionFactory) {
JmsTemplate template = new JmsTemplate(cachingConnectionFactory);
template.setPubSubDomain(false);
return template;
}
@Bean
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory () {
DefaultJmsListenerContainerFactory jmsListenerContainerFactory = new DefaultJmsListenerContainerFactory();
jmsListenerContainerFactory.setConnectionFactory(activeMQConnectionFactory);
jmsListenerContainerFactory.setSessionAcknowledgeMode(ActiveMQJMSConstants.INDIVIDUAL_ACKNOWLEDGE);
jmsListenerContainerFactory.setPubSubDomain(false);
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
converter.setObjectMapper(objectMapper);
converter.setTargetType(MessageType.TEXT);
converter.setTypeIdPropertyName("_type");
jmsListenerContainerFactory.setCacheLevel(null);
jmsListenerContainerFactory.setMessageConverter(converter);
return jmsListenerContainerFactory;
}
Primary1: < /p>
localhost
tcp://localhost:61616
tcp://localhost:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;amqpMinLargeMessageSize=102400;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpDuplicateDetection=true;supportAdvisory=false;suppressInternalManagementObjects=false
cluster-admin
apassword
231.7.7.7
9876
5000
artemis
231.7.7.7
9876
10000
artemis
ON_DEMAND
1
true
true
< /code>
backup1: < /pbr /> localhost
tcp://localhost:61617
tcp://localhost:61617?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;amqpMinLargeMessageSize=102400;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpDuplicateDetection=true;supportAdvisory=false;suppressInternalManagementObjects=false
cluster-admin
aPassword
231.7.7.7
9876
5000
artemis
231.7.7.7
9876
10000
artemis
ON_DEMAND
1
true
< /code>
Вот какова операция «Listnetworktopology» в брокере показывает мне < /p>
[{"nodeID":"19f26f12-ee1f-11ef-b81c-00155df5022d","live":"localhost:61616","primary":"localhost:61616","backup":"localhost:61617"},
{"nodeID":"b071e7f0-ee3f-11ef-b10d-00155df5022d","live":"localhost:61620","primary":"localhost:61620","backup":"localhost:61621"},
{"nodeID":"d46e2693-ee1f-11ef-9cd3-00155df5022d","live":"localhost:61618","primary":"localhost:61618","backup":"localhost:61619"}]
< /code>
Вот некоторая дополнительная информация: < /p>
Я подтвердил, что репликация работает и в моем основном брокере Журналы я вижу AMQ221025: Репликация: отправка niosequentialfile, когда я загружаю свои резервные копии (а также AMQ221031: резервная копия объявлена в моем резервной копии).
< /li>
Я пытался полностью удалить свой CachedConnectionFactory. < /p>
< /li>
Я попытался удалить
и переделать каждого из моих брокеров на всякий случай. (Это, казалось, сработало
в течение короткого периода). < /P>
< /li>
< /ul>
Подробнее здесь: https://stackoverflow.com/questions/794 ... oker-first