ฉันทำงานในสถานที่ที่แต่ละแอปพลิเคชันภายในของเราทำงานบนอินสแตนซ์ Tomcat แต่ละตัวและใช้พอร์ต TCP เฉพาะ ช่วงพอร์ต IANA ที่ดีที่สุดที่จะใช้สำหรับแอปเหล่านี้คืออะไรเพื่อหลีกเลี่ยงการชนกันของหมายเลขพอร์ตกับกระบวนการอื่น ๆ บนเซิร์ฟเวอร์
จากhttp://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xmlนี่คือตัวเลือกที่ฉันเห็นในปัจจุบัน:
- พอร์ตระบบ (0-1023): ฉันไม่ต้องการใช้พอร์ตใด ๆ เหล่านี้เนื่องจากเซิร์ฟเวอร์อาจใช้บริการบนพอร์ตมาตรฐานในช่วงนี้
- พอร์ตผู้ใช้ (1024-49151): เนื่องจากแอปพลิเคชันอยู่ภายในฉันไม่ได้ตั้งใจที่จะขอให้ IANA จองหมายเลขสำหรับแอปพลิเคชันใด ๆ ของเรา อย่างไรก็ตามฉันต้องการลดความเป็นไปได้ที่กระบวนการอื่นจะใช้พอร์ตเดียวกันเช่น Oracle Net Listener ในปี 1521
- ไดนามิกและ / หรือพอร์ตส่วนตัว (49152-65535): ช่วงนี้เหมาะสำหรับหมายเลขพอร์ตที่กำหนดเอง สิ่งเดียวที่ฉันกังวลคือหากสิ่งนี้เกิดขึ้น:
ก. ฉันกำหนดค่าหนึ่งในแอปพลิเคชันของฉันให้ใช้พอร์ต X
b แอปพลิเคชันจะหยุดทำงานสักครู่หรือหลายชั่วโมง (ขึ้นอยู่กับลักษณะของแอป) ปล่อยให้พอร์ตไม่ได้ใช้งานสักครู่
c. ระบบปฏิบัติการจะจัดสรรหมายเลขพอร์ต X ให้กับกระบวนการอื่นเช่นเมื่อกระบวนการนั้นทำหน้าที่เป็นไคลเอนต์ที่ต้องการการเชื่อมต่อ TCP ไปยังเซิร์ฟเวอร์อื่น สิ่งนี้ประสบความสำเร็จเนื่องจากอยู่ในช่วงไดนามิกและขณะนี้ X ไม่ได้ใช้งานเท่าที่ระบบปฏิบัติการเกี่ยวข้องและ
d แอปไม่สามารถเริ่มทำงานได้เนื่องจากมีการใช้งานพอร์ต X อยู่แล้ว