LINUX.ORG.RU

Ergo Framework 3.2

 , , , ,


0

2

Фреймворк представляет собой реализацию концепций Erlang для разработки на Go, построенный на модели акторов с сетевой прозрачностью и готовыми компонентами.

Основные возможности в этой версии

  • mTLS — новый интерфейс gen.CertAuthManager для взаимной аутентификации с управлением CA пулами
  • NAT traversal — опции RouteHost и RoutePort для узлов за NAT или балансировщиками
  • Контроль времени запускаInitTimeout ограничивает время инициализации процессов (локально и удаленно)
  • Shutdown timeout — контролируемое завершение узла с логированием зависших процессов
  • pprof labels — каждая горутина актора маркируется PID для отладки через pprof

Новые акторы (Extra Library)

  • Leader — распределенные выборы лидера с консенсусом в стиле Raft. Автоматический failover, защита от split-brain через кворум большинства
  • Metrics — экспортер метрик Prometheus с автоматическим сбором телеметрии узла и сети

Новые мета-процессы

  • SSE (Server-Sent Events) — однонаправленный стриминг сервер-клиент по HTTP с полной поддержкой спецификации SSE

Производительность

  • Локально: 21M+ сообщений/сек
  • По сети: ~5M сообщений/сек
  • Distributed Pub/Sub: 2.9M сообщений/сек доставка 1,000,000 подписчикам на 10 узлах (10 сетевых сообщений вместо 1M)

Исправления

  • Критический баг: сигналы завершения (Link/Monitor exits) некорректно отклонялись из-за неверной валидации incarnation в сетевом слое

Документация

Полностью переписана и включена в репозиторий. Новые статьи:

  • Project Structure — организация проектов с уровнями изоляции сообщений
  • Building a Cluster — пошаговое руководство по распределенным системам
  • Message Versioning — эволюция контрактов сообщений в кластерах
  • Debugging — build tags, pprof, отладка зависших процессов

Ссылки

>>> Список изменений

★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от chemistmail

Мне не нужны деньги, времени просто нет. Разовая акция по переводу =/= поддержание ее в актуальном состоянии.

Самое удивительное, народ с претензией приходит, а не с предложением «давай помогу». Это опенсорс проект. Мне за него не платят.

ergo ★★★
() автор топика
Ответ на: комментарий от Xintrea

Не вижу никакого батхерда, чувак написал код, и написал доку. Проблем с ее прочтением нет никаких. Корректный перевод доки это трудозатраты, а он и так бесплатно работу сделал…. У вас претензия? Может лучше оформите пулреквест с русской докой? Нет? сложно? лень?

Или просто вам кто то что то должен?

chemistmail
()
Ответ на: комментарий от chemistmail

Да я что-то сразу не сообразил посмотреть какие-нибудь сведения о локации человека и прочее. Для меня ergo - просто одиозный персонаж с ЛОРа. Но вот потыкался и увидел пару вещей, которые все ставят на свои места (информация открытая): Тарас Халтурин, Switzerland. Кому нужно, тот все понял.

В любом случае, саму Open Source разработку, которой занимается автор, я всячески поддерживаю. Продолжать не вижу смысла, чтобы дискуссия в танцпол не превратилась.

Xintrea ★★★★★
()
Ответ на: комментарий от Xintrea

Simply English

а вы точно знаете как пишут носители языка?

ripgrep
()
Ответ на: комментарий от ergo

Понимаю проблему. )) Люди как люди, только квартирный вопрос их испортил ))

Забей. Дебилов всегда и везде хватало. Я историю древнего Рима эпизодически почитываю, после нее такое поведение только улыбку вызывает. ))

Хочу потыкать, если в обозримое будующее будет время закину пулреквест со спекой для пакетного менеджера nix на установку твоего хозяйства и окружения erlang с elixir с инструкцией получения рабочего окружения под все это хозяйство

в какую нить папку examples или еще чет подобное? будет тупо файл по которому можно будет сделать фиксированное окружение с конкретными версиями erlang, elixir + golang c твоей либой

вариант на быстро потыкать и посмотреть. Можно в тесты куда нить…

chemistmail
()
Ответ на: комментарий от chemistmail

Нет? сложно? лень?

У меня своих OpenSource разработок навалом, мне есть чем заняться. К тому же я не из мира гошечки и эрланга.

Xintrea ★★★★★
()
Ответ на: комментарий от ergo

форкнул и плюсик добавил, отпиши куда мне лучше код для nix кинуть.

Ну и для поддержки проекта, если надо есть лаба, могу железо выделить. 16 cpu, 24 гига оперативы, 400 ssd и там еще hdd несколько терабайт, но я его не трогал, не помню сколько.

chemistmail
()
Ответ на: комментарий от Xintrea

Ты делаешь большую ошибку, судишь людей по только тебе известным критериям, Форма черепа, фамилия, место жительства, цвет трусов и тд.

Я не буду углубляться в политику, тут ей не место да и причин тут ее поминать нет.

Людей нужно оценивать по делам. А про судить в библии написано.

chemistmail
()
Ответ на: комментарий от chemistmail

