by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Sep 03 08:21
    normenmueller closed #42
  • Aug 23 19:54
    normenmueller opened #42
  • Aug 21 12:44
  • Aug 21 11:49
    ihostage closed #13
  • Aug 21 11:48
    ihostage labeled #13
  • Aug 21 11:47
    ihostage milestoned #13
  • Aug 20 21:10
    atyutin90 synchronize #13
  • Aug 20 16:17
    ihostage edited #13
  • Aug 20 08:49
    atyutin90 opened #13
  • Jul 16 16:40
    Travis taymyr/lagom-openapi (v1.2.0) passed (144)
  • Jul 14 17:51
    ihostage closed #41
  • Jul 14 17:51
    ihostage closed #40
  • Jul 14 17:39
    ihostage demilestoned #38
  • Jul 14 17:39
    ihostage milestoned #38
  • Jul 14 17:37
    ihostage milestoned #40
  • Jul 14 17:37
    ihostage labeled #40
  • Jul 14 17:35
    ihostage edited #41
  • Jul 14 17:29
    stankevichevg review_requested #41
  • Jul 14 17:29
    stankevichevg opened #41
  • Jul 14 16:12
    nikhilaroratgo opened #40
Sergey Morgunov
@ihostage
Вроде даже в платной Telemetry нету трейсинга для Java DSL. Собственно вот и у Kamon’а тоже только Scala и её контексты поддерживаются
lagom-extensions
@lagom-extensions
можно вот сюда еще глянуть
http://kamon-io.github.io/kanela/
vasiliy-komarov
@vasiliy-komarov
@ihostage Да, спасибо) Заметил, правда в моем случае я просто разделил их через ; и распарсил каждую. Спасибо за вариант, попробую =)
Alexandr
@reactivemaster
Кто-нибудь использует Postgres вместо Кассандры для persistent entities?
Sergey Morgunov
@ihostage
Привет, Саш! Мы не практиковали. Сыкотно как-то Even Sourcing на JDBC натравливать. Хотя с другой стороны почему бы и нет, если будет работать :smile:
Если поделишься опытом тут, будет здорово. У тебя сейчас проблемы с партиционированием таблички, в которую сыпятся команды PE? Видел просто твой вопрос в общем канале.
Вообще в общем канале очень редко всплывает JDBC на Write Side для PE. Видимо большинство всё-таки использует какие-то NoSQL варианты. В репо с рецептами например сейчас есть WIP ПР по работе с Couchbase. Дима @lagom-extensions вон интеграцию с DynamoDB пилит :smile:
Alexandr
@reactivemaster
Просто с другой стороны сыкотно в прод брать Кассандру, которую никто глубоко не знает
Мой вопрос в чате лагома про шардирование. В Кассандре то это из коробки
Sergey Morgunov
@ihostage
Я признаться вообще не помню, чтобы реляционки умели шардиться. Максимум реплицироваться под рид-онли операции, но при этом нужно явно привязывать клиентов к мастеру для записи или репликам на чтение. А так чтобы мастер кластеризлвать и зашардить... но я конечно мог что-то пропустить и сейчас тот же Постгре научился :smile: Если даш ссылку с пруфом, с удовольствием почитаю
Alexandr
@reactivemaster
Раньше реляционки шардили прямо в коде приложения. Например, есть 10 экземпляров БД - когда делаем вставку, на основе какого-то столбца определяем, в какую из БД делать insert
Sergey Morgunov
@ihostage
Понял тебя. По сути та же схема, как с read-only репликами, когда ты самостоятельно на уровне клиента определяешь. Не уверен, что где-то есть уже что-то готовое для такого взаимодейтвия. Хотя точно знаю, что в Play можно несколько баз указать и тогда нужно будет попробовать кастомизировать выбор пула в завивимости от идентификатора PE. Но не думаю, что это будет очень уж просто сделать.
Alexandr
@reactivemaster
Тут нужно не просто что-то готовое, а чтобы Lagom это делал внутри себя при создании очередного persistent entity
По-моему, просто никто не заморачивался с этим
Sergey Morgunov
@ihostage
Я более чем уверен, что никто :smile:
Можно попробовать improvement issue завести и рассписать хотелку. Послушать что мейнтейнеры на это скажут.
Alexandr
@reactivemaster
Мне кажется, проще Кассандру изучить, чем ждать, пока это сделают
Sergey Morgunov
@ihostage
Не, что они это сделают ждать точно не нужно. Только если сам сделаешь и они примут этот PullRequest.
Хотя если купить подписку на Enterprise и проплатить этот issue, может и прокатит ))) Но с большей вероятностью в рамках платной подписки они просто расскажут про Cassandra и настоят на том, чтобы её завести :)
Ilya Korshunov
@pjandro
@ihostage каким образом можно использовать метод authorize, при этом передав в параметры авторизатор, которые данные берет из тела запроса.
Например у нас в теле запроса идет айдишник компании, и нам надо проверить, что пользователь может принадлежать этой компании. Но вот получаем дату мы уже после вызова authorize, а как это сделать до?
Sergey Morgunov
@ihostage
Если нужно что-то получить из тела, но я не вижу никакого другого выхода, как затащить эту логику внутрь ServiceCall'а
Т.е. авторизационная логика будет уже внутри тела где-то рядом с функциями валидации входящего запроса
Sergey Morgunov
@ihostage
Разве что эта функция скорее всего будет частью цепочки future’ов и из неё может вылетать Forbidden исключение
Sergey Morgunov
@ihostage
@pjandro @stankevichevg Посмотрите ПР taymyr/lagom-elasticsearch-client-java#20
Там немного API меняется.
Ilya Korshunov
@pjandro
Этот ПР ничего не сломал, а вот 22 сломал:)
Sergey Morgunov
@ihostage
@/all Вышла версия 0.1.0 (release notes) библиотеки lagom-extensions. :tada:
  • Наконец-то соорудили README
  • Сборку переписали на Gradle Kotlin DSL
  • Тесты переписали на Java
  • Реализовали простого продюсера для Kafka (спасибо @lynxpluto :+1:)
