public static boolean initTopic(String topic, String nsAddr, String clusterName, int queueNumbers) { long startTime = System.currentTimeMillis(); boolean createResult; while (true) { createResult = MQAdmin.createTopic(nsAddr, clusterName, topic, queueNumbers); if (createResult) { break; } else if (System.currentTimeMillis() - startTime > topicCreateTime) { Assert.fail(String.format("topic[%s] is created failed after:%d ms", topic, System.currentTimeMillis() - startTime)); break; } else { TestUtils.waitForMoment(500); continue; } } return createResult; }
@Test public void testQueryMsg() { int msgSize = 20; String key = "jueyin"; long begin = System.currentTimeMillis(); List<Object> msgs = MQMessageFactory.getKeyMsg(topic, key, msgSize); producer.send(msgs); Assert.assertEquals("Not all are sent", msgSize, producer.getAllUndupMsgBody().size()); List<MessageExt> queryMsgs = null; try { TestUtils.waitForMoment(500 * 3); queryMsgs = producer.getProducer().queryMessage(topic, key, msgSize, begin - 5000, System.currentTimeMillis() + 5000).getMessageList(); } catch (Exception e) { } assertThat(queryMsgs).isNotNull(); assertThat(queryMsgs.size()).isEqualTo(msgSize); }
queryMsgs = producer.getProducer().queryMessage(topic, key, msgSize, begin - 15000, System.currentTimeMillis() + 15000).getMessageList(); TestUtils.waitForMoment(1000);
@Test public void testQueueIdBigThanQueueNum() throws Exception { int queueId = 100; sendFail = false; MessageQueue mq = new MessageQueue(topic, broker1Name, queueId); Message msg = new Message(topic, RandomUtils.getStringByUUID().getBytes()); DefaultMQProducer producer = ProducerFactory.getRMQProducer(nsAddr); producer.send(msg, mq, new SendCallback() { @Override public void onSuccess(SendResult sendResult) { } @Override public void onException(Throwable throwable) { sendFail = true; } }); int checkNum = 50; while (!sendFail && checkNum > 0) { checkNum--; TestUtils.waitForMoment(100); } producer.shutdown(); assertThat(sendFail).isEqualTo(true); }
@Test public void testQueueIdSmallZero() throws Exception { int queueId = -100; sendFail = true; MessageQueue mq = new MessageQueue(topic, broker1Name, queueId); Message msg = new Message(topic, RandomUtils.getStringByUUID().getBytes()); DefaultMQProducer producer = ProducerFactory.getRMQProducer(nsAddr); producer.send(msg, mq, new SendCallback() { @Override public void onSuccess(SendResult sendResult) { sendFail = false; } @Override public void onException(Throwable throwable) { sendFail = true; } }); int checkNum = 50; while (sendFail && checkNum > 0) { checkNum--; TestUtils.waitForMoment(100); } producer.shutdown(); assertThat(sendFail).isEqualTo(false); }
@Test public void testQueryMsg() { int msgSize = 20; producer.send(msgSize); Assert.assertEquals("Not all are sent", msgSize, producer.getAllUndupMsgBody().size()); consumer.getListener().waitForMessageConsume(producer.getAllMsgBody(), consumeTime); Assert.assertEquals("Not all are consumed", 0, VerifyUtils.verify(producer.getAllMsgBody(), consumer.getListener().getAllMsgBody())); MessageExt recvMsg = (MessageExt) consumer.getListener().getFirstMsg(); MessageExt queryMsg = null; try { TestUtils.waitForMoment(3000); queryMsg = producer.getProducer().viewMessage(((MessageClientExt) recvMsg).getOffsetMsgId()); } catch (Exception e) { } assertThat(queryMsg).isNotNull(); assertThat(new String(queryMsg.getBody())).isEqualTo(new String(recvMsg.getBody())); } }
@Test public void testConsumerStartTwoAndCrashOneAfterWhile() { int msgSize = 100; String originMsgDCName = RandomUtils.getStringByUUID(); String msgBodyDCName = RandomUtils.getStringByUUID(); RMQNormalConsumer consumer1 = getConsumer(nsAddr, topic, tag, new RMQNormalListener(originMsgDCName, msgBodyDCName)); RMQNormalConsumer consumer2 = getConsumer(nsAddr, consumer1.getConsumerGroup(), tag, new RMQNormalListener(originMsgDCName, msgBodyDCName)); producer.send(tag, msgSize, 100); TestUtils.waitForMoment(5); consumer2.shutdown(); mqClients.remove(1); TestUtils.waitForMoment(5); consumer1.getListener().waitForMessageConsume(producer.getAllMsgBody(), consumeTime); assertThat(VerifyUtils.getFilterdMessage(producer.getAllMsgBody(), consumer1.getListener().getAllMsgBody())) .containsExactlyElementsIn(producer.getAllMsgBody()); } }
@Test public void testConsumerStartWithInterval() { int msgSize = 100; String originMsgDCName = RandomUtils.getStringByUUID(); String msgBodyDCName = RandomUtils.getStringByUUID(); RMQNormalConsumer consumer1 = getConsumer(nsAddr, topic, tag, new RMQNormalListener(originMsgDCName, msgBodyDCName)); producer.send(tag, msgSize, 100); TestUtils.waitForMoment(5); getConsumer(nsAddr, consumer1.getConsumerGroup(), tag, new RMQNormalListener(originMsgDCName, msgBodyDCName)); TestUtils.waitForMoment(5); consumer1.getListener().waitForMessageConsume(producer.getAllMsgBody(), consumeTime); assertThat(VerifyUtils.getFilterdMessage(producer.getAllMsgBody(), consumer1.getListener().getAllMsgBody())) .containsExactlyElementsIn(producer.getAllMsgBody()); }
public static boolean createTopic(String nameSrvAddr, String clusterName, String topic, int queueNum, int waitTimeSec) { boolean createResult = false; DefaultMQAdminExt mqAdminExt = new DefaultMQAdminExt(); mqAdminExt.setNamesrvAddr(nameSrvAddr); try { mqAdminExt.start(); mqAdminExt.createTopic(clusterName, topic, queueNum); } catch (Exception e) { } long startTime = System.currentTimeMillis(); while (!createResult) { createResult = checkTopicExist(mqAdminExt, topic); if (System.currentTimeMillis() - startTime < waitTimeSec * 1000) { TestUtils.waitForMoment(100); } else { log.error(String.format("timeout,but create topic[%s] failed!", topic)); break; } } mqAdminExt.shutdown(); return createResult; }
public static boolean initTopic(String topic, String nsAddr, String clusterName, int queueNumbers) { long startTime = System.currentTimeMillis(); boolean createResult; while (true) { createResult = MQAdmin.createTopic(nsAddr, clusterName, topic, queueNumbers); if (createResult) { break; } else if (System.currentTimeMillis() - startTime > topicCreateTime) { Assert.fail(String.format("topic[%s] is created failed after:%d ms", topic, System.currentTimeMillis() - startTime)); break; } else { TestUtils.waitForMoment(500); continue; } } return createResult; }
@Test public void testQueryMsg() { int msgSize = 20; String key = "jueyin"; long begin = System.currentTimeMillis(); List<Object> msgs = MQMessageFactory.getKeyMsg(topic, key, msgSize); producer.send(msgs); Assert.assertEquals("Not all are sent", msgSize, producer.getAllUndupMsgBody().size()); List<MessageExt> queryMsgs = null; try { TestUtils.waitForMoment(500 * 3); queryMsgs = producer.getProducer().queryMessage(topic, key, msgSize, begin - 5000, System.currentTimeMillis() + 5000).getMessageList(); } catch (Exception e) { } assertThat(queryMsgs).isNotNull(); assertThat(queryMsgs.size()).isEqualTo(msgSize); }
queryMsgs = producer.getProducer().queryMessage(topic, key, msgSize, begin - 15000, System.currentTimeMillis() + 15000).getMessageList(); TestUtils.waitForMoment(1000);
@Test public void testQueueIdBigThanQueueNum() throws Exception { int queueId = 100; sendFail = false; MessageQueue mq = new MessageQueue(topic, broker1Name, queueId); Message msg = new Message(topic, RandomUtils.getStringByUUID().getBytes()); DefaultMQProducer producer = ProducerFactory.getRMQProducer(nsAddr); producer.send(msg, mq, new SendCallback() { @Override public void onSuccess(SendResult sendResult) { } @Override public void onException(Throwable throwable) { sendFail = true; } }); int checkNum = 50; while (!sendFail && checkNum > 0) { checkNum--; TestUtils.waitForMoment(100); } producer.shutdown(); assertThat(sendFail).isEqualTo(true); }
@Test public void testQueueIdSmallZero() throws Exception { int queueId = -100; sendFail = true; MessageQueue mq = new MessageQueue(topic, broker1Name, queueId); Message msg = new Message(topic, RandomUtils.getStringByUUID().getBytes()); DefaultMQProducer producer = ProducerFactory.getRMQProducer(nsAddr); producer.send(msg, mq, new SendCallback() { @Override public void onSuccess(SendResult sendResult) { sendFail = false; } @Override public void onException(Throwable throwable) { sendFail = true; } }); int checkNum = 50; while (sendFail && checkNum > 0) { checkNum--; TestUtils.waitForMoment(100); } producer.shutdown(); assertThat(sendFail).isEqualTo(false); }
@Test public void testQueryMsg() { int msgSize = 20; producer.send(msgSize); Assert.assertEquals("Not all are sent", msgSize, producer.getAllUndupMsgBody().size()); consumer.getListener().waitForMessageConsume(producer.getAllMsgBody(), consumeTime); Assert.assertEquals("Not all are consumed", 0, VerifyUtils.verify(producer.getAllMsgBody(), consumer.getListener().getAllMsgBody())); MessageExt recvMsg = (MessageExt) consumer.getListener().getFirstMsg(); MessageExt queryMsg = null; try { TestUtils.waitForMoment(3000); queryMsg = producer.getProducer().viewMessage(((MessageClientExt) recvMsg).getOffsetMsgId()); } catch (Exception e) { } assertThat(queryMsg).isNotNull(); assertThat(new String(queryMsg.getBody())).isEqualTo(new String(recvMsg.getBody())); } }
@Test public void testConsumerStartTwoAndCrashOneAfterWhile() { int msgSize = 100; String originMsgDCName = RandomUtils.getStringByUUID(); String msgBodyDCName = RandomUtils.getStringByUUID(); RMQNormalConsumer consumer1 = getConsumer(nsAddr, topic, tag, new RMQNormalListener(originMsgDCName, msgBodyDCName)); RMQNormalConsumer consumer2 = getConsumer(nsAddr, consumer1.getConsumerGroup(), tag, new RMQNormalListener(originMsgDCName, msgBodyDCName)); producer.send(tag, msgSize, 100); TestUtils.waitForMoment(5); consumer2.shutdown(); mqClients.remove(1); TestUtils.waitForMoment(5); consumer1.getListener().waitForMessageConsume(producer.getAllMsgBody(), consumeTime); assertThat(VerifyUtils.getFilterdMessage(producer.getAllMsgBody(), consumer1.getListener().getAllMsgBody())) .containsExactlyElementsIn(producer.getAllMsgBody()); } }
@Test public void testConsumerStartWithInterval() { int msgSize = 100; String originMsgDCName = RandomUtils.getStringByUUID(); String msgBodyDCName = RandomUtils.getStringByUUID(); RMQNormalConsumer consumer1 = getConsumer(nsAddr, topic, tag, new RMQNormalListener(originMsgDCName, msgBodyDCName)); producer.send(tag, msgSize, 100); TestUtils.waitForMoment(5); getConsumer(nsAddr, consumer1.getConsumerGroup(), tag, new RMQNormalListener(originMsgDCName, msgBodyDCName)); TestUtils.waitForMoment(5); consumer1.getListener().waitForMessageConsume(producer.getAllMsgBody(), consumeTime); assertThat(VerifyUtils.getFilterdMessage(producer.getAllMsgBody(), consumer1.getListener().getAllMsgBody())) .containsExactlyElementsIn(producer.getAllMsgBody()); }
public static boolean createTopic(String nameSrvAddr, String clusterName, String topic, int queueNum, int waitTimeSec) { boolean createResult = false; DefaultMQAdminExt mqAdminExt = new DefaultMQAdminExt(); mqAdminExt.setNamesrvAddr(nameSrvAddr); try { mqAdminExt.start(); mqAdminExt.createTopic(clusterName, topic, queueNum); } catch (Exception e) { } long startTime = System.currentTimeMillis(); while (!createResult) { createResult = checkTopicExist(mqAdminExt, topic); if (System.currentTimeMillis() - startTime < waitTimeSec * 1000) { TestUtils.waitForMoment(100); } else { log.error(String.format("timeout,but create topic[%s] failed!", topic)); break; } } mqAdminExt.shutdown(); return createResult; }