วิธีใช้งาน Reactor Core ใน RESTful API แบบ Reactive?

Aug 25, 2026ฝากข้อความ

ในขอบเขตของการพัฒนาซอฟต์แวร์สมัยใหม่ ความต้องการแอปพลิเคชันประสิทธิภาพสูง ปรับขนาดได้ และตอบสนองเพิ่มมากขึ้นเรื่อยๆ การเขียนโปรแกรมเชิงโต้ตอบกำลังกลายเป็นกระบวนทัศน์อันทรงพลังในการตอบสนองข้อกำหนดเหล่านี้ และ Reactor Core ก็อยู่ในแนวหน้าของคลื่นลูกนี้ ในฐานะซัพพลายเออร์ชั้นนำของ Reactor Core ฉันตื่นเต้นที่จะแบ่งปันกับคุณถึงวิธีใช้ Reactor Core อย่างมีประสิทธิภาพใน RESTful API แบบโต้ตอบ

 

ทำความเข้าใจเกี่ยวกับแกนเครื่องปฏิกรณ์

 

Reactor Core เป็นไลบรารีเชิงโต้ตอบพื้นฐานสำหรับ JVM โดยอิงตามข้อกำหนด Reactive Streams โดยจัดเตรียมชุดของคลาสและตัวดำเนินการเพื่อสร้างแอปพลิเคชันแบบอะซิงโครนัส ไม่บล็อก และขับเคลื่อนด้วยเหตุการณ์ สองประเภทหลักใน Reactor Core คือ Mono และ Flux โมโนแสดงถึงสตรีมปฏิกิริยาที่ปล่อยองค์ประกอบ 0 หรือ 1 ซึ่งมีประโยชน์สำหรับสถานการณ์เช่นการจัดการผลลัพธ์เดียว เช่น การตอบสนองจากการสืบค้นฐานข้อมูลสำหรับบันทึกเดียว ในทางกลับกัน Flux แสดงถึงกระแสปฏิกิริยาที่สามารถปล่อย 0 ไปยังหลายองค์ประกอบ ทำให้เหมาะสำหรับกรณีเช่นการจัดการรายการผลลัพธ์จากฐานข้อมูล

 

นำเข้า reactor.core.publisher.Mono; นำเข้า reactor.core.publisher.Flux; // ตัวอย่างการสร้าง Mono Mono singleValueMono = Mono.just("Hello, Reactor"); // ตัวอย่างการสร้าง Flux Flux numberFlux = Flux.range(1, 10);

 

การตั้งค่า Reactive RESTful API ด้วย Spring WebFlux

 

Spring WebFlux เป็นเฟรมเวิร์กเว็บแบบโต้ตอบในระบบนิเวศของ Spring ที่ผสานรวมกับ Reactor Core ได้อย่างราบรื่น ในการเริ่มใช้ Reactor Core ใน RESTful API เราต้องตั้งค่าโปรเจ็กต์ Spring WebFlux ก่อน

 

ขั้นตอนที่ 1: สร้างโปรเจ็กต์ Spring Boot

 

