รีสตาร์ทเราเตอร์และผู้ประมวลผลข้อความโดยไม่ส่งผลกระทบต่อการรับส่งข้อมูล

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่ เอกสารประกอบของ Apigee X
info

เอกสารนี้อธิบายวิธีรีสตาร์ทเราเตอร์และ Message Processor (MP) โดยไม่ส่งผลกระทบต่อ การรับส่งข้อมูล API ขาเข้า คุณอาจต้องรีสตาร์ทเราเตอร์และ MP ในบางกรณี ตัวอย่างเช่น

  • เมื่อมีการอัปเดตคีย์สโตร์ที่อ้างอิงโดยตรงในโฮสต์เสมือน เซิร์ฟเวอร์เป้าหมาย หรือปลายทางเป้าหมาย โดยไม่ได้ใช้การอ้างอิง
  • เมื่อมีการใช้งานพร็อกซี API บางส่วนใน MP บางรายการ

ก่อนเริ่มต้น

หากคุณไม่คุ้นเคยกับเราเตอร์และ Message Processor โปรดอ่าน ภาพรวมของ Edge for Private Cloud

การรีสตาร์ทเราเตอร์แบบต่อเนื่องโดยไม่ส่งผลกระทบต่อการรับส่งข้อมูล

ส่วนนี้อธิบายขั้นตอนที่ใช้ในการรีสตาร์ทเราเตอร์โดยไม่ส่งผลกระทบต่อการรับส่งข้อมูล API ขาเข้า

  1. เข้าสู่ระบบเราเตอร์ที่ต้องรีสตาร์ท
  2. บล็อกพอร์ตการตรวจสอบประสิทธิภาพการทำงานในเราเตอร์โดยใช้คำสั่งต่อไปนี้ ซึ่งจะทำให้ระบบพิจารณาว่าเราเตอร์ไม่พร้อมใช้งานและจะไม่กำหนดเส้นทางการรับส่งข้อมูลไปยังเราเตอร์นี้
    sudo iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
        
  3. รอ 2 นาทีก่อนที่จะ รีสตาร์ทเราเตอร์เพื่อให้แน่ใจว่าระบบจัดการการรับส่งข้อมูลที่อยู่ระหว่างดำเนินการได้อย่างราบรื่น คุณทำได้โดยเรียกใช้คำสั่ง sleep ดังนี้
    for i in {001..120}; do sleep 1; printf "\r ${i}"; done
        
  4. หยุดบริการ Apigee Monit ดังนี้
    apigee-service apigee-monit stop
        
  5. หยุดบริการเราเตอร์ Apigee ดังนี้
    apigee-service edge-router stop
        
  6. เริ่มบริการเราเตอร์ Apigee ดังนี้
    apigee-service edge-router start
        
  7. รอจนกว่าบริการเราเตอร์ Apigee จะเริ่มทำงานและพร้อมจัดการการรับส่งข้อมูลขาเข้า โดยใช้คำสั่งต่อไปนี้
    apigee-service edge-router wait_for_ready
        
  8. เริ่มบริการ Apigee Monit ดังนี้
    apigee-service apigee-monit start
        
  9. ล้างตาราง IP เพื่อยกเลิกการบล็อกพอร์ตการตรวจสอบประสิทธิภาพการทำงาน 15999 และอนุญาตให้เราเตอร์จัดการ การรับส่งข้อมูลอีกครั้งโดยเรียกใช้คำสั่งต่อไปนี้
    sudo iptables -F
    sudo iptables -L
        
sudo iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
for i in {001..120}; do sleep 1; printf "\r ${i}"; done
apigee-service apigee-monit stop
apigee-service edge-router stop
apigee-service edge-router start
apigee-service edge-router wait_for_ready
apigee-service apigee-monit start
sudo iptables -F
sudo iptables -L

การรีสตาร์ท Message Processor แบบต่อเนื่องโดยไม่ส่งผลกระทบต่อการรับส่งข้อมูล

ส่วนนี้อธิบายขั้นตอนที่ใช้ในการรีสตาร์ท Message Processor (MP) โดยไม่ ส่งผลกระทบต่อการรับส่งข้อมูล API ขาเข้า

  1. เข้าสู่ระบบ Message Processor ที่ต้องรีสตาร์ท
  2. ระบุพอร์ตการตรวจสอบประสิทธิภาพการทำงานของ Message Processor โดยใช้คำสั่งต่อไปนี้
    curl 0:8082/v1/servers/self -s | jq '.tags.property' | jq '.[] | select(.name=="http.port")'
        
  3. บล็อกพอร์ตการตรวจสอบประสิทธิภาพการทำงาน (ระบุไว้ในขั้นตอนที่ 2) ใน Message Processor ซึ่งจะทำให้ระบบพิจารณาว่า Message Processor ไม่พร้อมใช้งานและจะไม่กำหนดเส้นทางการรับส่งข้อมูลไปยัง Message Processor นี้
    sudo iptables -A INPUT -i eth0 -p tcp --dport port # -j REJECT
        

    โดยที่ port # คือหมายเลขพอร์ตที่แสดงผลจากคำสั่งที่ดำเนินการในขั้นตอนที่ 2

  4. รอ 2 นาทีก่อนที่จะ รีสตาร์ท Message Processor เพื่อให้แน่ใจว่าระบบจัดการการรับส่งข้อมูลที่อยู่ระหว่างดำเนินการได้อย่างราบรื่น คุณทำได้โดยเรียกใช้คำสั่ง sleep ดังนี้
    for i in {001..120}; do sleep 1; printf "\r ${i}"; done
        
  5. หยุดบริการ Apigee Monit ดังนี้
    apigee-service apigee-monit stop
        
  6. หยุดบริการ Apigee Message Processor ดังนี้
    apigee-service edge-message-processor stop
        
  7. เริ่มบริการ Apigee Message Processor ดังนี้
    apigee-service edge-message-processor start
        
  8. รอจนกว่าบริการ Apigee Message Processor จะเริ่มทำงานและพร้อมจัดการการรับส่งข้อมูลขาเข้าโดยใช้คำสั่งต่อไปนี้
    apigee-service edge-message-processor wait_for_ready
        
  9. เริ่มบริการ Apigee Monit ดังนี้
    apigee-service apigee-monit start
        
  10. ล้างตาราง IP เพื่อยกเลิกการบล็อกพอร์ตการตรวจสอบประสิทธิภาพการทำงานและอนุญาตให้ Message Processor จัดการการรับส่งข้อมูลอีกครั้งโดยเรียกใช้คำสั่งด้านล่าง
    sudo iptables -F
    sudo iptables -L
        
curl 0:8082/v1/servers/self -s | jq '.tags.property' | jq '.[] | select(.name=="http.port")'

sudo iptables -A INPUT -i eth0 -p tcp --dport port # -j REJECT
for i in {001..120}; do sleep 1; printf "\r ${i}"; done
apigee-service apigee-monit stop
apigee-service edge-message-processor stop
apigee-service edge-message-processor start
apigee-service edge-message-processor wait_for_ready
apigee-service apigee-monit start
sudo iptables -F
sudo iptables -L

โดยที่ port # คือหมายเลขพอร์ตที่แสดงผลจากคำสั่งที่ดำเนินการในขั้นตอนที่ 2