ว่าง ๆ มาลองเล่น Spring Cloud Gateway กันหน่อย
สายเขียน code เพื่อสร้าง API Gateway กันเองน่าจะชอบ
ซึ่งก่อนหน้านี้คือ Zuul สร้างจาก Netflix
ส่วนตอนนี้ใน Spring Cloud น่าจะเริ่ม migrate project ต่าง ๆ จาก Netflix มากันแล้ว
เนื่องจากเป็น roadmap ที่วางกันไว้นั่นเอง มาเริ่มกันเลย

การทำงานของ Spring Cloud Gateway 

แสดงดังรูป

สังเกตว่ามีส่วนของ filter เอาไว้ทำการกรอง
หรือใส่เงื่อนไขต่าง ๆ ของแต่ละ request ที่ส่งเข้ามา
ก่อนที่จะส่งไปยัง service ปลายทาง

มาลองใช้งานกันหน่อย

โดยทางทีม spring เขียนอธิบายไว้ที่ Blog :: Getting start
สิ่งที่สำคัญคือ 
จำเป็นต้องเขียน code เพื่อเพิ่ม routing และ filter ต่าง ๆ ที่ต้องการเอง !!

คำอธิบาย
ทำการ mapping path /get ไปยัง http://httpbin.org:80
ส่วนของ filter จะเพิ่มข้อมูลใน HTTP Header
ซึ่งใช้งานง่ายกว่า Zuul เยอะเลย !!

แต่ถ้าใครใช้งาน API Gateway หรือ API management แบบ configuration มา
อาจจะไม่ค่อยชอบเท่าไรนะ
แต่ก็เป็นอีกแนวทางหนึ่งของสาย Java หรือ Spring Cloud

อย่าเอาไปเทียบ performance กับ Nginx, Kong, Kragken, Tyk และ LinkreD นะ

เพราะว่ามันต่ำเตี้ยเรี่ยดินมาก ๆ แม้แต่ใน Github Issue ของมันก็ยังมีคนถาม
แต่ได้ข่าวว่า version ล่าสุดได้ปรับปรุงให้ดีขึ้นด้วยนะ 
ด้วยเพราะพลังของ Netty นั่นเอง !!

ลองไปดูเมื่อปีที่แล้ว ก็มีคนทำ performance test ไว้นะ
ซึ่งยังเป็น Spring Cloud Gateway ตัวเก่า

สาย JVM ก็ลองเล่นและทดสอบกันดูครับ ไหน ๆ ก็ออกมาให้ใช้กันแล้ว