/**
* $Id: ConsumerOffsetManagerTest.java 1831 2013-05-16 01:39:51Z shijia.wxr $
*/
package com.alibaba.rocketmq.broker.offset;
import java.util.Random;
import org.junit.Test;
import com.alibaba.rocketmq.broker.BrokerController;
import com.alibaba.rocketmq.common.BrokerConfig;
import com.alibaba.rocketmq.remoting.netty.NettyServerConfig;
import com.alibaba.rocketmq.store.config.MessageStoreConfig;
/**
* @author vintage.wang@gmail.com shijia.wxr@taobao.com
*
*/
public class ConsumerOffsetManagerTest {
@Test
public void test_flushConsumerOffset() throws Exception {
BrokerController brokerController =
new BrokerController(new BrokerConfig(), new NettyServerConfig(), new MessageStoreConfig());
boolean initResult = brokerController.initialize();
System.out.println("initialize " + initResult);
brokerController.start();
ConsumerOffsetManager consumerOffsetManager = new ConsumerOffsetManager(brokerController);
Random random = new Random();
for (int i = 0; i < 100; i++) {
String group = "DIANPU_GROUP_" + i;
for (int id = 0; id < 16; id++) {
consumerOffsetManager.commitOffset(group, "TOPIC_A", id, random.nextLong() % 1024 * 1024 * 1024);
consumerOffsetManager.commitOffset(group, "TOPIC_B", id, random.nextLong() % 1024 * 1024 * 1024);
consumerOffsetManager.commitOffset(group, "TOPIC_C", id, random.nextLong() % 1024 * 1024 * 1024);
}
}
consumerOffsetManager.flush();
brokerController.shutdown();
}
@Test
public void test_flushConsumerOffsetHistory() throws Exception {
BrokerController brokerController =
new BrokerController(new BrokerConfig(), new NettyServerConfig(), new MessageStoreConfig());
boolean initResult = brokerController.initialize();
System.out.println("initialize " + initResult);
brokerController.start();
ConsumerOffsetManager consumerOffsetManager = new ConsumerOffsetManager(brokerController);
Random random = new Random();
for (int i = 0; i < 100; i++) {
String group = "DIANPU_GROUP_" + i;
for (int id = 0; id < 16; id++) {
consumerOffsetManager.commitOffset(group, "TOPIC_A", id, random.nextLong() % 1024 * 1024 * 1024);
consumerOffsetManager.commitOffset(group, "TOPIC_B", id, random.nextLong() % 1024 * 1024 * 1024);
consumerOffsetManager.commitOffset(group, "TOPIC_C", id, random.nextLong() % 1024 * 1024 * 1024);
}
}
for (int i = 0; i < 10; i++) {
consumerOffsetManager.flushHistory();
Thread.sleep(1000 * 3);
}
brokerController.shutdown();
}
}