• rocketmq client for c#


    基于ikvm的rocketmq的c#客户端,由于阿里对c#不敏感,对这方面的东西缺少。因为工作需要弄了一个,分享给大家 https://github.com/franknew/RocketMQ-Client

    如何使用:

    1.添加引用

    IKVM.OpenJDK.Charsets.dll
    IKVM.OpenJDK.Core.dll
    IKVM.OpenJDK.Jdbc.dll
    IKVM.OpenJDK.Management.dll
    IKVM.OpenJDK.Security.dll
    IKVM.OpenJDK.SwingAWT.dll
    IKVM.OpenJDK.Text.dll
    IKVM.OpenJDK.Util.dll
    IKVM.Runtime.dll
    netty-all-4.0.36.Final.dll
    rocketmq-client-4.2.0-incubating.dll
    rocketmq-common-4.2.0-incubating.dll
    rocketmq-remoting-4.2.0-incubating.dll
    slf4j-api-1.7.5.dll
    fastjson-1.2.12.dll
    View Code

    2.生产消息

    DefaultMQProducer p = new DefaultMQProducer("test");
    p.setNamesrvAddr("192.168.100.3:9876");
    p.start();
    var data = Encoding.UTF8.GetBytes(txbMessage.Text);
    com.alibaba.rocketmq.common.message.Message m = new com.alibaba.rocketmq.common.message.Message("defaulttopic1", data);
    p.send(m);
    p.shutdown();
    View Code

    3.消费消息

    DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("test");
    consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
    consumer.setNamesrvAddr("192.168.100.3:9876");
    consumer.subscribe("defaulttopic", "*");
    consumer.registerMessageListener(new TestListener());
    consumer.start();
    View Code

    4.推送消息的监听器

    public class TestListener : MessageListenerConcurrently
        {
            public ConsumeConcurrentlyStatus consumeMessage(List list, ConsumeConcurrentlyContext ccc)
            {
                for (int i = 0; i < list.size(); i++)
                {
                    var msg = list.get(i) as Message;
                    byte[] body = msg.getBody();
                    var str = Encoding.UTF8.GetString(body);
                    if (body.Length == 2 && body[0] == 0 && body[1] == 0)
                    {
                        
                        //System.out.println("Got the end signal");
                        continue;
                    }
    
                }
                return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
            }
        }
    View Code

     建议安装JDK1.7及以上版本

  • 相关阅读:
    Python程序中的线程操作-concurrent模块
    python程序中的进程操作-进程间的数据共享
    有几个消费者就需要发送几次结束信号
    python进程池
    Python程序中的线程操作-concurrent模块
    Python程序中的线程操作-线程队列
    Python程序中的线程操作-守护线程
    进程操作-进程池
    进程池版socket并发聊天
    使用多进程请求多个url来减少网络等待浪费的时间
  • 原文地址:https://www.cnblogs.com/WindBlog/p/7299502.html
Copyright © 2020-2023  润新知