Описание коллекции на GitHub: https://github.com/Nyquest/anar
Мотивация При создании информационных систем с микросервисной архитектурой, желательно, чтобы аутентификация и авторизация пользователей была без сессии (без хранения состояния). Использование JWT-токенов — неплохое решение. Токен может содержать имя пользователя, различные сведения о нем, в т.ч. числе его права и полномочия. Но есть один неприятный момент. Если в нашей системе очень много прав, например, несколько
Читать далее…
В предыдущей статье был рассмотрен расчет оптимальных параметров фильтра Блума и его реализация. Со статьей можно ознакомиться здесь: Фильтр Блума Для оценки эффективности будем рассматривать сколько оперативной памяти потребляют различные структуры данных в Java 11. Для примера будем размещать в памяти информацию о 20 миллионах ИИН и делать наблюдения через VisualVM. ИИН представляет собой строку
Читать далее…
Давно хотелось попробовать реализовать фильтр Блума (хотя я его называют фильтром Блюма). Фильтр Блума — это вероятностная структура данных, позволяющая проверить принадлежность элемента к множеству. Данная структура может точно ответить на запрос об отсутствии элемента в множестве, но может ошибаться с заданной нами вероятностью о наличии элемента во множестве. В некоторых задачах фильтр Блума очень
Читать далее…
1-го марта решил купил себе Apple MacBook Pro 16 MK1E3, пока курс доллара сильно не поднялся. Знаю, что есть трудности с установкой приграмм из-за M1 В этом блоге буду перечислять все, что устанавливал и какие проблемы были. Приложения устанавливал в описанной ниже последовательности. Установка Firefox с официального сайта без проблем. Установка Google Chrome с официального
Читать далее…
Предположим, что мы используем для сбора логов стек ELK (Elasticsearch-Logstash-Kibana). Логи приложений можно собирать как в один индекс, так и отдельные индексы для каждого из приложений. В этом блоге рассмотрим маршрутизацию записей логов в разные индексы. Для доставки файлов в Logstash будем использовать Filebeat Рассмотрим пример маркирования логов системной утилитой auditd маркером «auditd: true» и
Читать далее…
Несколько лет назад по требованию технического задания необходимо было сделать аудит базы данных. База данных была на PostgreSQL, и особого выбора, кроме как pgAudit, не было. Приступим к установке и настройке pgAudit. Расширение pgAudit инсталируется из исходных кодов. Установка Склонируйте официальный репозиторий: git clone https://github.com/pgaudit/pgaudit.git Открываем созданную директорию pgaudit: cd pgaudit Переключите ветку на необходимый
Читать далее…
При локальной разработке с Kafka могут возникнуть проблемы с доступом, если она запущена в Docker контейнере, и требуется обращение как изнутри Docker так и снаружи. В Kafka запись и чтение осуществляется в ноду лидера для заданной партиции. Клиент может обратиться к любому узлу Kafka, чтобы узнать по какому адресу нужно делать операцию записи/чтения, даже если
Читать далее…
Все мы знаем, что нужно периодически делать резервные копии баз данных. И почему-то делаем это только для боевых баз данных, но не для тестовых. Хотя потеря тестовых данных тоже критична, т.к. на восстановление данных может уйти достаточное количество времени. База данных может повредиться по многим причинам. Например, операции update или delete с некорректным условием и
Читать далее…
Недавно на работе столкнулись с задачей разпознавания сканированных документов и поиска по ним. Мною был рассмотрен движок распознавания текста с открытым исходным кодом Tesseract. В данной статье будут рассмотрены основные моменты возможной реализации. Предположим, что у нас есть многостраничный отсканированные документ в формате PDF, но нераспознанный. И наша задача распознать текст с помощью OCR (Optical
Читать далее…