Задать вопрос
  • Безопасность и анонимность в сети, где прочитать?

    @AntoXa_ZiMM Автор вопроса
    Zhainar пробовал, в том то и смысл, что это статья, только часть, не полный обзор на все
  • Как правильно разделять приложение node js на микросервисы?

    @AntoXa_ZiMM
    Сергей Рогожкин: Почему Вы так думаете? Я более чем уверен, что у нас были реплики некоторых микросервисов, семантическое версионирование микросервисов, балансировка нагрузки на микросервисы, пачка процессов и т.д.

    Буду рад выслушать Вашу точку зрения и описание микросервисного приложения... и укажите пожалуйста пункы в которых я ошибся.

    Отладка занимала много времени, согласен, но я замечал это и в других проектах, написанных на микросервисах. Увы это в определенном смысле проблема и довольно трудоемкая.
  • Как правильно разделять приложение node js на микросервисы?

    @AntoXa_ZiMM
    Yeah: В рамках схемы foreign keys/primary keys без проблем, они есть и работают хорошо. В рамках нескольких схем foreign keys/primary keys не работали (и они не требоались в принципе).

    Проектирование БД позволяло не завязиваться на другие схемы, если правильно выбраны сущности и взаиможействие между ними в рамках одной схемы, то все будет ок. Было такое правило, что взаиможействие между схемами БД запрещено в принципе и каралось.
    Проблема с UserId -- часто был такой столбец в таблицах в других схемах (другие столбцы реже), который не имел связи с таблицей Users, но проблем с отсутствием foreign keys не было. Проблем с целостностью данных тоже не замечал (они вероятно были, но социальная сеть, не банковское приложение или запуск ракет, все зависит от того, что вам требуется и что Вы можете себе позволить, а что нет).
  • Как правильно разделять приложение node js на микросервисы?

    @AntoXa_ZiMM
    littleguga: Я затрудняюсь ответить т.к. я пришел на проект которому уже было более 3х лет. Точнее там было больше 5 проектов, написанных на микросервисах и они шарили между собой некоторые из микросервисов. Проекты иногда закрывали, иногда открывали новые. Что мне кажется важно в отношении новых проектов: просто рисовали новый UI и создавали новый проект в CI, накидывали в него список микросервисов из уже имеющихся и за месяц!!! работы был готов новый проект с понятным всем разработчиком функционалом и стеком технологий)))

    RabbitMQ добольно распространен и его часто используют, новые проекты на нем пишут, думаю он подходит для определенных задач. Из личного опыта могу сказать, что с ним удобно работать, у него есть хорошая админка, он понятен и удобен. У RabbitMQ сообщения из очереди могут быть записаны на диск, например если какой-то микросервис не работает несколько часов, то сообщения в очереди будут накапливаться и могут быть обработаны через час или два после отправки, что довольно удобно в некоторых ситуациях.
  • Как правильно разделять приложение node js на микросервисы?

    @AntoXa_ZiMM
    komarevtsev: я не работал с redis pub/sub, вполне может быть, что это хорошая альтернатива RabbitMQ. В микросервисе я пользовался только только несколькими функциями: [1] получить сообщение из очереди и обработать его; [2] отправить сообщение сообщение в очередь на обработку, важно, что для некоторых сообщений требовалось получить ответ о том, что оно обработалось удачно/неудачно в другом микросервисе (это в rabbitmq реализованно из коробки и очень удобно), цепочка взаиможействия микровервисов может быть просто огромной (что сильно затрудняло работу на первых этапах)
  • Timeout expired. The timeout period elapsed...or the server not responding. Таймаут в конфиге час, почему падает через минуту?

    @AntoXa_ZiMM Автор вопроса
    Алексей Немиро:
    1) про модель восстановления знаю, отправил заказчику запрос
    2) спасибо за инфу про shrink, подумаю как это использовать
    3) так же знаю, что SQL server создает статистику в таблицах, как это отключить для конкретной таблицы (пробовал но не получилось, может есть какие-то особенности или еще что-то, что пропустил)
    4) что еще может заставить сервер тупить, если я делаю только bulk insert, create index и delete?
  • Timeout expired. The timeout period elapsed...or the server not responding. Таймаут в конфиге час, почему падает через минуту?

    @AntoXa_ZiMM Автор вопроса
    Дмитрий Ковальский: скрипт не покажу, его нету на том уровне, что я использую, копирование данных в БД. Использую .net SqlBulkCopy.WtiteToServer() из одной таблицы БД в другую таблицу той же БД без преобразований, по 8000 строк за раз.

    Пробовал сделать такой скрипт:
    WITH {cteTableName} AS (
    SELECT {selectedColumns}, ROW_NUMBER() OVER(PARTITION BY {uniqueColumnName} ORDER BY {uniqueColumnName}) AS RowNumber
    FROM {source})

    INSERT INTO {target}({selectedColumns})
    SELECT {selectedColumns}
    FROM {cteTableName}
    WHERE RowNumber = 1;
    (без индекса) это падает по таймауту и выглядит так, будто сервер просто не доступен/не отвечает/занят своими внутренними делами, т.к. 3600 секунд есть на подключение и на выполнение команды, а падает через минуту или 2 и рандомно на разных шагах выполнение
  • Вставка в бд огромного объема данных, как лучше сделать?

    @AntoXa_ZiMM Автор вопроса
    SaNNy32: это не глупо, это такая архитектура БД (возможно кривовата, возможно требования прикладной части, а скорее всего оба пункта) и невозможность её изменить. БД с данными и их там миллионы строк, за один цикл обработки стандартного пакета данных только в одну таблицу из 50 вставляется около 243 000 строк.

    Индексировать не вариант т.к. исходная таблица без индексов и должна такой остаться, если пересоздавать индексы при каждой обработке данных -- время этой операции будет увеличиваться с каждым циклом обработки данных, транзакции использовать запрещено
  • Вставка в бд огромного объема данных, как лучше сделать?

    @AntoXa_ZiMM Автор вопроса
    Пропатчить не вариант т.к. доступа к проекту бд нету, да и накажут меня за это больно, создать свои временные pk не получится т.к. не уверен в консистентности данных (может дубликаты кто-то другой вставил уже), индексы временно вставлять в основные таблицы тоже не вариант т..к. при построении блокируют таблицу/бд пока строятся
  • Вставка в бд огромного объема данных, как лучше сделать?

    @AntoXa_ZiMM Автор вопроса
    Потому что заказчик. Извиняюсь за тупой ответ, но увы -- заказчик использует много разных бд для хранения и обработки данных на разных этапах работы системы и это самая первая из них, туда просто вливаются данные как есть, но обязательно без дубликатов, потом он их забирает в другую бд (и, думаю, там уже начинаются ключи, индексы, один комоним и т.д.)
  • Как организовать хранение токена после авторизации?

    @AntoXa_ZiMM Автор вопроса
    Николай Корабельников: self-issued.info/docs/draft-ietf-oauth-v2-bearer.html написано, что опасно, хотя что в web-разработке безопасно ((((
  • Как защитить файлы в приложении от кражи?

    @AntoXa_ZiMM Автор вопроса
    Сергей: защита от снимка экрана возможна (видел в приложении как привентиться - черная картинка вместо снимка)
    Защититься от видео или чего-то подобного (на сколько я понял - отдельным девайсом пишется видео с экраном приложения) является проблемой с которой тяжело разобраться или почти невозможно (