غیرفعال کردن قابلیت دسترسی در سرور در حین نگهداری، مانند راه اندازی مجدد یا ارتقاء سرور، تمرین خوبی است. وقتی قابلیت دسترسی غیرفعال است، هیچ ترافیکی به سمت سرور هدایت نمی شود. به عنوان مثال، وقتی قابلیت دسترسی در یک پردازشگر پیام غیرفعال است، روترها هیچ ترافیکی را به سمت آن پردازشگر پیام هدایت نمی کنند.
به عنوان مثال، برای ارتقاء یک پردازشگر پیام، می توانید از روش زیر استفاده کنید:
- قابلیت دسترسی را در پردازشگر پیام غیرفعال کنید.
- پردازشگر پیام را ارتقا دهید.
- قابلیت دسترسی را در پردازشگر پیام فعال کنید.
غیرفعال کردن/فعال کردن قابلیت دسترسی در یک پردازشگر پیام
برای غیرفعال کردن قابلیت دسترسی در پردازشگر پیام، فقط می توانید پردازشگر پیام را متوقف کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor stop
پردازشگر پیام ابتدا پیام های معلق را قبل از خاموش شدن پردازش می کند. هر درخواست جدید به دیگر پردازشگرهای پیام موجود هدایت می شود.
برای راه اندازی مجدد پردازشگر پیام، از دستورات زیر استفاده کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor start
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
دستور wait_for_ready
زمانی که پردازشگر پیام برای پردازش پیامها آماده است، پیام زیر را برمیگرداند:
Checking if message-processor is up: message-processor is up.
غیرفعال کردن/فعال کردن قابلیت دسترسی در روتر
در یک محیط تولید، شما معمولاً یک بار متعادل کننده در جلوی Edge Routers دارید. متعادل کننده بار پورت 15999 را روی روترها نظارت می کند تا مطمئن شود که مسیر در دسترس است.
متعادل کننده بار را برای انجام بررسی سلامت HTTP یا TCP روی روتر با استفاده از URL زیر پیکربندی کنید:
http://router_IP:15999/v1/servers/self/reachable
اگر روتر قابل دسترسی باشد، این URL کد پاسخ HTTP 200 را برمی گرداند.
برای غیرقابل دسترس کردن روتر، می توانید پورت 15999 روتر را مسدود کنید. اگر متعادل کننده بار نتواند به روتر در پورت 15999 دسترسی پیدا کند، دیگر درخواست ها را به روتر ارسال نمی کند. به عنوان مثال، می توانید با استفاده از دستور iptables زیر در گره روتر، پورت را مسدود کنید:
sudo iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
برای اینکه بعداً روتر را در دسترس قرار دهید، iptables را فلاش کنید:
sudo iptables -F
ممکن است از iptables برای مدیریت پورت های دیگر روی گره استفاده کنید، بنابراین باید هنگام شستشوی iptables یا استفاده از iptables برای مسدود کردن پورت 15999، آن را در نظر بگیرید. اگر از iptables برای قوانین دیگر استفاده می کنید، می توانید از گزینه -D برای معکوس کردن استفاده کنید. تغییر خاص:
sudo iptables -D INPUT -i eth0 -p tcp --dport 15999 -j REJECT
بررسی سلامت روتر را انجام دهید
شما می توانید انواع زیر را بررسی های بهداشتی روی روترها انجام دهید:
- Liveness: سیگنالی به زیرسیستم مانیتورینگ مبنی بر اینکه می تواند یک جزء را مجددا راه اندازی کند. به عنوان مثال:
To check a router's liveness: http://router_IP:8081/v1/servers/self/up To check a load balancer's liveness: http://router_IP:15999/v1/servers/self/reachable
- آماده بودن: تعیین می کند که آیا روتر می تواند درخواست های مشتری را برای یک محیط خاص پردازش کند.
به عنوان مثال:
To check both a router and MP pool's availability: http://router_IP:15999/{org}__{env}
برای دریافت وضعیت روتر، درخواست پورت 8081 روی روتر را بدهید:
curl -v http://router_IP:8081/v1/servers/self/up
اگر روتر فعال باشد، درخواست در پاسخ و HTTP 200 "true" را برمیگرداند. توجه داشته باشید که این تماس فقط بررسی میکند که آیا روتر فعال است یا خیر. کنترل دسترسی روتر از یک متعادل کننده بار توسط پورت 15999 تعیین می شود.
برای دریافت وضعیت یک پردازشگر پیام:
curl http://Message_Processor_IP:8082/v1/servers/self/up