diff options
author | robot-piglet <robot-piglet@yandex-team.com> | 2023-04-21 12:28:54 +0300 |
---|---|---|
committer | robot-piglet <robot-piglet@yandex-team.com> | 2023-04-21 12:28:54 +0300 |
commit | 9ee06352e3ca85c021cb643d0c7ff220225c120a (patch) | |
tree | ac2c4169ae9a9e031c03e3ebe51c6187b3fbdd0f /library/cpp | |
parent | a08e0a5833f8ed85b8239f229bac8cf72ce558a6 (diff) | |
download | ydb-9ee06352e3ca85c021cb643d0c7ff220225c120a.tar.gz |
Intermediate changes
Diffstat (limited to 'library/cpp')
-rw-r--r-- | library/cpp/actors/README.md | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/library/cpp/actors/README.md b/library/cpp/actors/README.md index abbf5cd2134..22502c391ae 100644 --- a/library/cpp/actors/README.md +++ b/library/cpp/actors/README.md @@ -17,7 +17,7 @@ В более хайповых терминах – очень похоже на колокейтед микросервисы, только уровнем ниже. И да, мы заведомо не хотели прятать асинхронщину и параллелизм от разработчика, показывая прям самое мясо. ### IActor. -https://a.yandex-team.ru/arc/trunk/arcadia/library/actors/core/actor.h?rev=5315854#L105 +https://a.yandex-team.ru/arcadia/library/cpp/actors/core/actor.h?rev=r11291267#L310 Базовый класс всех агентов, напрямую обычно не используется. Инстанцируется либо TActor, либо TActorBootstrapped. Фактически весь полезный код программы размещается в акторах. (важное замечание – в коде увидите ручки с TActorContext и без него, схожие по названию и назначению. На данный момент вариант с TActorContext является устаревшим, новый код стоит писать без его использования). Важные методы: @@ -103,5 +103,5 @@ cFunc – макрос выбора хендлера, не передающий Мультиплексировать разные потоки (ака каналы) в рамках одного соединения, гарантируя порядок в рамках канала Старается делать это хорошо. В рамках распределённой системы требуется каждой локальной акторсистеме назначить уникальный номер (например табличкой или реализовав динамическую раздачу номеров ноды) и запустить в рамках каждой локальной акторсистемы локальный неймсервис (например по табличке ремапинга номера ноды в сетевой адрес либо как кеш опорного неймсервиса). -Смотрим на второй пример https://a.yandex-team.ru/arc/trunk/arcadia/library/actors/examples/02_discovery +Смотрим на второй пример https://a.yandex-team.ru/arcadia/library/cpp/actors/examples/02_discovery Тут у нас конфигурируется распределённая акторсистема (в примере все пять запускаются в одном бинарнике, но точно так же – можно запускать и частями) на пять нод. На каждой ноде запускается реплика для паблишинга строчек и актор-эндпоинт (каждый со своим портом). Эндпоинты с помощью актора-паблишера публикуют свои явки/пароли на распределённый сторадж (с обработкой нештатных ситауций и поддержанием в актуальном состоянии). И рядом лежит реализация запроса к стораджу на листинг опубликованого по мажорити. Собственно это упрощённый и почищенный от специфики код, используемый в YDB для публикации и нахождения актуальных эндпоинтов пользовательской базы. |