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

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

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

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

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

หากคุณไม่คุ้นเคยกับเราเตอร์และโปรแกรมประมวลผลข้อความ โปรดอ่าน ภาพรวมของ 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

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

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

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

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

  4. รอ 2 นาทีเพื่อให้แน่ใจว่าการจราจรบนเที่ยวบินได้รับการจัดการอย่างราบรื่นก่อนที่คุณจะดำเนินการ รีสตาร์ทโปรแกรมประมวลผลข้อความ ซึ่งทำได้โดยการเรียกใช้คำสั่ง sleep ดังนี้
    for i in {001..120}; do sleep 1; printf "\r ${i}"; done
        
  5. หยุดบริการ Apigee Monit ดังนี้
    apigee-service apigee-monit stop
        
  6. หยุดบริการตัวประมวลผลข้อความ Apigee ดังนี้
    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