Message Middleware เป็นประโยชน์อย่างมากในการแยกและกำจัดสูงสุดระหว่างระบบของเรา Spring Boot ยังรวมเนื้อหาของส่วนนี้และสิ่งที่ง่ายที่สุดในการรวมเข้าด้วยกันคือ RabbitMQ วันนี้เราจะใช้ RabbitMQ เป็นตัวอย่าง
กฎเก่ามาดู POM ก่อน
<การพึ่งพา> <roupId> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Starter </artifactid> </serpendency> <perdency> <sderndency> <RoupID> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Starter-Amqp </artifactid> </serpendency> <การพึ่งพาอาศัย> <roupId> org.projectlombok </groupid>
AMQP หรือโปรโตคอลการคิวข้อความขั้นสูงซึ่งเป็นโปรโตคอลคิวข้อความขั้นสูงมาตรฐานระดับแอปพลิเคชันที่ให้บริการส่งข้อความแบบครบวงจรเป็นมาตรฐานเปิดของโปรโตคอลระดับแอปพลิเคชันและได้รับการออกแบบมาสำหรับมิดเดิลแวร์ที่มุ่งเน้นข้อความ ลูกค้าและมิดเดิลแวร์ข้อความตามโปรโตคอลนี้สามารถส่งข้อความและไม่ได้ถูก จำกัด ด้วยผลิตภัณฑ์และภาษาการพัฒนาที่แตกต่างกันของลูกค้า/มิดเดิลแวร์ Spring-Boot-Starter-AMQP แนะนำ RabbitMQ มีข้อกำหนดเบื้องต้น: ติดตั้งเซิร์ฟเวอร์ RabbitMQ บนเครื่องของคุณก่อนจากนั้นเรียกใช้เซิร์ฟเวอร์ RabbitMq-Server และเริ่มต้น หลังจากเริ่มต้นเราสามารถกำหนดค่าโปรแกรมไคลเอนต์ของเรา ก่อนอื่นดูไฟล์กำหนดค่าของเรา
Spring.application.Name: Spirng-Boot-RabbitMqspring.rabbitmq.host: 127.0.0.1spring.rabbitmq.port: 5672Spring.rabbitmq.username: Guestspring.rabbitmq.password:
IP, พอร์ต, ชื่อผู้ใช้, รหัสผ่านและข้อมูลพื้นฐานอื่น ๆ ของเซิร์ฟเวอร์ได้รับการกำหนดค่าเพื่อให้แน่ใจว่าเราสามารถเชื่อมต่อกับเซิร์ฟเวอร์ได้
เพิ่มคลาสการกำหนดค่า RabbitMQ
แพ็คเกจ com.shuqi; นำเข้า org.springframework.amqp.core.queue; นำเข้า org.springframework.context.annotation.bean; นำเข้า org.springframework.context.annotation.configuration; -
คิวชื่อ Hello ถูกสร้างขึ้นและผู้ผลิตสามารถใส่ข้อมูลลงในคิวสวัสดีและผู้บริโภคสามารถใช้ข้อมูลจากคิวสวัสดี ตรวจสอบผู้ดูแลของผู้ผลิต
แพ็คเกจ com.shuqi.controller; นำเข้า org.springframework.amqp.core.amqptemplate; นำเข้า org.springframework.beans.factory.annotation.autowired; นำเข้า org.springframework.web.bind.annotation.requestmapping; org.springframework.web.bind.annotation.requestparam; นำเข้า org.springframework.web.bind.annotation.restcontroller; @restcontrollerpublic คลาส Hellocontroller @RequestMapping ("/hello") สตริงสาธารณะสวัสดี (@requestparam ชื่อสตริงชื่อ) {Rabbittemplate.convertandsend ("สวัสดี", "สวัสดี"+ชื่อ); ส่งคืน "ข้อความที่ส่งสำเร็จ"; -การผลิตข้อความผ่านคอนโทรลเลอร์และส่งข้อความผ่าน AMQPTEMPLATE กับผู้ผลิตลองมาดูผู้บริโภค
แพ็คเกจ com.shuqi.consumer; นำเข้า lombok.extern.slf4j.slf4j; นำเข้า org.springframework.amqp.rabbit.annotation.rabbithandler; นำเข้า org.springframework.amqp.rabbit.annotation.rabbitlistener; org.springframework.stereotype.Component;@component@rabbitListener (queues = "hello")@slf4jpublic คลาส helloconsumer {@rabbithandler กระบวนการโมฆะสาธารณะ -@RabBitListener (queues = "สวัสดี") หมายความว่ามันเป็นผู้ฟัง RabbitMQ ชื่อคิวของผู้ฟังคือสวัสดีซึ่งหมายความว่าข้อมูลจะมาอย่างแน่นอน เมื่อข้อมูลมาถึงข้อมูลจะถูกประมวลผลผ่านวิธีการปรับเปลี่ยน @rabbithandler พิมพ์ มาเริ่มโครงการและดูผลลัพธ์
ป้อน http: // localhost: 8080/hello? name = shuqi ในเบราว์เซอร์ของคุณเพื่อดูผลลัพธ์ต่อไปนี้
ตรวจสอบเอาต์พุตบันทึกจากคอนโซล
2018-03-25 16: 24: 32.752 ข้อมูล 4987 --- [ctaskexecutor-1] com.shuqi.consumer.helloconsumer: ได้รับข้อความ: ข้อความ: สวัสดี shuqi
ซึ่งหมายความว่าข้อความได้รับและประมวลผลโดยผู้บริโภค คุณสามารถเล่นกับมันได้
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น