• Почему низкая скорость публикации сообщений в очередь RabbitMQ?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вопрос - странный. Ну если вам нужно быстро - то отправляйте батчем. Собственно - это такой общий паттерн который можно рекомендовать всегда. Как - советовать носить шерстяные штаны зимой.

    Почему медленно когда по 1 сообщению? Идей много. Как вариант - виновата сетевая латентность и некие усиленные проверки транзакций или квитирований с вашей стороны. Вот по этому пункту нужно смотреть конфигурации и пинговать и трассировать ваши сети.
    Ответ написан
    Комментировать
  • Есть ли быстрое хранилище с возможностью подписаться на обновления?

    Redis Pub/Sub вполне подойдёт, наверное.
    Ответ написан
    Комментировать
  • Есть ли быстрое хранилище с возможностью подписаться на обновления?

    @Vitsliputsli
    Что значить "Надо их где-то хранить"? Эти данные будут использоваться далее, отдельно от описанного?
    Если не будут, просто сразу пересылайте из сервера Go в сервер nodejs. Если, чтото и потеряется, то оно все равно утратит свою актуальность и придут новые данные.
    Если будут использоваться, то зависит от того, как будет использоваться, вполне может и вообще классическая СУБД нужна.
    Ответ написан
    6 комментариев
  • Почему не работает node сервер внутри контейнера Docker?

    @mureevms
    Как запускаете контейнер?
    EXPOSE 8000 не открывает порт, а указывает запускающему не забыть это сделать.
    Используйте ключ при запуске для открытия порта -p 8000:8000
    Ответ написан
    Комментировать
  • Есть ли быстрое хранилище с возможностью подписаться на обновления?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если честно у меня - путаница. Трекеры и клиенты - это одни и те-же сущности?

    Kafka - хорошая штука но она любит грамотный дизайн топиков. Какой здесь будет маппинг? Если клиентов - 100 мильонов то вряд-ли кафка выдержит столько-же топиков. Если топик делать один на все события - то нужно как-то партицировать по признакам. По каким?

    Вобщем мало информации. Нужны диаграммы и цифры. Без них такого решения как кафка - нельзя принимать. Иначе это будет просто... безответственно. Тоесть мы посоветовали кафку а дальше - бейся сам как хочешь.
    Ответ написан
    6 комментариев
  • Почему исходный код языка программирования go написан на go?

    DevMan
    @DevMan
    google -> self-compiling compiler
    в частности https://ru.m.wikipedia.org/wiki/Раскрутка_компилятора
    Ответ написан
    Комментировать
  • Как брать данные из базы данных на облачном сервере?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    На heroku нельзя хранить файлы, так как любой инстанс скрипта может быть запущен на разных узлах сервиса и в любой момент перезапущен. https://help.heroku.com/K1PPS2WM/why-are-my-file-u...

    Зато на heroku можно использовать базу postgresql и в ней хранить данные. Также можно запилить для себя какой-нибудь интерфейс для выгрузки этих данных прям в самом heroku, например, в виде файла, отдаваемого по секретной ссылке с ключом или прямо чтобы бот своему хозяину посылал по запросу.
    Ответ написан
    Комментировать
  • Как ускорить импорт из XML в MySQL?

    mayton2019
    @mayton2019
    Bigdata Engineer
    - Предположительно, тебе загрузку замедляют 2 индекса по id, uuid. Выключи их. Потом построишь когда загрузишся.
    - У тебя - MariaDb. Модная зверюга. Попробуй мнесто InnoDB поставить другой двигатель Aria например.
    Ну и проверь там чтоб XML и датафайлы лежали на физически разных дисках во время загрузки.
    Ответ написан
    6 комментариев
  • Как перенести Data на сетевой диск?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скорее всего не будет работать. NAS может обеспечить throughput, но не IOPs.

    Это одна причина. И вторая - протокольная. Если Mysql все таки запрашивает какую-то операцию которая характерна только только для локального диска (fsync) то что будет если мигнет сеть ? Это фатально для базы. Я не знаю как она среагирует, но это равносильно выдергиванию SATA диска из шлейфа.
    Ответ написан
    Комментировать
  • Как сделать доступным интернет проект 24/7?

    Griboks
    @Griboks
    Специально для вас придумали облака. Там всё само за вас перезагружается и балансируется. От вас требуется только грамотно настроить конфигурацию.

    Единственный нюанс: вместо перезагрузки конкретно вашего сервиса вы поднимаете другой экземпляр (инстанс) и указывается облаку, чтобы новый трафик отправлялся туда. Когда последний запрос на старом инстансе обработался, он выключается.
    Ответ написан
    Комментировать
  • Gitlab CI/CD простого проекта?

    @d-stream
    Готовые решения - не подаю, но...
    ну примерно вот так:

    image: # имя докер-образа 
    
    stages:
      - build
      - tests
      - deploy
    
    build_my_project:
      stage: build
      tags: 
        - тэг раннера где запустить
      script:
        - ... # собственно действия для билда
        - ... 
        - ...
        - ...
      artifacts:
        name: как будет обзываться артефакт сборки
        paths:
        - путь до файлов в артефакт
        expire_in: 1 hour # сколько ему жить
    test1: 
      stage: tests
      tags: 
        - тэг раннера где запустить
      needs:
        - build
      scripts:
        - # действия по выполнению теста
    
    test2: 
      stage: tests
      tags: 
        - тэг раннера где запустить
      scripts:
        - # действия по выполнению теста 2
    
    deploy_to_dev:
      stage: deploy
      tags: 
        - тэг раннера где запустить
      needs:
        - tests
      rules:
        - if: $CI_COMMIT_BRANCH == "development"
      scripts:
        - # действия деплою в dev
    
    
    deploy_to_prod:
      stage: deploy
      tags: 
        - тэг раннера где запустить
      needs:
        - tests
      rules:
        - if: $CI_COMMIT_BRANCH == "master"
      scripts:
        - # действия деплою в dev


    словами: на первом шаге - build выполнится то что прописано в scripts (последовательно, по строкам)
    на втором шаге - test - параллельно выполнится два (ну или сколько надо блоков тестов)
    на третьем - deploy - выполнится или deploy_to_prod или deploy_to_dev или ничего в зависимости от того в какой ветке идет сборка ($CI_COMMIT_BRANCH)
    image: # имя докер-образа - имя соответсвующего docker-образа с подготовленной средой разработки (node:14 - для npm, mcr.microsoft.com/dotnet/sdk:6.0 - для .net6 и так далее)
    можно и любой свой

    needs: - описывает от каких шагов зависит шаг (это относительно свежее, ранее более жесткое dependencies:)
    Ответ написан
    1 комментарий
  • Восстанавливает данные мошенник?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Для начала нужно просто пообщаться. Правда, это нужно уметь делать. Так что если вы вообще плохо ладите с людьми, то нужно, чтобы кто-то другой общался вместо вас. Желательно при этом записывать разговор. Можно также включить на громкую и позвать свидетелей.

    Скажите ему, что так дела не делаются, что вы так не договаривались, и что он не может повышать цену просто так без вашего согласия. Возможно, он просто не врубается в ситуацию.

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

    Если в итоге всё сведётся к тому, что он вас нагло кидает и полностью это сам осознаёт, то дальше разговоры заканчиваются - и начинаются действия. Какое решение вы примете по итогу разговора - дело ваше. Может быть, решите, что ну его к чёрту вместе с диском, а может и заплатить решитесь, смотря что за разговор получится. В любом случае, сначала - переговоры, а потом уже - действия.
    Ответ написан
    5 комментариев
  • Как будет работать система плагинов, при условии что плагины можно писать на разных языках?

    @rPman
    в комментариях к вопросу все что надо уже сказали.
    Первая проблема - хранение данных (переменные, структуры, объекты), вторая - код.

    1 вариант -. первую проблему предлагали решить стандартом сериализации а вторую - принципиально - пусмть каждый плагин запускается по своему отдельным процессом, и использует какой то способ коммуникаций с основной программой (сеть, IPC и т.п.)

    2 вариант - свести все разнообразие используемых языков программирования к одному (например байткоду), и использовать общий фреймворк, если это позволено, такое есть как для java jvm, так и для .net clr (c#, cpp#, vb#, python#,...) или более современно и предпочтительнее (быстрее, больше возможностей и прочее но и сложнее) - llvm, правда с общим фреймворком будет сложнее.
    В этом варианте код плагинов скорее всего должен будет подгружаться в рантайме используя идеологию dinamic link library, но не обязательно.

    Интересным вариантом может быть линковка во время сборки проекта (не во время выполнения, т.е. потребуется перезапуск, в подавляющем больинстве случаев загрузка плагина на лету не требуется, dll чаще используется как инструмент организации хранения и распространения), отличным примером являются объектные файлы компиляции c/c++ компилятора (на самом деле есть компиляторы и для других языков, даже python с помощью nuitka переводится в c++) и уже на месте с нужной конфигурацией все они собираются линкером в один запускаемый бинарник, и при этом исходные коды не распространяются а процес сборки проходит достаточно быстро (он понадобится при смене конфигурации плагинов или обновлении версии какого либо одного из списка)
    Ответ написан
    4 комментария
  • Как сделать переадресацию в файле HOSTS не для всего IP, а для конкретной ссылки?

    @generalx
    Системный администратор
    Такое только веб-сервер может
    Ответ написан
    Комментировать
  • Как исправить эту ошибку?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Прочитать документацию, узнать, что на Heroku практически нет возможности работать с файловой системой.
    Ответ написан
    Комментировать
  • JS в качестве БД?

    @rPman
    javascrip - это инструмент, json - это формат, а база данных - это место хранения, инструмент и формат одновременно.
    Т.е. тебе нужно еще понять где ты будешь хранить данные, и вот от сюда и полезут проблемы.

    Интернет магазин - значит участвует как минимум браузер (вырожденные случаи вида - магазин в telegram/wechat не рассматриваем), хранить данные браузер умеет только локально, для клиента, а у интернет магазина как минимум есть еще продавец, с которым клиент должен связываться для получения списка и цен на товары в наличии и указаний к пожеланию купить (корзина)... т.е. нужен еще и сервер (варианты с децентрализованной сетью так же не рассматриваем ибо это хардкор не для новичков).

    Если твой сервер однопоточный (например если речь идет про javascript то бакэнд серверный можно писать на nodejs, с оговорками про асинхронность) то в принципе можно хранить все данные в файлах, и не сильно заморачиваться с блокировками и транзакциями, а из-за них основные проблемы возникают, зачем люди к готовым базам данным идут.
    Если тебя это все еще интересует,
    веди работу с базой данных из отдельных функций (например объединив их в класс), по окончанию работу каждой чтобы данные в файлах были в консистентном - правильном состоянии, перезапись делать через временный файл с переименовыванием в оригинальный после всех изменений, это аналог транзакций, это даст гарантии по сохранности данных при смерти внезапной скрипта, например окончилась память или место на диске, само собой проверять это при следующем запуске и давать возможность вручную разрулить. Если сумарный объем базы больше мегабайтов, то не храни все в одном файле, первый уровень разделения - по типам данных, например раздели данные для редких изменений и постоянных - списки товаров и корзина, кстати цены можно так же отдельно хранить, само собой тебе тогда придется идентификаторы заводить и следить за их уникальностью - вот уже сиквенсы пошли (кстати есть алгоритмы uuid где каждый новый гарантированно уникальный без необходимости централизации и чего либо хранения), если же данных совсем много и часто меняются случайные из них то храни каждый объект в своем файле, файловая система справится, но лучше все же освой нормальные БД

    Поэтому тебе правильно посоветовали, используй sqlite, минимум усилий на обслуживание и настройку (база данных = файл, никакого сервера и при этом полноценный sql с почти бесплатной миграцией на любую sql базу данных в будущем)
    Ответ написан
    Комментировать
  • Как в Django установить соединение с RabbitMQ?

    DMGarikk
    @DMGarikk
    Lead Software Developer
    вас не устраивает официальный манул? rabbit
    Ответ написан
    1 комментарий
  • Как правильно указывать(хранить)пароли в docker-compose?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если докер является частью вашего облака AWS/Azure - то надо читать их документацию. Обычно постащик облака всегда продает какой-то сейф (vault) для хранения секретов. И есть API через который можно читать содержимое этого сейфа.
    Ответ написан
    Комментировать