Esempio n. 1
0
        static void Main(string[] args)
        {
            var mq = new RabbitMqHub();

            // ============简单的消费端============
            //mq.RegisterHandler<OrderMessage, OrderHandler>();


            // ============注册感兴趣的routekey进行消费============
            mq.RegisterHandler <OrderMessage, OrderHandler1>("direct_sub1", new string[] { "computer" });
            System.Threading.Thread.Sleep(1000 * 5);// 睡一下让打印出来的结果清晰一点,不影响测试正确性
            mq.RegisterHandler <OrderMessage, OrderHandler2>("direct_sub2", new string[] { "fruit", "snack" });


            // ============注册感兴趣的topic进行消费============
            //mq.RegisterHandler<OrderMessage, OrderHandler1>("topic_sub1", new string[] { "food.#" });
            //System.Threading.Thread.Sleep(1000 * 5);// 睡一下让打印出来的结果清晰一点,不影响测试正确性
            //mq.RegisterHandler<OrderMessage, OrderHandler2>("topic_sub2", new string[] { "*.cheap.*" });


            // ============Fanout============
            //mq.RegisterHandler<OrderMessage, OrderHandler1>("fanout_sub1");
            //System.Threading.Thread.Sleep(1000 * 5);// 睡一下让打印出来的结果清晰一点,不影响测试正确性
            //mq.RegisterHandler<OrderMessage, OrderHandler2>("fanout_sub2");
            Console.Read();
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            var mq = new RabbitMqHub();

            #region baisc
            // 场景1:
            // 直发单条消息
            //var direct = new DirectSend(mq);
            //direct.Run1();

            // 场景2:
            // 直发多条消息(同时打开多个消费者),每个消费者消费不同的消息
            //direct.Run2();

            // 场景3:
            // 延迟发送,延迟时间尽量不要太小了以免遇到未知边界情况
            //direct.Run3(10);

            // 场景4:
            // 多条消息借由routekey分发到不同的消费端(消费端需要自己注册感兴趣的routekey)
            // 注意分发时的key要跟消费端注册的key完全一致才能收到消息
            var route = new SendWithRoutekey(mq);
            //route.Run1();

            // 场景5:
            // 多条消息借由routekey分发到不同的消费端(消费端需要自己注册感兴趣的routekey)
            // routekey满足rabbitmq topic发送规则,类似xxx.xxx.xxx
            //route.Run2();

            // 场景6:
            // 多条消息借由routekey分发到不同的消费端,延迟发送
            route.Run3(10);

            // 场景7:
            // 多条消息fanout方式的发送,所有消费者消费相同的消息
            //var fanout = new Fanout(mq);
            //fanout.Run();
            #endregion

            #region advance

            #endregion
        }
Esempio n. 3
0
 public Fanout(RabbitMqHub mqHub)
 {
     _mqHub = mqHub;
 }
Esempio n. 4
0
 public DirectSend(RabbitMqHub mqHub)
 {
     _mqHub = mqHub;
 }
 public SendWithRoutekey(RabbitMqHub mqHub)
 {
     _mqHub = mqHub;
 }