Package com.alibaba.rocketmq.research.store

Source Code of com.alibaba.rocketmq.research.store.MessageStoreTestObject

package com.alibaba.rocketmq.research.store;

import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.util.concurrent.atomic.AtomicInteger;

import com.alibaba.rocketmq.store.DefaultMessageStore;
import com.alibaba.rocketmq.store.MessageExtBrokerInner;
import com.alibaba.rocketmq.store.MessageStore;
import com.alibaba.rocketmq.store.PutMessageResult;
import com.alibaba.rocketmq.store.config.MessageStoreConfig;


/**
* 测试存储层,简单封装
*
* @author shijia.wxr<vintage.wang@gmail.com>
*/
public class MessageStoreTestObject {
    // 消息大小
    protected int MessageSize = 1024 * 2;
    // 队列个数
    protected int QUEUE_TOTAL = 1024;
    // 发往哪个队列
    protected AtomicInteger queueId = new AtomicInteger(0);
    // 发送主机地址
    protected SocketAddress bornHost;
    // 存储主机地址
    protected SocketAddress storeHost;
    // 消息体
    protected byte[] messageBody;

    //
    protected final MessageStore messageStore;


    public MessageStoreTestObject(final MessageStoreConfig messageStoreConfig) throws IOException {
        this.storeHost = new InetSocketAddress(InetAddress.getLocalHost(), 8123);
        this.bornHost = new InetSocketAddress(InetAddress.getByName("10.232.102.184"), 0);
        this.messageStore = new DefaultMessageStore(messageStoreConfig);
        this.messageBody = this.buildMessageBody();
    }


    private byte[] buildMessageBody() {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < MessageSize; i++) {
            sb.append("Y");
        }

        return sb.toString().getBytes();
    }


    public MessageExtBrokerInner buildMessage() {
        MessageExtBrokerInner msg = new MessageExtBrokerInner();
        msg.setTopic("AAA");
        msg.setTags("TAG1");
        msg.setKeys(String.valueOf(this.messageStore.now()));
        msg.setBody(messageBody);
        msg.setKeys(String.valueOf(System.currentTimeMillis()));
        msg.setSysFlag(4);
        msg.setBornTimestamp(System.currentTimeMillis());

        return msg;
    }


    public boolean load() {
        return this.messageStore.load();
    }


    public void start() throws Exception {
        this.messageStore.start();
    }


    public boolean sendMessage() {
        PutMessageResult result = this.messageStore.putMessage(buildMessage());
        return result != null && result.isOk();
    }


    public void updateMasterAddress(final String addr) {
        this.messageStore.updateHaMasterAddress(addr);
    }


    public long now() {
        return this.messageStore.now();
    }
}
TOP

Related Classes of com.alibaba.rocketmq.research.store.MessageStoreTestObject

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.