TGViewer
Rust Rust @rust_code · 8.95K subscribers
Post #1446 1.85K

Forwarded from Golang

🦀 1,8 млн ошибок из-за одного пробела: как разработчик собирал Kubernetes Ingress на Rust и Go

Автор Silex разделил систему на две части:

• Go-контроллер наблюдает за Ingress и EndpointSlice, отслеживая маршруты и адреса бэкендов.
• Rust-движок на Tokio принимает трафик и ищет маршруты в конкурентной таблице DashMap.

Обработка запросов отделена от взаимодействия с Kubernetes API.

Первый нагрузочный тест выглядел обнадёживающе только по счётчику соединений: движок принимал около 55 тысяч в секунду, но не отдавал успешных ответов.

Причина оказалась в разборе конфигурации. Вместо JSON-парсера код искал точную подстроку:


Ожидал: "host":"silex.local"
Получил: "host": "silex.local"


Допустимый в JSON пробел ломал поиск. Обработчик молча завершался и закрывал TCP-соединение. Итог: 1,8 млн ошибок чтения.

После исправления автор сравнил Silex с NGINX Ingress: K3s, HTTP echo-бэкенд, wrk, 400 соединений, 4 потока, 30 секунд.

Silex: 2536 запросов/с. NGINX: 2274. Разница: +11,5%.

Но максимальная задержка у обоих была около двух секунд, таймауты тоже остались. У Silex их даже больше: 302 против 286. По объяснению автора, нагрузка упёрлась в Node.js-бэкенд.

На момент статьи TLS-терминация, активные проверки бэкендов и Prometheus-метрики ещё были в планах.

Самое ценное здесь: увидеть, как устроен небольшой ingress, где ломается взаимодействие компонентов и почему throughput нужно читать вместе с ошибками и задержками.

https://dev.to/sysalchemist/how-i-built-a-custom-kubernetes-ingress-in-rustgo-that-outperforms-nginx-by-11-4iag

@Golang_google
  • 👍 8
  • 🖕 3
  • 🔥 1
  • 🥰 1
  • 😁 1
More from @rust_code
  1. Oct 15, 2026🦀 Кто должен доказывать корректность реализации трейта в Rust: сама реализация или код, к…
  2. Oct 14, 2026🦀 В Rust нашли баг, который 11 лет обходил гарантии безопасности памяти. Ошибка позволяет…
  3. Oct 13, 2026👣 Campfire переписали на Rust, почти без ручного Rust. DHH пишет, что сегодня уже гоняет…
  4. Oct 12, 2026🍃 Добавить реплику MongoDB, не копируя всю базу: что меняет Atlas Infinite В привычной ар…
  5. Oct 11, 2026🦀 Что удивляет в C, если первым языком был Rust? Обычно разработчики переходят от C к Rus…
  6. Oct 10, 2026photo post
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →