/// <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(); }
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(); }
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(); }
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(); }
/// <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); } }
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); } }
/// <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("已收到")); }); }