Example #1
0
        /// <summary>
        /// 业务调用RPC服务端
        /// </summary>
        private static void BusinessCallRpcServer()
        {
            // 创建Rabbit连接和Rpc服务端
            var conn = new RabbitConnection();

            conn.OpenByHostId("host1");
            var rpcServer = conn.CreateRpcServer("RpcExchange", "RpcQueue");

            // 创建Rpc监听服务
            var listen = new RpcServerListen();

            // 设置接口映射配置文件
            var mapImplCache = new InterfaceMapImplCache();

            mapImplCache.Set(new DictionaryJson("Config/interfaceAssemblyMapImplAssemblyConfig.json"));

            // 将映射赋值到监听中
            listen.InterfaceMapImpl = mapImplCache;

            // 将RPC服务设置到监听中
            listen.RpcServer          = rpcServer;
            listen.BytesSerialization = new MessagePackBytesSerialization();

            // 注册错误事件
            listen.ReceivingError += Listen_ReceivingError;

            // 开始监听
            Console.WriteLine("监听Rpc服务的请求:");
            listen.ListenAsync();
        }
Example #2
0
        static void Main(string[] args)
        {
            var conn = new RabbitConnection();

            conn.OpenByHostId("exhost");
            var consumer = conn.CreateConsumer("ExChange", "ExQueue");

            Console.WriteLine("监听业务异常信息:");

            consumer.Subscribe((BusinessExceptionInfo msg) =>
            {
                Console.WriteLine(msg.ToString());

                return(true);
            });

            Console.Read();
        }
Example #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("这里是接收MQ业务异常处理:");

            var conn = new RabbitConnection();

            conn.OpenByHostId("exhost");
            var consumer = conn.CreateConsumer("ExChange", "ExQueue");

            consumer.Subscribe((BusinessExceptionInfo busEx) =>
            {
                Console.WriteLine("接收到异常数据:" + busEx);

                return(true);
            });

            Console.Read();
        }
Example #4
0
        static void Main(string[] args)
        {
            var conn = new RabbitConnection();

            conn.OpenByHostId("host1");
            Console.WriteLine("请输入要消费的队列名:");
            var quque    = Console.ReadLine();
            var consumer = conn.CreateConsumer("TestExchange", quque);

            consumer.Subscribe((string msg) =>
            {
                Console.WriteLine("接收到数据:" + msg);

                //throw new Exception("测试业务处理异常"); //这里抛出异常,会自动发送到异常队列里

                return(true);
            });

            Console.Read();
        }
Example #5
0
        /// <summary>
        /// 简单RPC客户端
        /// </summary>
        private static void SimpleRpcClient()
        {
            var conn = new RabbitConnection();

            conn.OpenByHostId("host1");
            var rpcClient = conn.CreateRpcClient("RpcExchange", "RpcQueue");

            Console.WriteLine("请输入要给RPC服务端发送的消息:");
            while (true)
            {
                var msg = Console.ReadLine();
                if ("exit".Equals(msg))
                {
                    break;
                }

                var re    = rpcClient.Call(Encoding.UTF8.GetBytes(msg));
                var reStr = re.IsNullOrLength0() ? null : Encoding.UTF8.GetString(re);
                Console.WriteLine("服务端返回:" + reStr);
            }
        }
Example #6
0
        static void Main(string[] args)
        {
            var conn = new RabbitConnection();

            conn.OpenByHostId("host1");
            var producer = conn.CreateProducer("TestExchange");

            Console.WriteLine("请输入要生产的路由键:");
            var key = Console.ReadLine();

            Console.WriteLine("请输入要发送的消息:");
            while (true)
            {
                var msg = Console.ReadLine();
                if ("exit".Equals(msg))
                {
                    break;
                }

                producer.Publish(msg, key);
            }
        }
Example #7
0
        /// <summary>
        /// 简单RPC服务端
        /// </summary>
        private static void SimpleRpcServer()
        {
            var conn = new RabbitConnection();

            conn.OpenByHostId("host1");
            var rpcServer = conn.CreateRpcServer("RpcExchange", "RpcQueue");

            Console.WriteLine("监听Rpc服务的请求:");

            rpcServer.Receive(msg =>
            {
                var str = Encoding.UTF8.GetString(msg);

                Console.WriteLine(str);

                if ("exception".Equals(str))
                {
                    throw new Exception("RPC Server 业务处理异常");
                }

                return(Encoding.UTF8.GetBytes("已收到"));
            });
        }