남 Rabbitmq가 무엇이고 설치 방법은 자세히 설명하지 않겠습니다. Baidu는 이를 즉시 알고 있으므로 구성 측면에서 더 주의를 기울이십시오.直接 할 말이 많지 않습니다. 먼저 간단한 예제 코드로 바로 이동하세요
보내기 종료: RConnectionFactory factory = new ConnectionFactory { HostName = "hostname", UserName = "root", Password = "root001", VirtualHost = "hostserver" }; using (IConnection conn = factory.CreateConnection()) { using (IModel im = conn.CreateModel()) { im.ExchangeDeclare("rabbitmq_route", ExchangeType.Direct); im.QueueDeclare("rabbitmq_query", false, false, false, null); im.QueueBind("rabbitmq_query", "rabbitmq_route", ExchangeType.Direct, null); for (int i = 0; i < 1000; i++) { byte[] message = Encoding.UTF8.GetBytes("Hello Lv"); im.BasicPublish("rabbitmq_route", ExchangeType.Direct, null, message); Console.WriteLine("send:" + i); } } }
수신자:
ConnectionFactory factory = new ConnectionFactory { HostName = "hostname", UserName = "root", Password = "root001", VirtualHost = "hostserver" }; using (IConnection conn = factory.CreateConnection()) { using (IModel im = conn.CreateModel()) { while (true) { BasicGetResult res = im.BasicGet("rabbitmq_query", true); if (res != null) { Console.WriteLine("receiver:"+UTF8Encoding.UTF8.GetString(res.Body)); } } } }
한 번에 천 개를 보내세요. 수신이 완료되면 전송 프로세스가 빠릅니다. 수신됨, 수신이 수신될 때 상대적으로 느립니다. D 述
루프 배포 메커니즘 때문입니다.一下 간단히 말하면, 여러 수신자가 있을 경우 주기 배포의 이유로 뉴스 수신 단말기가 거의 2개입니다. + 따라서 동일한 메시지를 여러 수신자에게 배포하는 방법은 다음과 같습니다.进行 송신 터미널 코드 수정:
ConnectionFactory factory = new ConnectionFactory { HostName = "hostname", UserName = "root", Password = "root001", VirtualHost = "host" }; using (IConnection conn = factory.CreateConnection()) { using (IModel im = conn.CreateModel()) { im.ExchangeDeclare("rabbitmq_route_Fanout", ExchangeType.Fanout);// 路由 int i = 0; while (true) { Thread.Sleep(1000); ++i; byte[] message = Encoding.UTF8.GetBytes(i.ToString()); im.BasicPublish("rabbitmq_route_Fanout", "", null, message); Console.WriteLine("send:" + i.ToString()); } } }
ConnectionFactory factory = new ConnectionFactory { HostName = "hostname", UserName = "root", Password = "root001", VirtualHost = "host" }; using (IConnection conn = factory.CreateConnection()) { using (IModel im = conn.CreateModel()) { im.ExchangeDeclare("rabbitmq_route_Fanout", ExchangeType.Fanout); var queueOk = im.QueueDeclare();//1 im.QueueBind(queueOk.QueueName, "rabbitmq_route_Fanout", "");//2 var consumer = new QueueingBasicConsumer(im);//3 im.BasicConsume(queueOk.QueueName, true, consumer);//4 while (true) {var _result = (BasicDeliverEventArgs)consumer.Queue.Dequeue();//5 var body = _result.Body; var message = Encoding.UTF8.GetString(body); Console.WriteLine("received:{0}", message); } }
위 내용은 C#의 RabbitMQ 애플리케이션용 그래픽 코드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!