RabbitMQ рдореЗрдВ рдирд┐рдЧрд░рд╛рдиреА рд╕рдВрджреЗрд╢

рдирд┐рд░реНрдорд╛рддрд╛, рдПрдХреНрд╕рдЪреЗрдВрдЬ, рдХрддрд╛рд░ рдФрд░ рдЙрдкрднреЛрдХреНрддрд╛ рддрддреНрд╡реЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдХреНрд▓рд╛рд╕рд┐рдХ RabbitMQ рд╕рдВрджреЗрд╢ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдбрд┐рдЬрд╛рдЗрди рдпреЛрдЬрдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред



рдХрд╛рд░реНрдп рдХрддрд╛рд░ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд╛ рдЖрдпреЛрдЬрди рдХрд░рдирд╛ рд╣реИ рдФрд░ рдореБрдЦреНрдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ (рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░) рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ, рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдиреЗ рдХреА рд▓рдЪреАрд▓реА рдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЧрдд рд╕реЗ рдмрдЪреЗрдВред рдЕрдВрддрд┐рдо рдбрд┐рдЬрд╝рд╛рдЗрди рдЖрдкрдХреЛ рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ рдХреНрд╖рдорддрд╛ (рдЬреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рднрд╛рд░ рд╕реЗ рдмрдЪреЗрдВрдЧреЗ) рдФрд░ рдореБрдЦреНрдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд▓рд┐рдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрд╕рд╛рдиреА рд╕реЗ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдПрдХ рдкреНрд░рджрд░реНрд╢рди рд╕реНрдЯреИрдВрдб рдХрд╛ рдЖрдпреЛрдЬрди рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдХрдиреНрд╡реЗрдпрд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВрдЧреЗ:



рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдирд┐рдореНрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдПрдХреНрд╕рдЪреЗрдВрдЬ (рдлрд╝реЙрд╕реНрдЯ) рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИ рдереА, рдЬреЛ рд╕рдВрд╢реЛрдзрди рдХреЗ рджреМрд░рд╛рди рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИ:



рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реЗрдЯрд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдлреЗрдиреМрдЯ рд╣реИ - рдЬреЛ рдЖрдкрдХреЛ рджреЛ рдкреАрдпрд░-рдЯреВ-рдкреАрдпрд░ рдХрддрд╛рд░ рдмрдирд╛рдиреЗ рдФрд░ рд╕рдВрдкреВрд░реНрдг рд╕рдВрджреЗрд╢ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдирдИ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдХрддрд╛рд░ рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:





рд▓реЙрдЧреНрд╕ рдХрддрд╛рд░ рдореЗрдВ рдореБрдЦреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЗ рдмрд┐рдирд╛ред рд╕рдВрджреЗрд╢ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП MS SQL рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рддреЗ рд╣реИрдВред рдЖрдк рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрджреЗрд╢ рдХреЛ xml рдкреНрд░рд╛рд░реВрдк рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, SQL рд╕рд░реНрд╡рд░ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ

create table RabbitMsg( id int PRIMARY KEY IDENTITY(1000,1), [Message] nvarchar(1000) DEFAULT '', RegDate datetime default GETDATE()) 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк SQL рдХреНрд╡реЗрд░реА рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рд╕рдВрдЦреНрдпрд╛, рдХреБрдЫ рдкрд╛рда рдФрд░ рддрд╛рд░реАрдЦ рджрд░реНрдЬ рдХреА рдЧрдИ рдереАред

рдЖрдЗрдП рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдмрдирд╛рдПрдВ рдЬреЛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдХрддрд╛рд░ рдореЗрдВ RabbitMQ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдЧрд╛, рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ RabbitMsg рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдЧрд╛ред

 using System; using RabbitMQ.Client; using RabbitMQ.Client.Events; using System.Text; using System.Data.SqlClient; namespace Getter { class Program { static void Main(string[] args) { var factory = new ConnectionFactory() { HostName = "192.168.1.241", Port = 30672, UserName = "robotics01", Password = "" }; using (var connection = factory.CreateConnection()) using (var channel = connection.CreateModel()) { channel.ExchangeDeclare(exchange: "faust", type: "fanout", durable: true); var queueName = "Statistics"; channel.QueueBind(queue: queueName, exchange: "faust", routingKey: ""); Console.WriteLine(" [*] Waiting for logs."); var consumer = new EventingBasicConsumer(channel); consumer.Received += (model, ea) => { var body = ea.Body; var message = Encoding.UTF8.GetString(body); Console.WriteLine(" [x] {0}", message); SqlConnection sqlconnection = new SqlConnection("Server=tcp:fastreportsql,1433;Initial Catalog=FastReportSQL;Persist Security Info=False;User ID=ufocombat;Password=;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"); sqlconnection.Open(); SqlCommand cmd = new SqlCommand($"INSERT INTO RabbitMsg(Message) VALUES (@msg)", sqlconnection); cmd.Parameters.AddWithValue("msg", message); cmd.ExecuteNonQuery(); sqlconnection.Close(); }; channel.BasicConsume(queue: queueName, autoAck: false, consumer: consumer); Console.WriteLine(" Press [enter] to exit."); Console.ReadLine(); } Console.WriteLine("Hello World!"); } } } 

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред


рдЗрд╕ рдмреАрдЪ, рдПрдордПрд╕ SQL тАЛтАЛрд╕рд░реНрд╡рд░ рдкрд░



рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдХрддрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдПрдБ


рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реБрдЖ:



рдирд┐рд╖реНрдХрд░реНрд╖


рдорд╛рдирд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдВрдХрдбрд╝реЗ рдХреИрд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рднреА рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕реЗ рдкреАрдбреАрдПрдл рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ RabbitMQ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдФрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрддрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдХрд┐рд╕реА рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рддреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ FastReports рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЧрдд рдХреЗ рд╡рд┐рдХрд╛рд╕ рд▓рд╛рдЧрдд рдХреЛ рдХрдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдХрдиреНрд╡реЗрдпрд░ рдЦреБрдж рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рдорд┐рд▓рдирд╕рд╛рд░ рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/hi447412/


All Articles