คุณสามารถใช้ Spring Initializr (https://start.spring.io/) เพื่อสร้างโปรเจ็กต์ Spring Boot ใหม่ เลือก Spring WebFlux เป็นการพึ่งพา

 

ขั้นตอนที่ 2: กำหนดคอนโทรลเลอร์

 

มาสร้างตัวควบคุมง่ายๆ เพื่อสาธิตวิธีใช้ Mono และ Flux ใน RESTful API กันดีกว่า

 

นำเข้า org.springframework.web.bind.annotation.GetMapping; นำเข้า org.springframework.web.bind.annotation.RestController; นำเข้า reactor.core.publisher.Mono; นำเข้า reactor.core.publisher.Flux; @RestController คลาสสาธารณะ ReactiveController { @GetMapping("/single") สาธารณะ Mono getSingleValue() { return Mono.just("นี่คือค่าเดียวจาก API"); } @GetMapping("/multiple") Flux สาธารณะ getMultipleValues() { return Flux.just("ค่า 1", "ค่า 2", "ค่า 3"); } }

ในตัวอย่างนี้ จุดสิ้นสุด /single ส่งคืน Mono ที่แสดงถึงค่าสตริงเดียว จุดสิ้นสุด /multiple ส่งคืน Flux ที่ส่งค่าสตริงหลายค่า

 

Silicon Steel Iron Core

Reactor Core suppliers

 

ขั้นตอนที่ 3: เรียกใช้แอปพลิเคชัน

 

เมื่อคุณกำหนดคอนโทรลเลอร์แล้ว คุณก็สามารถรันแอปพลิเคชัน Spring Boot ได้ จากนั้นคุณสามารถใช้เครื่องมือเช่น cURL หรือบุรุษไปรษณีย์เพื่อทดสอบจุดสิ้นสุดได้

 

ขด http://localhost:8080/ขดเดียว http://localhost:8080/หลาย

 

การใช้ประโยชน์จากผู้ปฏิบัติงานหลักของเครื่องปฏิกรณ์

 

Reactor Core มีชุดตัวดำเนินการที่หลากหลายเพื่อจัดการกระแสปฏิกิริยา โอเปอเรเตอร์เหล่านี้สามารถใช้เพื่อแปลง กรอง รวม และดำเนินการอื่นๆ บนอ็อบเจ็กต์ Mono และ Flux

 

ผู้ประกอบการแปลงร่าง

 

ตัวดำเนินการแผนที่ใช้ในการแปลงแต่ละองค์ประกอบในสตรีม ตัวอย่างเช่น หากเรามีฟลักซ์ของจำนวนเต็มและเราต้องการยกกำลังสองตัวเลขแต่ละตัว:

 

หมายเลขฟลักซ์ = Flux.range(1, 5); Flux squaredNumbers = number.map (num -> num * num);

 

ตัวดำเนินการกรอง

 

ตัวดำเนินการตัวกรองใช้ในการกรององค์ประกอบในสตรีมตามภาคแสดง ตัวอย่างเช่น หากเราต้องการกรองเลขคู่ทั้งหมดออกจากฟลักซ์ของจำนวนเต็ม:

 

ฟลักซ์ allNumbers = Flux.range(1, 10); Flux OddNumbers = allNumbers.filter(num -> num % 2 != 0);

 

การรวมตัวดำเนินการ

 

ตัวดำเนินการ zip สามารถใช้เพื่อรวมองค์ประกอบจากหลายสตรีม สมมติว่าเรามีวัตถุ Flux สองวัตถุ อันหนึ่งมีชื่อและอีกวัตถุหนึ่งมีอายุ และเราต้องการสร้าง Flux ใหม่ด้วยข้อมูลที่รวมกัน:

 

ชื่อ Flux = Flux.just("Alice", "Bob", "Charlie"); อายุของฟลักซ์ = Flux.just(25, 30, 35); Flux รวมกัน = Flux.zip(ชื่อ, อายุ) .map(tuple -> tuple.getT1() + " is " + tuple.getT2() + " years old");

 

การจัดการข้อผิดพลาดในแกนเครื่องปฏิกรณ์

 

การจัดการข้อผิดพลาดเป็นส่วนสำคัญในการสร้างแอปพลิเคชันเชิงโต้ตอบที่มีประสิทธิภาพ Reactor Core มีหลายวิธีในการจัดการกับข้อผิดพลาดในสตรีมที่เกิดปฏิกิริยา

 

การใช้ onErrorReturn

 

ตัวดำเนินการ onErrorReturn ช่วยให้คุณสามารถส่งคืนค่าเริ่มต้นเมื่อมีข้อผิดพลาดเกิดขึ้นในสตรีม

 

Mono erroryMono = Mono.error (RuntimeException ใหม่ ("มีบางอย่างผิดพลาด")); โมโนกู้คืนMono = errorMono.onErrorReturn("ค่าเริ่มต้น");

 

การใช้ onErrorResume

 

โอเปอเรเตอร์ onErrorResume ช่วยให้คุณสามารถจัดเตรียมสตรีมทางเลือกเมื่อเกิดข้อผิดพลาด

 

ข้อผิดพลาดโมโนMono = Mono.error (RuntimeException ใหม่ ("ข้อผิดพลาดในสตรีม")); Mono fallbackMono = Mono.just("การตอบสนองทางเลือก"); Mono resumedMono = errorMono.onErrorResume (ข้อผิดพลาด -> fallbackMono);

 

แอปพลิเคชัน Reactor Core ในโลกแห่งความเป็นจริงใน RESTful API

 

Reactor Core สามารถเพิ่มประสิทธิภาพและการตอบสนองของ RESTful API ได้อย่างมากในสถานการณ์จริงต่างๆ

 

สูง - แอปพลิเคชั่นที่มีการรับส่งข้อมูล

 

ในแอปพลิเคชันที่ได้รับคำขอพร้อมกันจำนวนมาก การเขียนโปรแกรมแบบโต้ตอบด้วย Reactor Core สามารถจัดการคำขอเหล่านี้ได้อย่างมีประสิทธิภาพมากขึ้น ตัวอย่างเช่น ในแอปพลิเคชันอีคอมเมิร์ซ เมื่อมีผู้ใช้หลายคนส่งคำขอเพื่อดูรายละเอียดผลิตภัณฑ์พร้อมกัน RESTful API แบบโต้ตอบโดยใช้ Reactor Core สามารถจัดการคำขอเหล่านี้ได้โดยไม่ต้องบล็อกเธรดของเซิร์ฟเวอร์ จึงปรับปรุงปริมาณงานโดยรวม

 

สถาปัตยกรรมไมโครเซอร์วิส

 

ในสถาปัตยกรรมไมโครเซอร์วิส บริการต่างๆ มักจำเป็นต้องสื่อสารกันแบบอะซิงโครนัส Reactor Core สามารถใช้เพื่อสร้าง RESTful API แบบโต้ตอบสำหรับไมโครเซอร์วิสเหล่านี้ ตัวอย่างเช่น บริการผู้ใช้อาจจำเป็นต้องสื่อสารกับบริการสั่งซื้อเพื่อดึงข้อมูลคำสั่งซื้อ ด้วยการใช้ Reactor Core บริการผู้ใช้สามารถสร้างคำขอที่ไม่ปิดกั้นไปยังบริการสั่งซื้อและดำเนินการงานอื่น ๆ ต่อไปในขณะที่รอการตอบกลับ

 

เหตุใดจึงเลือกผลิตภัณฑ์หลักเครื่องปฏิกรณ์ของเรา

 

ในฐานะซัพพลายเออร์แกนเครื่องปฏิกรณ์ที่เชื่อถือได้ เรานำเสนอแกนเครื่องปฏิกรณ์คุณภาพสูงที่ออกแบบมาเพื่อตอบสนองความต้องการที่มีความต้องการมากที่สุด ของเราแกนเครื่องปฏิกรณ์สินค้าผลิตด้วยความแม่นยำและใช้วัสดุที่ทันสมัย ​​เช่นแกนเหล็กเหล็กซิลิคอนซึ่งรับประกันคุณสมบัติทางแม่เหล็กที่ดีเยี่ยมและการสูญเสียพลังงานต่ำ

 

นอกจากนี้เรายังให้การสนับสนุนทางเทคนิคที่ครอบคลุมเพื่อช่วยให้คุณรวมแกนเครื่องปฏิกรณ์ของเราเข้ากับโครงการ RESTful API เชิงโต้ตอบของคุณ ไม่ว่าคุณจะเป็นสตาร์ทอัพที่ต้องการสร้างแอปพลิเคชันที่ปรับขนาดได้หรือองค์กรที่จัดตั้งขึ้นโดยมีเป้าหมายเพื่อปรับปรุงประสิทธิภาพของระบบที่มีอยู่ แกนเครื่องปฏิกรณ์ของเราคือตัวเลือกที่เหมาะสมที่สุด

 

ติดต่อเราเพื่อจัดซื้อจัดจ้าง

 

หากคุณสนใจผลิตภัณฑ์ Reactor Core ของเราและต้องการหารือเกี่ยวกับข้อกำหนดเฉพาะของคุณ เราขอแนะนำให้คุณติดต่อเรา ทีมผู้เชี่ยวชาญของเราพร้อมที่จะช่วยเหลือคุณในการหาทางออกที่ดีที่สุดสำหรับโครงการของคุณ เราเชื่อว่าด้วยแกนเครื่องปฏิกรณ์คุณภาพสูงและความคิดสร้างสรรค์ของคุณ เราสามารถสร้าง RESTful API ที่ตอบสนองประสิทธิภาพสูงร่วมกันได้

 

อ้างอิง

 

  • เอกสารประกอบแกนเครื่องปฏิกรณ์
  •  
  • เอกสาร Spring WebFlux
  •  
  • รูปแบบการเขียนโปรแกรมเชิงโต้ตอบและแนวทางปฏิบัติที่ดีที่สุด

 

ติดต่อได้เลย