Микросервисы на Scala (Finagle/Finch, бесплатный курс)
Добрый день.
Набираются слушатели на бесплатный короткий курс по проектированию и реализации микросервисов на минимальном Twitter-стеке (Netty, Finagle, Finch, TwitterServer).
.
1. Netty — is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.
2. Finagle — is an extensible RPC system for the JVM, used to construct high-concurrency servers.
3. Finch — is a thin layer of purely functional basic blocks atop of Finagle for building composable HTTP APIs. Finch doesn’t hide the underlying API, but extends it with new abstractions.
4. TwitterServer — defines a template from which servers at Twitter are built. It provides common application components such as an administrative HTTP server, tracing, stats, etc. These features are wired in correctly for use in production at Twitter.
.
Надежные системы гарантируют корректность за счет статических проверок в момент компиляции, которые обеспечивает богатая система типов Scala. Также полезны краткость и ясность (соответствие формы — содержанию) кода. А именно особенно полезны:
— полнокровное функциональное программирование
— перегрузка операторов
.
Однако в современном мире мало успешно написать единичный экземпляр микросервиса — его необходимо поместить в правильное распределенное окружение, которое обеспечит
— Monitoring
— Alerting/visualization
— Distributed systems tracing infrastructure
— Log aggregation/analytics
И все это есть в Scala.
.
Обучение ведется в аудитории в Харькове.
.
Резюме высылайте на [email protected]. В ближайшее время со всеми выславшими резюме мы свяжемся.
.
P.S. Данный курс является вторым в серии Обучаем Scala/FP. БЕСПЛАТНО!.
---
UPDATE #0:
Программа по Netty:
— SEDA архитектура и Netty threading model
— IO, NIO, NIO.2, epoll, Channel/Selector abstractions, Reactor/Proactor patterns
— Netty memory-management module, off-heap memory
— Upstream/Downstream pipeline, EventLoop
— Demo: HTTP 1.1 Server
34 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарівпойду
У меня что-то http стек под скалой вообще никак не идет. Сервис общается с внешними REST API и грузит довольно объемные json (до3-4 мбайт). Так вот, иногда (а когда интернет тупит — довольно часто) мне тупо приходят битые json-ы. Под битыми я подразумеваю отсутствие целого куска по-средине или в конце. То есть приходит 200 OK но контент при этом недогружен.
Я бы еще понял если бы библиотека тупила, но юзал spray, dispatch (по капотом как раз netty использует), akka http — везде одно и то же, ±. Только стандартный source.fromUrl более-менее стабильно работает. Думал что может это просто сервис битые json-ы шлет, переписал все на, прости господи, go (чтобы на реальном проекте его прочувствовать) — работает как по маслу.
Даже не знаю что думать, такое впечатление что jvm под виндой тупит.
абсурд какой то
у jvm под виндой все нормально
Да вот понимаешь что абсурд, так как jvm на бэкэнде это стандарт, но «маємо те що маємо». Надо будет еще снифером проверить, что json из сервера приходит нормальный. Если по сниферу будет нормальный а в программе получу уже битый — придется пинять на jvm.
может настройки tcp подкрутит надо ?
Ну tcp тут точно не причем, это транспортный протокол, даже если он тупит и шлет на верх битые пакеты, задача http это разрулить, а не слать 200 ОК когда оно явно не ОК. Если бы tcp тупил, то сеть у меня вообще лежала бы. Возможно дело в настройках, у той же akka http есть куча настроек и способов отправить-получить запрос (у других библиотек на порядок меньше). Но блин, если для того, чтобы пообщаться с простеньким REST сервисом надо тюнить настройки http стека, то это дичь какая-то.
обычно не надо, как раз то что вы рассказываете дичь сплошная, я такого за 12 лет с жабой не видел )))
Звучит очень интересно
+1 присоединюсь в MoebiusM
+1 присоединюсь в Moebius
пойду
Уже давно inbound/outboud pipeline. Upstream/Downstream остались токо в3-й нетти.
Описка, память подвела.
Цікаво буде послухати ваш курс, ви чудовий лектор
Нужно пойти
очень интересно!
интересно, тоже хочу
С местом уже определились ?
Скорее всего на «Фабрике».
зрада же
Здорово, прийду
EventLoop это конечно `модно`, его еще юзают?
уже HTTP2 есть, когда темы про него пойдут?
радует что микросервисы и Netty будут, иду
— Iteratee
— Rx Observable
— ...
Однако, с точки зрения реализации, внутри (почти всегда) все равно находится цепочка пулов потоков (event loop-ов), которые последовательно выполняют стадии обработки запроса.
UPDATE #0:
Программа по Netty:
— SEDA архитектура и Netty threading model
— IO, NIO, NIO.2, epoll, Channel/Selector abstractions, Reactor/Proactor patterns
— Netty memory-management module, off-heap memory
— Upstream/Downstream pipeline, EventLoop
— Demo: HTTP 1.1 Server
+1
+1
+1
пойду
ВОУУУУУУУ!
Я буду обязательно
А видео запись будет?
Да, мы постараемся.
как твитер стек в жизни к стати? С нетти все понятно, остальное интереснее
Да, присоединяюсь к вопросу. Еще б если кто его сравнил со Spring Cloud стеком, было б интересно послушать — почитать