Спасибо за предложение. У меня хватает этого гуталина ))). На счет опакечивания (или как правильно?)… в этом нет смысла. Гошный компилятор сам всю магию с зависимостями делает.

Если реально соберетесь с кем-то и скооперируйтесь в плане перевода документации (и важно ее сопровождения) я могу организовать ru.docs.ergo.services для этого

ergo ★★★
() автор топика
Ответ на: комментарий от chemistmail

Если оно опенсорс, то должны быть ссылки? или как?

Вообще-то в профиле стартовая ссылка есть. Но если вы так заинтересованы, что вам лень несколько кликов мышкой сделать, то вот:

https://github.com/xintrea/

https://webhamster.ru/site/page/index/articles/projectcode

Встречный вопрос: если уж на то пошло, покажите и вы свои Open Source проекты. А то на ваш haskell.su ни в каком виде даже через VPN не достучаться: браузер говорит, что HTTPS-версия сайта haskell.su недоступна, а по HTTP «Невозможно подключиться к серверу haskell.su / Время ожидания соединения с haskell.su истекло», а через альтернативный путь «504 Gateway Timeout».

Xintrea ★★★★★
()
Ответ на: комментарий от chemistmail

историю древнего Рима эпизодически почитываю

О, а я не дочитал ее. Очень крутая книга кстати. Автору за нее регалий отсыпали. Он на ее написание много лет потратил

ergo ★★★
() автор топика
Ответ на: комментарий от chemistmail

Ты делаешь большую ошибку, судишь людей по только тебе известным критериям, Форма черепа, фамилия, место жительства, цвет трусов и тд.

Я людей не сужу ни по фамилии, ни по месту, ни по чему-нибудь еще. Прекращай придумывать то, чего я тебе не говорил. Из интересующих меня сведений я могу только делать вывод о том, какие ситуации могут возникать перед человеком, и как они могут на него оказывать влияние, не более того.

Xintrea ★★★★★
()
Ответ на: комментарий от ergo

Я могу оплатить процесс, но времени на организацию этого точно нет. Оно на зарабатывание денег уходит )) У меня в среднем 11-12 проектов постоянно в работе… И еще личная жизнь с детьми собакой и котом ))

Пакетирование, думаю так. Смысл nix в том что все кто развернет по спеке получат строго фиксированное окружение, речь не только по ergo а про ergo + erlang + производные можно тесты взаимодействия делать. Окружение гаранированно воспроизводится.

Собственно у меня есть выделенное время на изучение того чего я не трогал, это около 6 часов в неделю. В рамках этого я хочу посмотреть взаимодействие нод erlang с ergo. Ну и спеку под окружение точно напишу, там минут 10 от силы.

тут как говориться хозяин барин, я себе буду собирать на посмотреть и потестить а там как хочется.

chemistmail
()
Ответ на: комментарий от ergo

Тит Ливий. История древнего Рима. Я ее сам уже третий год читаю…. Там то волосы дыбом, то тупая задумчивость… ))

Я Шекспира за полгода всего осилил, но тут другая тема.

Еще Иллиаду Гомера рекомендую, после первых 20 страниц читается на ура, только потом стихами пару месяцев разговариваешь )) Ну и сцены битв бесподобны….

chemistmail
()
Ответ на: комментарий от ergo
k8s:(haskell)  😀  ~/work/src
➜ ghci
zsh: command not found: ghci
k8s:(haskell)  👿  ~/work/src
➜ cd kosiaka
direnv: loading ~/work/src/kosiaka/.envrc
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels' does not exist, ignoring
direnv: export +AR +AS +CC +CONFIG_SHELL +CXX +DEVELOPER_DIR +FOO +HOST_PATH +IN_NIX_SHELL +LD +LD_DYLD_PATH +MACOSX_DEPLOYMENT_TARGET +NIX_APPLE_SDK_VERSION +NIX_BINTOOLS +NIX_BINTOOLS_WRAPPER_TARGET_HOST_aarch64_apple_darwin +NIX_BUILD_CORES +NIX_BUILD_TOP +NIX_CC +NIX_CC_WRAPPER_TARGET_HOST_aarch64_apple_darwin +NIX_CFLAGS_COMPILE +NIX_DONT_SET_RPATH +NIX_DONT_SET_RPATH_FOR_BUILD +NIX_ENFORCE_NO_NATIVE +NIX_HARDENING_ENABLE +NIX_IGNORE_LD_THROUGH_GCC +NIX_LDFLAGS +NIX_NO_SELF_RPATH +NIX_STORE +NM +OBJCOPY +OBJDUMP +PATH_LOCALE +RANLIB +SDKROOT +SIZE +SOURCE_DATE_EPOCH +STRINGS +STRIP +TEMP +TEMPDIR +TMP +ZERO_AR_DATE +__darwinAllowLocalNetworking +__impureHostDeps +__propagatedImpureHostDeps +__propagatedSandboxProfile +__sandboxProfile +__structuredAttrs +buildInputs +buildPhase +builder +cmakeFlags +configureFlags +depsBuildBuild +depsBuildBuildPropagated +depsBuildTarget +depsBuildTargetPropagated +depsHostHost +depsHostHostPropagated +depsTargetTarget +depsTargetTargetPropagated +doCheck +doInstallCheck +mesonFlags +name +nativeBuildInputs +out +outputs +patches +phases +preferLocalBuild +propagatedBuildInputs +propagatedNativeBuildInputs +shell +shellHook +stdenv +strictDeps +system ~PATH ~TMPDIR
k8s:(haskell)  😀  ~/work/src/kosiaka
➜ ghci
GHCi, version 9.6.6: https://www.haskell.org/ghc/  :? for help
ghci>
Leaving GHCi.
k8s:(haskell)  😀  ~/work/src/kosiaka
➜ cd ..
direnv: unloading
k8s:(haskell)  😀  ~/work/src
➜ ghci
zsh: command not found: ghci
k8s:(haskell)  👿  ~/work/src

