ฉันไม่ได้เขียนรองเท้าสปริงมานาน เมื่อเร็ว ๆ นี้ฉันเขียนบัสฤดูใบไม้ผลิคลาวด์เมื่อเร็ว ๆ นี้ เนื่องจากเนื้อหาจะมีความเกี่ยวข้องฉันจะเพิ่มโพสต์เกี่ยวกับการรวม AMQP
รู้เบื้องต้นเกี่ยวกับนายหน้าข้อความและ AMQP
นายหน้าข้อความเป็นรูปแบบสถาปัตยกรรมสำหรับการตรวจสอบข้อความการส่งและการกำหนดเส้นทาง เป้าหมายการออกแบบส่วนใหญ่จะใช้ในสถานการณ์ต่อไปนี้:
AMQP เป็นตัวย่อของโปรโตคอลการคิวข้อความขั้นสูงซึ่งเป็นโปรโตคอลเลเยอร์แอปพลิเคชันมาตรฐานแบบเปิดสำหรับมิดเดิลแวร์ข้อความ AMQP กำหนดคุณสมบัติเหล่านี้:
RabbitMQ
RabbitMQ ที่จะนำมาใช้ในบทความนี้เป็นผลิตภัณฑ์มิดเดิลแวร์ที่ใช้กับโปรโตคอล AMQP มันสามารถรองรับระบบปฏิบัติการหลายระบบและภาษาการเขียนโปรแกรมหลายภาษาและสามารถครอบคลุมแพลตฟอร์มเทคโนโลยีระดับองค์กรเกือบทั้งหมด
ติดตั้ง
ในหน้าดาวน์โหลดของเว็บไซต์ทางการ RabbitMQ https://www.rabbitmq.com/download.html เราสามารถรับแพ็คเกจการติดตั้งและคำแนะนำสำหรับระบบปฏิบัติการต่างๆ ที่นี่เราจะอธิบายแพลตฟอร์มที่ใช้กันทั่วไปหลายแห่งทีละคน
ต่อไปนี้เป็นคำอธิบายเวอร์ชันของเซิร์ฟเวอร์ Erlang และ RabbitMQ ที่เราใช้:
การติดตั้ง Windows
ติดตั้ง Erland รับแพ็คเกจการติดตั้ง EXE ผ่านหน้าดาวน์โหลดอย่างเป็นทางการ http://www.erlang.org/downloads เปิดโดยตรงและทำการติดตั้งให้เสร็จสมบูรณ์
ติดตั้ง RabbitMQ และรับแพ็คเกจการติดตั้ง EXE ผ่านหน้าดาวน์โหลดอย่างเป็นทางการ https://www.rabbitmq.com/download.html
หลังจากการดาวน์โหลดเสร็จสมบูรณ์ให้เรียกใช้ตัวติดตั้งโดยตรง
หลังจากการติดตั้งเซิร์ฟเวอร์ RabbitMQ เสร็จสมบูรณ์แล้วจะลงทะเบียนเป็นบริการโดยอัตโนมัติและเริ่มต้นด้วยการกำหนดค่าเริ่มต้น
การติดตั้ง Mac OS X
การใช้เครื่องมือ Brew ใน Mac OS X สามารถติดตั้ง Server RabbitMQ ได้อย่างง่ายดายเพียงทำตามคำสั่งต่อไปนี้:
ผ่านคำสั่งด้านบนคำสั่ง Server RabbitMq จะถูกติดตั้งใน/usr/local/sbin และจะไม่ถูกเพิ่มลงในตัวแปรสภาพแวดล้อมของผู้ใช้โดยอัตโนมัติดังนั้นเราจึงต้องเพิ่มเนื้อหาต่อไปนี้ลงในไฟล์. bash_profile หรือ. profile:
เส้นทาง = $ path:/usr/local/sbin
ด้วยวิธีนี้เราสามารถเริ่มต้นเซิร์ฟเวอร์ RabbitMQ ผ่านคำสั่ง RabbitMq-Server
การติดตั้ง Ubuntu
ใน Ubuntu เราสามารถใช้ที่เก็บ APT เพื่อติดตั้ง
ติดตั้ง erlang และดำเนินการ: apt-get ติดตั้ง erlang
ดำเนินการคำสั่งต่อไปนี้เพื่อเพิ่มที่เก็บ apt ไปที่ /etc/apt/sources.list.d
echo 'deb http://www.rabbitmq.com/debian/ การทดสอบหลัก' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
อัปเดตรายการแพ็คเกจของที่เก็บ apt และดำเนินการคำสั่งการอัปเดต sudo apt-get
ติดตั้งเซิร์ฟเวอร์กระต่ายและเรียกใช้คำสั่ง sudo apt-get ติดตั้งคำสั่ง rabbitmq-server
การจัดการกระต่าย
เราสามารถจัดการได้โดยตรงผ่านการเข้าถึงไฟล์การกำหนดค่าหรือผ่านการเข้าถึงเว็บ ด้านล่างเราจะแนะนำวิธีการจัดการผ่านเว็บ
ดำเนินการ RabbitMq-Plugins เปิดใช้งานคำสั่ง RABBITMQ_MANAGUTION เพื่อเปิดใช้งานปลั๊กอินการจัดการเว็บเพื่อให้เราสามารถจัดการได้ผ่านเบราว์เซอร์
> rabbitmq-plugins เปิดใช้งาน RabbitMQ_Management การเปิดใช้งานปลั๊กอินต่อไปนี้ได้รับการเปิดใช้งานแล้ว: Mochiweb WebMachine RabbitMQ_WEB_DISPATCH AMQP_Client RabbitMQ_Management_Agent RabbitMQ_Managementing การกำหนดค่าปลั๊กอิน
เปิดเบราว์เซอร์และเยี่ยมชม: http: // localhost: 15672/และเข้าสู่ระบบกับแขกผู้ใช้เริ่มต้นและรหัสผ่านยังเป็นแขก เราสามารถดูหน้าการจัดการในรูปต่อไปนี้:
จากรูปเราสามารถเห็นแนวคิดพื้นฐานบางอย่างที่กล่าวถึงในบทก่อนหน้าเช่น: การเชื่อมต่อ, ช่อง, การแลกเปลี่ยน, คิว ฯลฯ ผู้อ่านที่ใช้เป็นครั้งแรกสามารถคลิกเพื่อดูเนื้อหาที่พวกเขามีและคุ้นเคยกับฝั่งเซิร์ฟเวอร์ของเซิร์ฟเวอร์ RabbitMQ
คลิกแท็บผู้ดูแลระบบเพื่อจัดการผู้ใช้ที่นี่
การรวมการบูตฤดูใบไม้ผลิ
ด้านล่างนี้เรามีความรู้สึกและเข้าใจ RabbitMQ โดยใช้งานง่ายโดยรวม RabbitMQ ในแอปพลิเคชัน Spring Boot และใช้ตัวอย่างง่ายๆในการส่งและรับข้อความ
การรวม RabbitMQ ใน Spring Boot นั้นง่ายมากเพราะเราได้แนะนำ POM เริ่มต้นมาก่อนและโมดูล AMQP สามารถรองรับ RabbitMQ ได้ดี พูดคุยเกี่ยวกับกระบวนการรวมโดยละเอียด:
สร้างโครงการสปริงบูตใหม่ชื่อ "RabbitMQ-Hello"
ใน pom.xml มีการแนะนำการพึ่งพาต่อไปนี้โดยใช้สปริง-สตาร์-สตาร์เทอร์-AMQP เพื่อรองรับ RabbitMQ
<carent> <roupId> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Starter-Parent </artifactid> <Sersion> 1.3.7.Release </เวอร์ชัน> <การพึ่งพาอาศัยกัน> <! <ArtIfactId> Spring-Boot-Starter-Amqp </artifactId> </การพึ่งพาอาศัย> <การพึ่งพา> <roupId> org.springframework.boot </groupId>
กำหนดค่าการเชื่อมต่อและข้อมูลผู้ใช้เกี่ยวกับ RABBITMQ ใน Application.properties ผู้ใช้สามารถกลับไปที่เนื้อหาการติดตั้งด้านบนและสร้างผู้ใช้ในหน้าการจัดการ
spring.application.name = rabbitmq-hello
Spring.rabbitmq.host = localhostspring.rabbitmq.port = 5672spring.rabbitmq.username = springspring.rabbitmq.password = 123456
สร้างผู้ส่งผู้ผลิตข้อความ อินเทอร์เฟซ AMQPTEMPLATE กำหนดชุดการดำเนินการพื้นฐานสำหรับโปรโตคอล AMQP โดยการฉีดอินสแตนซ์ของอินเตอร์เฟส AMQPTEMPLATE ใน Spring Boot การใช้งานเฉพาะจะถูกฉีดตามการกำหนดค่า ในโปรดิวเซอร์นี้เราสร้างสตริงและส่งไปยังคิวที่เรียกว่าสวัสดี
@componentpublic ผู้ส่งคลาส {@autowired ส่วนตัว amqptemplate rabbittemplate; โมฆะสาธารณะส่ง () {String Context = "Hello" + New Date (); System.out.println ("ผู้ส่ง:" + บริบท); this.rabbittemplate.convertandsend ("สวัสดี" บริบท); - สร้างผู้รับข้อความผู้บริโภค คำอธิบายประกอบ @RabBitListener กำหนดคลาสการฟังให้กับคิวสวัสดีและใช้คำอธิบายประกอบ @Rabbithandler เพื่อระบุวิธีการประมวลผลสำหรับข้อความ ดังนั้นผู้บริโภคตระหนักถึงการบริโภคคิวสวัสดีและการดำเนินการบริโภคเป็นเนื้อหาสตริงของข้อความเอาต์พุต
@component @rabbitListener (queues = "hello") ตัวรับสัญญาณระดับสาธารณะ {@rabbithandler กระบวนการโมฆะสาธารณะ (สตริงสวัสดี) {system.out.println ("ผู้รับ:" + สวัสดี); - สร้าง RabbitConfig คลาสการกำหนดค่า RABBITMQ ซึ่งใช้ในการกำหนดค่าข้อมูลขั้นสูงเช่นคิวสวิตช์และการกำหนดเส้นทาง ที่นี่เรามุ่งเน้นไปที่การเริ่มต้นใช้งานและกำหนดก่อนด้วยการกำหนดค่าย่อเล็กสุดเพื่อให้กระบวนการผลิตและการบริโภคพื้นฐานเสร็จสมบูรณ์
@ConfigurationPublic คลาส rabbitconfig {@bean สาธารณะคิว helloqueue () {ส่งคืนคิวใหม่ ("สวัสดี"); - สร้างคลาสแอปพลิเคชันหลัก:
@springbootapplicationPublic คลาส helloapplication {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {springapplication.run (helloapplication.class, args); - สร้างคลาสทดสอบหน่วยเพื่อเรียกการผลิตข้อความ:
@runwith (springjunit4classrunner.class) @springapplicationconfiguration (คลาส = helloapplication.class) คลาสสาธารณะ helloapplicationtests {@autowired ผู้ส่งผู้ส่งส่วนตัว; @Test โมฆะสาธารณะสวัสดี () พ่นข้อยกเว้น {SENDER.SEND (); -หลังจากเสร็จสิ้นการเขียนโปรแกรมลองเรียกใช้ ก่อนอื่นตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ RabbitMQ เริ่มต้นแล้วดำเนินการต่อไปนี้:
เริ่มคลาส Main Class จากคอนโซลเราจะเห็นเนื้อหาต่อไปนี้โปรแกรมสร้างการเชื่อมต่อเพื่อเข้าถึง SpringCloud ใน 127.0.0.1:5672
คัดลอกรหัสดังนี้: OsarccachingConnectionFactory: สร้างการเชื่อมต่อใหม่: SimpleConnection@29836D32 [Delegate = AMQP: //[email protected]: 5672/]
ในเวลาเดียวกันผ่านแผงควบคุม RabbitMQ เราจะเห็นว่ารายการที่มีการเชื่อมต่อปัจจุบันในการเชื่อมต่อและช่อง
เรียกใช้คลาสทดสอบหน่วยและเราสามารถดูผลลัพธ์ต่อไปนี้ในคอนโซลและข้อความจะถูกส่งไปยังคิวสวัสดีของเซิร์ฟเวอร์ RabbitMQ
ผู้ส่ง: สวัสดีดวงอาทิตย์ 25 ก.ย. 11:06:11 CST 2016
สลับไปที่คอนโซลของคลาสหลักของแอปพลิเคชันเราสามารถดูผลลัพธ์ต่อไปนี้ผู้บริโภคดำเนินการโปรแกรมฟังของ Hello Queue และเอาต์พุตข้อมูลข้อความที่ได้รับ
ตัวรับสัญญาณ: สวัสดีดวงอาทิตย์ 25 ก.ย. 11:06:11 CST 2016
ผ่านตัวอย่างข้างต้นเราแนะนำโมดูล Spring-Boot-Starter-AMQP ในแอปพลิเคชัน Spring Boot และเพียงกำหนดค่าเพื่อให้เนื้อหาการพัฒนาของการผลิตและการบริโภคข้อความ RabbitMQ เสร็จสมบูรณ์ อย่างไรก็ตามในแอปพลิเคชันจริงเรายังคงมีเนื้อหาจำนวนมากที่ไม่ได้แสดงให้เห็นดังนั้นเราจะไม่ให้คำอธิบายเพิ่มเติมที่นี่ ผู้อ่านสามารถตรวจสอบบทเรียน RabbitMQ อย่างเป็นทางการได้ด้วยตนเองเพื่อให้ได้ความเข้าใจที่ครอบคลุมมากขึ้น
ตัวอย่างที่สมบูรณ์: บทที่ 5-2-1
โอเพ่นซอร์สจีน: http://git.oschina.net/diidispace/springboot-learning/tree/master/chapter5-2-1
GitHub: https://github.com/dyc87112/springboot-learning/tree/master/chapter5-2-1
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น