โปรแกรม NSQ เป็นโปรแกรมที่มีคุณสมบัติแจกจ่ายข้อมูล ถูกทำมาอย่างเรียบง่าย ไม่เน้นความปลอดภัย แต่เน้นประสิทธิภาพและประสิทธิผล มันมีส่วนประกอบ 2-3 ส่วนที่สื่อสารกันอยู่ภายใน ผมเลยไปลองแกะ ๆ ดู ว่าส่วนประกอบภายในมันคุยกันยังไงบ้าง ตามรูป
มันถูกออกแบบมาให้คุยกันเองภายในด้วย TCP และ HTTP ในขณะที่คุยกับโปรแกรมอื่นด้วย HTTP ซึ่งส่วนตัวมองว่ามันไม่ปลอดภัย คือมันควรจะคุยกับโปรแกรมอื่นได้ด้วย HTTPS เผื่อข้อมูลมันเป็นความลับ จะได้ไม่มีใครแทรกแซงขโมยไปดูได้น่ะ
หลักการทำงานก็ไม่มีอะไรมาก
- ผู้แจกข้อมูลหรือ Publisher แจกข้อมูลให้กับโปรแกรม NSQ ด้วยพอร์ต TCP เบอร์ 4151 สื่อสารกันด้วย HTTP Message
- โปรแกรม NSQ ส่งต่อข้อมูลให้กับโปรแกรม NSQLOOKUPD ด้วยพอร์ต TCP เบอร์ 4160 สื่อสารกันด้วย Message ธรรมดา
- ผู้รับข้อมูลหรือ Subscriber รับแจกข้อมูลจากโปรแกรม NSQLOOKUPD ด้วยพอร์ต TCP เบอร์ 4161 สื่อสารกันด้วย HTTP Message โดยจะเป็นฝ่ายเรียกข้อมูลทุก ๆ 1 นาที (Polling ทุก 1 นาที)
- ผู้เฝ้าตรวจสอบใช้เว็บบราวเซอร์ ติดต่อไปยังโปรแกรม NSQADMIN ด้วยพอร์ต TCP เบอร์ 4171 สื่อสารกันด้วย HTTP Message
- โปรแกรม NSQADMIN ติดต่อไปยังโปรแกรม NSQLOOKUPD ด้วยพอร์ต TCP เบอร์ 4161 สื่อสารกันด้วย HTTP Message แล้วเอาข้อมูลที่ได้รับกลับมา ไปป้อนกลับให้ผู้เฝ้าตรวจสอบที่เฝ้าอยู่ที่หน้าจอเว็บบราวเซอร์