Evgenii Stankevich
@stankevichevg
💪
Sergey Morgunov
@ihostage
@/all Вышел релиз 1.0.0 библиотеки lagom-soap-client. :tada:
Подробности в README.
Основные функции библиотеки:
  • Удобство вызова внешних сервисов по SOAP протоколу
  • Использование предохранителей
Sergey Morgunov
@ihostage
@/all Выпустили второй milestone 1.0.0-M2 библиотеки lagom-elasticsearch-client. :tada:
Подробности в Release Notes
Основные функции библиотеки:
  • Возможность типизированных коммуникаций с ElasticSearch
  • Использование предохранителей
Sergey Morgunov
@ihostage
Ну чтож, и такое тоже бывает config4k/config4k#73
Это OpenSource. Не всё же коту масленица :joy:
Sergey Morgunov
@ihostage
@/all Вышел релиз 1.0.0 модуля Lagom OpenAPI :tada:
Теперь в нём есть генерация спецификации по аннотациям. :dancer:
Всю информацию вы найдёте в README.
Также создали демки по использованию в репозитории Lagom Samples
ApRoland
@ApRoland
Добрый день, уважаемые lagom-щики, не подскажите чайнику как убрать RestCallId Exceptions из логов для 400-x ошибок клиентов? Допустим есть исключение с неверным паролем при логине в коде, наружу выдется соответствующая ошибка, цель - по крайней мере изменить уровень логирования на WARN для такой ошибки, при этом оставить ERROR для остальных RestCallId исключений. Ошибка выводится в лог до обработки в Serializer.
Sergey Morgunov
@ihostage
Добрый! Не совсем понял, речь идёт о логе на стороне клиента или на стороне сервиса?
ApRoland
@ApRoland
логирование на стороне сервера
стандартный вывод RestCallId execption в логе
Sergey Morgunov
@ihostage
Можешь пример лога скинуть? Exception in … который из ScaladslServiceRouter летит?
ApRoland
@ApRoland
да он, like Exception in RestCallId{method=POST, pathPattern='/services/user/chk_session'}
Sergey Morgunov
@ihostage
@yakovlevdmv На досуге по мере возможностей занимается этой темой :smile: lagom/lagom#2251
Если я правильно понял, то это оно. И на настоящий момент к сожалению это нельзя никак настроить на уровне самого Lagom. Но если прям очень нужно, можешь попробовать написать какой-нибудь regexp фильтр на уровне Logback’а, который не будет такие сообщения пропускать.
ApRoland
@ApRoland
печаль, примерно такой ответ и ожидал, спасибо
Sergey Morgunov
@ihostage
Да, нам тоже это мешает в некоторых местах, поэтому Дима и инициировал этот PR. У Core Team Lagom эта задача в ближайшее время точно в приоретете не будет, так что лучший вариант это самим им помочь :smile:
ApRoland
@ApRoland
понятно, мешает изрядно, тк логируем дневные ошибки только одного уровня; на одну ошибку выпадали три стекрейса, один наш в Serializer нужного уровня последним, и два до него - от lagom и от akka actors по дефолтной стратегии, со вторым стратегию переопределили и все ок, с lagom же удивился что нет способа из коробки.
Sergey Morgunov
@ihostage
Ну можно конечно полностью заглушить этот класс, но это точно не то, что нужно
ApRoland
@ApRoland
угу. слепыми котятами не хочется быть)
yakovlevdmv
@yakovlevdmv

Привет
Да, в lagom не предусмотрена возможность переопределить стандартное логгирование ошибок. Логика захардкожена в ServicerRouter.scala в функции logException.
На данный момент как раз занимаюсь исправлением этой оплошности :)

Пытаюсь реализовать функционал через HttpErrorHandler интерфейс.

@ApRoland На данный момент единственный вариант - заглушить стандартные логи и реализовать нужную логику в своем приложении. Имя для стандартных логов определяется по имени дескриптора descriptorName(descriptor)
ApRoland
@ApRoland
спасибо за feedback, поясните плиз, как имя дескриптора влияет если все же заглушить понадобится
yakovlevdmv
@yakovlevdmv
Стандартный логгер для RestCallId Exceptions (и остальных NamedCallId и PathCallId) определяется так def log = Logger(descriptorName(descriptor)). И такое имя больше нигде не используется. Так что, как мне кажется, можно понизить его уровень либо просто отключить его.
ApRoland
@ApRoland
а, теперь понятно. ok.
Sergey Morgunov
@ihostage
@/all Выпустили очередной milestone 1.0.0-M6 Lagom клиента к Elasticsearch :tada:
Подробности в Release Notes