เมื่อปรับใช้โซลูชันความพร้อมใช้งานสูงของยูเรก้าบนโฮสต์ Linux ฉันพบว่าบริการ IP ที่ลงทะเบียนกับศูนย์บริการนั้นสุ่ม เนื่องจากมีการ์ดเครือข่ายหลายใบบนโฮสต์ IP แบบสุ่มไม่ใช่สิ่งที่ฉันต้องการ ฉันค้นหาข้อมูลออนไลน์และสรุปดังนี้:
1 เพิกเฉยการ์ดเครือข่าย: spring.cloud.inetutils.ignored-interfaces
#ignore eth0, สนับสนุนการแสดงออกปกติ Spring.cloud.inetutils.ignored-interfaces [0] = eth0
2 ระบุ IP: Spring.cloud.inetutils.preferred-networks
#Preferred-Networks หมายถึงที่อยู่ IP ที่มีแนวโน้มที่จะใช้โดยได้รับอาร์เรย์ของนิพจน์ทั่วไปเพื่อเลือกที่อยู่ IP ของเครื่องเนทีฟที่ใช้โดยแอปพลิเคชันสปริงคลาวด์ Spring.cloud.inetutils.preferredNetworks [0] =^192/.168
3 แก้ไขไฟล์โฮสต์
เมื่อการค้นหาเครือข่ายลอจิกไม่พบ IP ที่เหมาะสมมันจะไปที่ Inetaddress.getLocalhost ของ JDK () วิธีนี้จะส่งคืนชื่อโฮสต์ของโฮสต์ปัจจุบันจากนั้นแยกวิเคราะห์ IP ที่เกี่ยวข้องตามชื่อโฮสต์ ดังนั้นวิธีแก้ปัญหาที่สองคือการกำหนดค่าไฟล์โฮสต์และ /etc /hosts ไฟล์ของเครื่องและแมปชื่อโฮสต์ของเครื่องโดยตรงไปยังที่อยู่ IP ที่ถูกต้อง
4 ระบุ IP อินสแตนซ์
#specify ipeureka.instance.ip-address =#ใช้ IP แทนชื่อโฮสต์ Eureka.Instance.prefer-ip-address = จริงสำหรับการลงทะเบียน
5 ผ่านพารามิเตอร์คำสั่ง JAR
java -jar xxx.jar --spring.cloud.inetutils.premerred -networks = #ที่อยู่ IP ที่จำเป็นต้องตั้งค่าหรือ java -jar xxx.jar ---spring.cloud.inetutils.ignored -interfaces = #การ์ดเครือข่ายที่ต้องการ
มือใหม่ข้างต้นได้ดิ้นรนในช่วงบ่ายและทุกคนมีวิธีที่ดีในการสื่อสารด้วยกัน ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น