پرش به مطلب اصلی

ConnectionFisherClient

ConnectionFisherClient برای هر line ورودی چند اتصال خروجی همزمان به سمت next می‌سازد، روی هرکدام یک probe پنج‌بایتی می‌فرستد و اولین اتصالی را که پاسخ معتبر از ConnectionFisherServer بگیرد نگه می‌دارد.

چه زمانی استفاده شود؟

وقتی مسیر خروجی ناپایدار است یا می‌خواهید چند تلاش همزمان انجام شود و سریع‌ترین/سالم‌ترین مسیر انتخاب شود. این نود باید در سمت مقابل با ConnectionFisherServer استفاده شود.

TcpListener -> ConnectionFisherClient -> TcpConnector
TcpListener -> ConnectionFisherServer -> TcpConnector

نمونه تنظیم

{
"name": "fisher-client",
"type": "ConnectionFisherClient",
"settings": {
"simultaneous-tries-perline": 3
},
"next": "tcp-out"
}

تنظیمات

گزینهپیش‌فرضتوضیح
simultaneous-tries-perline2تعداد child lineهایی که برای هر line اصلی ساخته می‌شود.

رفتار مهم

  • probe سمت کلاینت FISH? و پاسخ سمت سرور FISH! است.
  • payload تا زمان انتخاب winner در صف نگه داشته می‌شود.
  • اگر هیچ child line معتبری تا حدود 5000ms انتخاب نشود، line اصلی بسته می‌شود.
  • بعد از انتخاب winner، اتصال‌های اضافه بسته می‌شوند و payloadهای صف‌شده به ترتیب روی winner ارسال می‌شوند.