เฮ้! ในฐานะซัพพลายเออร์ Reactor Core ฉันยินดีอย่างยิ่งที่จะแบ่งปันกับคุณถึงวิธีรวม Reactor Core เข้ากับโปรเจ็กต์ Java Reactor Core เป็นไลบรารีที่ทรงพลังสำหรับการสร้างแอปพลิเคชันแบบโต้ตอบใน Java และเป็นตัวเปลี่ยนเกมในโลกแห่งการเขียนโปรแกรมแบบอะซิงโครนัส
ทำไมต้องเป็นแกนเครื่องปฏิกรณ์?
ก่อนที่เราจะเจาะลึกกระบวนการบูรณาการ เรามาพูดคุยกันก่อนว่าเหตุใดคุณจึงต้องการใช้ Reactor Core ในโลกดิจิทัลที่เปลี่ยนแปลงไปอย่างรวดเร็วในปัจจุบัน แอปพลิเคชันจำเป็นต้องจัดการกับคำขอจำนวนมากพร้อมกันอย่างมีประสิทธิภาพ Reactor Core มีโมเดลการเขียนโปรแกรมแบบโต้ตอบที่ช่วยให้คุณสามารถเขียนโค้ดที่ขับเคลื่อนด้วยเหตุการณ์และไม่มีการบล็อกได้ ซึ่งหมายความว่าแอปพลิเคชันของคุณสามารถจัดการกับคำขอได้มากขึ้นโดยใช้ทรัพยากรน้อยลง นำไปสู่ประสิทธิภาพและความสามารถในการปรับขนาดที่ดีขึ้น
ข้อกำหนดเบื้องต้น
ก่อนอื่นคุณต้องมีความเข้าใจพื้นฐานเกี่ยวกับการเขียนโปรแกรม Java คุณควรติดตั้ง Java Development Kit (JDK) บนเครื่องของคุณด้วย โดยเฉพาะอย่างยิ่ง JDK 8 หรือใหม่กว่า นอกจากนี้ คุณจะต้องมีเครื่องมือสร้างเช่น Maven หรือ Gradle
การใช้มาเวน
หากคุณใช้ Maven การผสานรวม Reactor Core เป็นเรื่องง่าย เพียงแค่เปิดของคุณpom.xmlไฟล์และเพิ่มการอ้างอิงต่อไปนี้:
<การพึ่งพา> <การพึ่งพา> <groupId>io.projectreactor</groupId> <artifactId>เครื่องปฏิกรณ์-core</artifactId> <version>3.4.18</version> </การพึ่งพา> </การพึ่งพา>
Maven จะดาวน์โหลดไลบรารี Reactor Core และข้อมูลอ้างอิงสำหรับคุณโดยอัตโนมัติ รุ่นนี้3.4.18ค่อนข้างเสถียร แต่คุณสามารถตรวจสอบเวอร์ชันล่าสุดได้จากที่เก็บ Maven อย่างเป็นทางการ
การใช้ Gradle
สำหรับผู้ใช้ Gradle ให้เปิดไฟล์build.gradleไฟล์และเพิ่มบรรทัดต่อไปนี้ในการพึ่งพาอาศัยกันปิดกั้น:
การใช้งาน 'io.projectreactor:reactor-core:3.4.18'
Gradle จะดึงไลบรารี่และเตรียมพร้อมสำหรับโปรเจ็กต์ของคุณ
แนวคิดพื้นฐานของแกนเครื่องปฏิกรณ์
ก่อนที่เราจะเริ่มเขียนโค้ด สิ่งสำคัญคือต้องเข้าใจแนวคิดพื้นฐานบางประการใน Reactor Core โครงสร้างหลักสองประการคือโมโนและฟลักซ์-
- โมโน: ก
โมโนแสดงถึงประเภทปฏิกิริยาที่สามารถปล่อยองค์ประกอบ 0 หรือ 1 ซึ่งจะมีประโยชน์เมื่อคุณคาดหวังผลลัพธ์เดียว เช่น ผลลัพธ์ของการสืบค้นฐานข้อมูลที่ส่งกลับหนึ่งระเบียน - ฟลักซ์: ก
ฟลักซ์สามารถปล่อยองค์ประกอบ 0 ถึง N เหมาะอย่างยิ่งสำหรับการจัดการกระแสข้อมูล เช่น รายชื่อผู้ใช้ที่ดึงมาจากฐานข้อมูล
การเขียนโค้ดโต้ตอบแรกของคุณ
เริ่มต้นด้วยตัวอย่างง่ายๆ สมมติว่าคุณต้องการสร้างโมโนที่ส่งเสียงสตริงเดียว ต่อไปนี้คือวิธีที่คุณสามารถทำได้:
นำเข้า reactor.core.publisher.Mono; ReactorExample ระดับสาธารณะ { โมฆะสาธารณะคง main (String [] args) { Mono <String> mono = Mono.just ("สวัสดีแกนเครื่องปฏิกรณ์!"); mono.subscribe(System.out::println); -
ในโค้ดนี้ เราจะสร้างไฟล์โมโนโดยใช้แค่วิธีการซึ่งใช้ค่าเดียว จากนั้นเราก็เรียก.สมัครสมาชิกวิธีการทริกเกอร์การปล่อยค่าจริงและพิมพ์ไปยังคอนโซล
ทีนี้มาดูกฟลักซ์ตัวอย่าง. เราจะสร้างกฟลักซ์ที่ปล่อยลำดับของจำนวนเต็มตั้งแต่ 1 ถึง 5:
นำเข้า reactor.core.publisher.Flux; FluxExample คลาสสาธารณะ { โมฆะคงที่สาธารณะ main (String [] args) { Flux <Integer> flux = Flux.range (1, 5); flux.subscribe(System.out::println); -
ที่พิสัยวิธีการสร้างฟลักซ์ที่ส่งเสียงลำดับของจำนวนเต็มเริ่มต้นจากอาร์กิวเมนต์แรกและมีจำนวนองค์ประกอบที่ระบุโดยอาร์กิวเมนต์ที่สอง
การทำงานร่วมกับผู้ประกอบการ
หนึ่งในคุณสมบัติที่ทรงพลังที่สุดของ Reactor Core คือตัวดำเนินการ ตัวดำเนินการช่วยให้คุณสามารถแปลง กรอง และรวมสตรีมที่มีปฏิกิริยาได้
การกรอง
สมมติว่าคุณมีฟลักซ์ของจำนวนเต็มและคุณต้องการเก็บเฉพาะเลขคู่เท่านั้น คุณสามารถใช้กรองตัวดำเนินการ:
นำเข้า reactor.core.publisher.Flux; FilterExample ระดับสาธารณะ { โมฆะสาธารณะคง main (String [] args) { Flux <Integer> flux = Flux.range (1, 10); flux.filter (num -> num % 2 == 0) .subscribe (System.out::println); -
การทำแผนที่
หากคุณต้องการแปลงแต่ละองค์ประกอบในสตรีม คุณสามารถใช้แผนที่ตัวดำเนินการ ตัวอย่างเช่น ลองยกกำลังสองตัวเลขแต่ละตัวใน aฟลักซ์ของจำนวนเต็ม:

![]()
นำเข้า reactor.core.publisher.Flux; MapExample คลาสสาธารณะ { โมฆะสาธารณะคงที่ main (String [] args) { Flux <Integer> flux = Flux.range (1, 5); flux.map (num -> num * num) .subscribe (System.out :: println); -
การจัดการข้อผิดพลาด
ในแอปพลิเคชันในโลกแห่งความเป็นจริง ข้อผิดพลาดเป็นสิ่งที่หลีกเลี่ยงไม่ได้ Reactor Core มีหลายวิธีในการจัดการกับข้อผิดพลาด วิธีหนึ่งที่พบบ่อยคือการใช้บนข้อผิดพลาดดำเนินการต่อตัวดำเนินการ
นำเข้า reactor.core.publisher.Flux; ErrorHandlingExample ระดับสาธารณะ { โมฆะสาธารณะคงที่ main (String [] args) { Flux <Integer> flux = Flux.just (1, 2, 0, 3) .map (num -> 10 / num) .onErrorResume (e -> { System.out.println ("ข้อผิดพลาดเกิดขึ้น: " + e.getMessage ()); return Flux.just (-1); }); flux.subscribe(System.out::println); -
ในตัวอย่างนี้ เราพยายามหาร 10 ด้วยตัวเลขแต่ละตัวในฟลักซ์- เมื่อเราพบข้อผิดพลาดในการหารด้วยศูนย์บนข้อผิดพลาดดำเนินการต่อโอเปอเรเตอร์ตรวจพบข้อผิดพลาด พิมพ์ข้อความแสดงข้อผิดพลาด และส่งคืนข้อความใหม่ฟลักซ์ด้วยองค์ประกอบเดียว-1-
บูรณาการกับไลบรารี Java อื่น ๆ
Reactor Core สามารถรวมเข้ากับไลบรารี Java อื่น ๆ ได้อย่างง่ายดาย ตัวอย่างเช่น หากคุณใช้ Spring Boot คุณสามารถใช้ Reactor Core เพื่อสร้าง RESTful API แบบโต้ตอบได้ Spring WebFlux ซึ่งเป็นส่วนหนึ่งของ Spring Boot ถูกสร้างขึ้นบน Reactor Core
นี่คือตัวอย่างง่ายๆ ของ RESTful API แบบโต้ตอบโดยใช้ Spring WebFlux:
นำเข้า org.springframework.boot.SpringApplication; นำเข้า org.springframework.boot.autoconfigure.SpringBootApplication; นำเข้า org.springframework.web.bind.annotation.GetMapping; นำเข้า org.springframework.web.bind.annotation.RestController; นำเข้า reactor.core.publisher.Flux; @SpringBootApplication @RestController คลาสสาธารณะ ReactiveApiExample { @GetMapping("/numbers") สาธารณะ Flux<Integer> getNumbers() { return Flux.range(1, 10); } โมฆะสาธารณะคงหลัก (สตริง [] args) { SpringApplication.run (ReactiveApiExample.class, args); -
ในตัวอย่างนี้ เราสร้าง RESTful API แบบธรรมดาที่ส่งคืน aฟลักซ์ของจำนวนเต็มตั้งแต่ 1 ถึง 10 เมื่อคุณเข้าถึง/ตัวเลขจุดสิ้นสุด
การเลือกแกนเครื่องปฏิกรณ์ที่เหมาะสมสำหรับโครงการของคุณ
ในฐานะซัพพลายเออร์แกนเครื่องปฏิกรณ์ ฉันเข้าใจดีว่าการเลือกแกนที่เหมาะสมสำหรับโครงการของคุณเป็นสิ่งสำคัญ เรามีหลากหลายของแกนเครื่องปฏิกรณ์ตัวเลือกเพื่อตอบสนองความต้องการที่แตกต่างกัน หากคุณกำลังมองหาประสิทธิภาพและความน่าเชื่อถือสูง แกนของเราได้รับการออกแบบเพื่อมอบสิ่งนั้น และหากคุณสนใจแกนที่มีคุณสมบัติแม่เหล็กเฉพาะ เราก็มีเช่นกันแกนเหล็กเหล็กซิลิคอนนั่นอาจเป็นทางเลือกที่ดี
บทสรุป
การรวม Reactor Core เข้ากับโปรเจ็กต์ Java นั้นไม่ยากอย่างที่คิด ด้วยเครื่องมือสร้างที่เหมาะสมและความเข้าใจพื้นฐานเกี่ยวกับแนวคิดการเขียนโปรแกรมแบบโต้ตอบ คุณสามารถเริ่มสร้างแอปพลิเคชันประสิทธิภาพสูงและปรับขนาดได้ในเวลาไม่นาน ไม่ว่าคุณจะเป็นมือใหม่หรือเป็นนักพัฒนา Java ที่มีประสบการณ์ Reactor Core ก็มีข้อเสนอมากมายให้คุณเลือก
หากคุณสนใจที่จะซื้อ Reactor Core สำหรับโครงการของคุณ เรายินดีที่จะพูดคุยกับคุณ ติดต่อเราเพื่อหารือเกี่ยวกับความต้องการเฉพาะของคุณ และเราจะช่วยคุณค้นหาโซลูชันที่สมบูรณ์แบบ
อ้างอิง
- เอกสารอย่างเป็นทางการของโครงการเครื่องปฏิกรณ์
- เอกสาร Spring WebFlux
- เอกสารอย่างเป็นทางการของ Java 8+
