zoukankan      html  css  js  c++  java
  • MetaQ简单实用demo

    Metaq的生产者代码

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    
    import com.taobao.metamorphosis.Message;
    import com.taobao.metamorphosis.client.MessageSessionFactory;
    import com.taobao.metamorphosis.client.MetaClientConfig;
    import com.taobao.metamorphosis.client.MetaMessageSessionFactory;
    import com.taobao.metamorphosis.client.producer.MessageProducer;
    import com.taobao.metamorphosis.client.producer.SendResult;
    import com.taobao.metamorphosis.utils.ZkUtils.ZKConfig;
    
    public class MetaqProvider {
        
        public static void main(String[] args) throws Exception {
            final MetaClientConfig metaClientConfig = new MetaClientConfig();
            final ZKConfig zkConfig = new ZKConfig();
            zkConfig.zkConnect = Constant.METAZK;
            final String topic = Constant.METATOPIC;
            metaClientConfig.setZkConfig(zkConfig);
            MessageSessionFactory sessionFactory = new MetaMessageSessionFactory(metaClientConfig);
            MessageProducer producer = sessionFactory.createProducer();
            
            producer.publish(topic);
    
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
            String line = null;
            while ((line = reader.readLine()) != null) 
            {
                SendResult sendResult = producer.sendMessage(new Message(topic, line.getBytes()));
                if (!sendResult.isSuccess()) 
                {
                    System.err.println("Send message failed,error message:" + sendResult.getErrorMessage());
                }
                else {
                    System.out.println("Send message successfully,sent to " + sendResult.getPartition());
                }
            }
        }
    
    }

    Metaq消费者代码

    import com.taobao.metamorphosis.Message;
    import com.taobao.metamorphosis.client.MessageSessionFactory;
    import com.taobao.metamorphosis.client.MetaClientConfig;
    import com.taobao.metamorphosis.client.MetaMessageSessionFactory;
    import com.taobao.metamorphosis.client.consumer.ConsumerConfig;
    import com.taobao.metamorphosis.client.consumer.MessageConsumer;
    import com.taobao.metamorphosis.client.consumer.MessageListener;
    import com.taobao.metamorphosis.exception.MetaClientException;
    import com.taobao.metamorphosis.utils.ZkUtils.ZKConfig;
    
    public class MetaqConsumer {
        private static final MetaClientConfig metaClientConfig = new MetaClientConfig();
        private static final ZKConfig zkConfig = new ZKConfig();
        private static final String topic = Constant.METATOPIC;
        private static final String group = Constant.METAGROUP;
        
        public static void main(String[] args) throws Exception {
              zkConfig.zkConnect = Constant.METAZK;
                metaClientConfig.setZkConfig(zkConfig);
                MessageSessionFactory sessionFactory;
                MessageConsumer consumer;
                try {
                    sessionFactory = new MetaMessageSessionFactory(metaClientConfig);
                    consumer = sessionFactory.createConsumer(new ConsumerConfig(group));
                    consumer.subscribe(topic, 1024 * 1024, new MessageListener() {
                        public void recieveMessages(Message message) {
                            System.out.println("Receive message " + new String(message.getData()));
                        }  
                        public Executor getExecutor() {
                            return null;
                        }
                    });
                    consumer.completeSubscribe();
                } catch (MetaClientException e) {
                    e.printStackTrace();
                }
        }
        
    }
    #metaq的配置信息
    meta.zk=192.168.46.161:2181
    meta.group=meta-gp
    meta.topic=meta-tpc
    <!-- MetaQ start -->
     <dependency>
         <groupId>com.taobao.metamorphosis</groupId>
         <artifactId>metamorphosis-client</artifactId>
         <version>1.4.6.2</version>
    </dependency>
    <dependency>
         <groupId>com.taobao.metamorphosis</groupId>
         <artifactId>metamorphosis-tools</artifactId>
          <version>1.4.6.2</version>
    </dependency>
    <!-- MetaQ end -->
  • 相关阅读:
    基于vue2.0 +vuex+ element-ui后台管理系统:包括本地开发调试详细步骤
    require.js实现js模块化编程(二):RequireJS Optimizer
    require.js实现js模块化编程(一)
    树型权限管理插件:jQuery Tree Multiselect详细使用指南
    表格组件神器:bootstrap table详细使用指南
    后台管理系统中的重点知识大全
    Ajax最详细的参数解析和场景应用
    npm常用命令小结
    详解javascript,ES5标准中新增的几种高效Object操作方法
    git入门学习(二):新建分支/上传代码/删除分支
  • 原文地址:https://www.cnblogs.com/atomicbomb/p/6678287.html
Copyright © 2011-2022 走看看