пример, у меня на рабочей машине direnv в нем прописанна устновка ghc 9.6 с либами, старый проект нужно попилить под изменчивый мир…. ну и как то так.

chemistmail
()
Ответ на: комментарий от Xintrea

haskell.su указывает на белый ip моей старой квартиры, я дом построил, квартира осталась, но интернет я отключил.

Собственно это личный служебный домен. Почта и тд, различные ресуры которые нужны мне лично. Они в общем не публичные.

https://github.com/chemist

Я не программист. Для меня написание кода это в основном хобби. Мой код эпизодически появляется в проде, но это редко.

Моя вилка остаться в теме чем я занимался или уйти в разработку была 10 лет назад, я выбрал остаться, вопрос денег.

Программирование все также остается моим хобби, могу тупо убить выходные на экзотерические языки )) Ну типа на Форт ченить накидать )) Разминка ума.

Я очень давно не писал, а то что писал и пишу не публично. Но как бы ради бога, смотрите ругайте ))

chemistmail
()
Ответ на: комментарий от Xintrea

Я посмотрел твой код.

посмотрел видео в ютюбе где ты рассказываешь зачем оно и почему. Это твое хобби. Ты молодец. Но между нами пропасть в мировоззрении. Я этим на хлеб с маслом зарабатываю последние 28 лет….. А ты чешешь свое самолюбие. Мы не поймем друг друга.

Ты ориентируешься на я так вижу, я ориентируюсь на желания заказчиков которые мне платят деньги. Ты пишешь менеджер заметок, я делаю сервисы которыми ежедневно пользуются миллионы людей. Для тебя мои темы это какая то фигня, для меня твои темы это какой то детский сад.

Но ты крут, на пустом энтузиазме разобраться в плюсах даже на уровне рисования интерфейса это реально круто.

Но у нас с тобой разные решаемые вопросы. И разные степени абстракции.

Я простой тупой профессионал который работает за деньги, и который понимает что происходит в момент нажатия человеком ссылки, и всей последовательности включая и код и физику. Ты любитель, который научился рисовать простую форму.

Но ты все равно крут.

chemistmail
()
Ответ на: комментарий от Xintrea

Если честно я тебе даже завидую… Я очень давно не вижу в этом вообще никакой магии. Для меня это тупо трудозатраты…..

chemistmail
()
Ответ на: комментарий от chemistmail

Тит Ливий. История древнего Рима. Я ее сам уже третий год читаю….

Спасибо за «наводку», почитаю. :)

P. S. «Улыбнул» комментарий к комментарию на «Флибусте»:

" Это Ливий-то нудный? Это ты, пацанчик, ещё Пастернака не читал. А по сравнению с Солженицыным Ливий вообще педантичный хохотунчик."

Somebody ★★★★
()
Ответ на: комментарий от ergo

Самое удивительное, народ с претензией приходит, а не с предложением «давай помогу». Это опенсорс проект. Мне за него не платят.

Всё так, если бы ты сидел в своей Швейцарии и помалкивал о своём проекте тут. Если же ты приходишь продвигать свой проект среди русскоговорящих людей, то перевести документацию на русский язык необходимо.

Enthusiast ★★★★
()
Ответ на: комментарий от Enthusiast

Автор понимает, что пользоваться либой будут исключительно программисты которые привыкли к документации на английском. Для кого стараться с выпуском на русском языке?

Lusine
()
Ответ на: комментарий от Lusine

Для кого стараться с выпуском на русском языке?

Для плохо образованных «погромистов», иностранных языков не знающих вовсе, и даже свой, родной, казалось бы, язык знающих даже не на уровне «читаю и перевожу со словарём», а на уровне «читаю и ни черта не понимаю»?.. ;))

Somebody ★★★★
()
Ответ на: комментарий от Enthusiast

Вы всё правильно говорите (как и остальные радетили великого и могучего), только для получения результата нужны не комментарии на лоре, а PRs в репозитарии проекта.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

«радетели». Проверочное слово «радЕть». И читать все-таки надо больше.

Lusine
()
Ответ на: комментарий от kaldeon

@token_polyak, тебе ещё никто не говорил, что заменяя сообщения клоунами, ты ведёшь себя как тупой?

kaldeon
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.