Search in sources :

Example 11 with TaskMessage

use of backtype.storm.messaging.TaskMessage in project jstorm by alibaba.

the class NettyUnitTest method test_slow_receive_big.

@Test
public void test_slow_receive_big() {
    System.out.println("!!!!!!!!!!Start test_slow_receive_big message test!!!!!!!!");
    final int base = 100;
    final String req_msg = setupLargMsg();
    final IContext context = TransportFactory.makeContext(storm_conf);
    final IConnection server = initNettyServer();
    new Thread(new Runnable() {

        @Override
        public void run() {
            final IConnection client = context.connect(null, "localhost", port);
            lock.lock();
            for (int i = 1; i < base; i++) {
                TaskMessage message = new TaskMessage(task, req_msg.getBytes());
                System.out.println("send " + i);
                client.send(message);
            }
            System.out.println("Finish Send ");
            JStormUtils.sleepMs(1000);
            try {
                clientClose.await();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            client.close();
            contextClose.signal();
            lock.unlock();
        }
    }).start();
    for (int i = 1; i < base; i++) {
        byte[] message = (byte[]) server.recv(task, 0);
        JStormUtils.sleepMs(100);
        Assert.assertEquals(req_msg, new String(message));
        System.out.println("receive msg-" + i);
    }
    System.out.println("Finish Receive ");
    lock.lock();
    try {
        clientClose.signal();
        server.close();
        try {
            contextClose.await();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        context.term();
    } finally {
        lock.unlock();
    }
    System.out.println("!!!!!!!!!!End test_slow_receive_big message test!!!!!!!!");
}
Also used : IContext(backtype.storm.messaging.IContext) IConnection(backtype.storm.messaging.IConnection) TaskMessage(backtype.storm.messaging.TaskMessage) Test(org.junit.Test)

Example 12 with TaskMessage

use of backtype.storm.messaging.TaskMessage in project jstorm by alibaba.

the class NettyUnitTest method test_client_reboot.

@Test
public void test_client_reboot() {
    System.out.println("!!!!!!!!!!Start client reboot test!!!!!!!!");
    final String req_msg = setupLargMsg();
    final IContext context = TransportFactory.makeContext(storm_conf);
    new Thread(new Runnable() {

        @Override
        public void run() {
            IConnection client = context.connect(null, "localhost", port);
            lock.lock();
            List<TaskMessage> list = new ArrayList<TaskMessage>();
            TaskMessage message = new TaskMessage(task, req_msg.getBytes());
            list.add(message);
            client.send(message);
            System.out.println("Send first");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
            }
            client.close();
            IConnection client2 = context.connect(null, "localhost", port);
            System.out.println("!!!!!!! restart client !!!!!!!!!!");
            client2.send(message);
            System.out.println("Send second");
            JStormUtils.sleepMs(1000);
            try {
                clientClose.await();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            client2.close();
            contextClose.signal();
            lock.unlock();
        }
    }).start();
    IConnection server = initNettyServer();
    byte[] recv = (byte[]) server.recv(task, 0);
    System.out.println("Sever receive first");
    Assert.assertEquals(req_msg, new String(recv));
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    byte[] recv2 = (byte[]) server.recv(task, 0);
    System.out.println("Sever receive second");
    Assert.assertEquals(req_msg, new String(recv2));
    lock.lock();
    try {
        clientClose.signal();
        server.close();
        try {
            contextClose.await();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        context.term();
    } finally {
        lock.unlock();
    }
    System.out.println("!!!!!!!!!!End client reboot test!!!!!!!!");
}
Also used : IContext(backtype.storm.messaging.IContext) IConnection(backtype.storm.messaging.IConnection) TaskMessage(backtype.storm.messaging.TaskMessage) Test(org.junit.Test)

Example 13 with TaskMessage

use of backtype.storm.messaging.TaskMessage in project jstorm by alibaba.

the class NettyUnitTest method test_msg_buffer_timeout.

@Test
public void test_msg_buffer_timeout() {
    System.out.println("!!!!!!!!Start test_msg_buffer_timeout !!!!!!!!!!!");
    final String req_msg = setupLargMsg();
    ConfigExtension.setNettyPendingBufferTimeout(storm_conf, 5 * 1000l);
    final IContext context = TransportFactory.makeContext(storm_conf);
    new Thread(new Runnable() {

        @Override
        public void run() {
            lock.lock();
            IConnection client = context.connect(null, "localhost", port);
            List<TaskMessage> list = new ArrayList<TaskMessage>();
            TaskMessage message = new TaskMessage(task, req_msg.getBytes());
            list.add(message);
            client.send(message);
            System.out.println("!!Client has sent data");
            JStormUtils.sleepMs(1000);
            try {
                clientClose.await();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            client.close();
            contextClose.signal();
            lock.unlock();
        }
    }).start();
    IConnection server = null;
    JStormUtils.sleepMs(7000);
    System.out.println("!!server begin start!!!!!");
    server = initNettyServer();
    JStormUtils.sleepMs(5000);
    byte[] recv = (byte[]) server.recv(task, 1);
    System.out.println("Begin to receive message. recv message size: " + (recv == null ? 0 : recv.length));
    Assert.assertEquals(null, recv);
    System.out.println("Pending message was timouout:" + (recv == null));
    lock.lock();
    try {
        clientClose.signal();
        server.close();
        try {
            contextClose.await();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        context.term();
    } finally {
        lock.unlock();
    }
    ConfigExtension.setNettyPendingBufferTimeout(storm_conf, 60 * 1000l);
    System.out.println("!!!!!!!!!!!!End test_msg_buffer_timeout!!!!!!!!!!!!!");
}
Also used : IContext(backtype.storm.messaging.IContext) IConnection(backtype.storm.messaging.IConnection) TaskMessage(backtype.storm.messaging.TaskMessage) Test(org.junit.Test)

Example 14 with TaskMessage

use of backtype.storm.messaging.TaskMessage in project jstorm by alibaba.

the class TaskTransfer method serialize.

protected void serialize(KryoTupleSerializer serializer, Object event) {
    long start = serializeTimer.getTime();
    try {
        ITupleExt tuple = (ITupleExt) event;
        int targetTaskid = tuple.getTargetTaskId();
        IConnection conn = getConnection(targetTaskid);
        if (conn != null) {
            byte[] tupleMessage = serializer.serialize((TupleExt) tuple);
            //LOG.info("Task-{} sent msg to task-{}, data={}", task.getTaskId(), taskid, JStormUtils.toPrintableString(tupleMessage));
            TaskMessage taskMessage = new TaskMessage(targetTaskid, tupleMessage);
            conn.send(taskMessage);
        } else {
            LOG.error("Can not find connection for task-{}", targetTaskid);
        }
    } finally {
        if (MetricUtils.metricAccurateCal)
            serializeTimer.updateTime(start);
    }
}
Also used : IConnection(backtype.storm.messaging.IConnection) ITupleExt(backtype.storm.tuple.ITupleExt) TaskMessage(backtype.storm.messaging.TaskMessage)

Example 15 with TaskMessage

use of backtype.storm.messaging.TaskMessage in project storm by nathanmarz.

the class MessageBatch method remove.

void remove(Object obj) {
    if (obj == null)
        return;
    if (obj instanceof TaskMessage) {
        TaskMessage msg = (TaskMessage) obj;
        msgs.remove(msg);
        encoded_length -= msgEncodeLength(msg);
        return;
    }
    if (obj instanceof ControlMessage) {
        ControlMessage msg = (ControlMessage) obj;
        msgs.remove(msg);
        encoded_length -= msg.encodeLength();
        return;
    }
}
Also used : TaskMessage(backtype.storm.messaging.TaskMessage)

Aggregations

TaskMessage (backtype.storm.messaging.TaskMessage)30 IConnection (backtype.storm.messaging.IConnection)15 Test (org.junit.Test)12 IContext (backtype.storm.messaging.IContext)7 ControlMessage (backtype.storm.messaging.ControlMessage)4 ByteBuffer (java.nio.ByteBuffer)3 ITupleExt (backtype.storm.tuple.ITupleExt)2 KryoException (com.esotericsoftware.kryo.KryoException)2 AtomicLong (java.util.concurrent.atomic.AtomicLong)2 ChannelBuffer (org.jboss.netty.buffer.ChannelBuffer)2 ChannelBufferOutputStream (org.jboss.netty.buffer.ChannelBufferOutputStream)2 DisruptorQueue (backtype.storm.utils.DisruptorQueue)1 AsmHistogram (com.alibaba.jstorm.common.metric.AsmHistogram)1 HashSet (java.util.HashSet)1 Iterator (java.util.Iterator)1 Condition (java.util.concurrent.locks.Condition)1 Channel (org.jboss.netty.channel.Channel)1