Хелпер в дискорде это что

Хелпер в дискорде это что

Здесь вы должны узнать какие требования чтобы стать хелпером любого дискорд гиганта этот тест удивит вас основными вопросами для того чтобы стать ним

Начало теста:

Варианты ответов:

Варианты ответов:

Варианты ответов:

Варианты ответов:

Идет подсчет результатов

Выберите, что Вас интересует:

Сообщить о нарушение
Ваше сообщение отправлено, мы постараемся разобраться в ближайшее время.

Попробуйте пройти эти тесты:

Ваша эрудиция на высоте, если осилите наш тест хотя бы на 8/11 — ТЕСТ

Тест на знание русского языка: сможете ли вы грамотно написать все 25 слов?

Тест, который проверит вашу эрудицию: где вы на шкале от 0 до 12?

Тест по советским фильмам: Кто из актеров сказал эти известные всем слова?

Проверьте свой интеллект

Тест на общие знания: Просвещены ли вы настолько, чтобы пройти его на все 10/10?

Тест на смекалку, в котором вы вряд ли наберете 8 правильных ответов, если ваш IQ ниже среднего

Если в этом тесте вы наберете 13/13, то вам пора поступать в Гарвард

Только 4% людей способны пройти этот тест с вопросами различной направленности

Сможете ли вы пройти тест для разведчиков?

Тест Роршаха расскажет, что сейчас творится у вас в голове

Тест на кругозор. Хватит ли вам эрудиции, чтобы пройти его 10/10?

Если сможете закончить 13 крылатых фраз, то вы настоящий интеллигент

Если вы родом из СССР, то точно сможете закончить фразы тех времен на все 10 из 10

Хватит ли вам фоновых знаний, чтобы ответить на рандомные вопросы из разных областей?

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

Сможете ли вы назвать имена всех этих легендарных артистов, популярных в СССР?

Пройдете ли вы тест на психопата?

Тест: Узнайте в каком году вы должны были родиться на самом деле?

Если вы наберете 11/12 в этом тесте на эрудицию, то такого начитанного и разностороннего человека еще поискать

Подписывайтесь на наши странички! Обязательно делитесь с друзьями! Впереди много новых интересных тестов! Ежедневные добавления! Страницы: Яндекс Дзен, ВКонтакте, Одноклассники, Facebook

Популярные тесты

Ваша эрудиция на высоте, если осилите наш тест хотя бы на 8/11 — ТЕСТ

Тест на знание русского языка: сможете ли вы грамотно написать все 25 слов?

Тест, который проверит вашу эрудицию: где вы на шкале от 0 до 12?

Тест по советским фильмам: Кто из актеров сказал эти известные всем слова?

Проверьте свой интеллект

Тест на общие знания: Просвещены ли вы настолько, чтобы пройти его на все 10/10?

Тест на смекалку, в котором вы вряд ли наберете 8 правильных ответов, если ваш IQ ниже среднего

Если в этом тесте вы наберете 13/13, то вам пора поступать в Гарвард

Только 4% людей способны пройти этот тест с вопросами различной направленности

Сможете ли вы пройти тест для разведчиков?

Тест Роршаха расскажет, что сейчас творится у вас в голове

Тест на кругозор. Хватит ли вам эрудиции, чтобы пройти его 10/10?

Если сможете закончить 13 крылатых фраз, то вы настоящий интеллигент

Если вы родом из СССР, то точно сможете закончить фразы тех времен на все 10 из 10

Хватит ли вам фоновых знаний, чтобы ответить на рандомные вопросы из разных областей?

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

Сможете ли вы назвать имена всех этих легендарных артистов, популярных в СССР?

Пройдете ли вы тест на психопата?

Тест: Узнайте в каком году вы должны были родиться на самом деле?

Если вы наберете 11/12 в этом тесте на эрудицию, то такого начитанного и разностороннего человека еще поискать

Преимущества

Можете встраивать тесты на Ваш сайт. Тест показывается нашем и других сайтах. Гибкие настройки результатов. Возможность поделиться тестом и результатами. Лавинообразный («вирусный») трафик на тест. Русскоязычная аудитория. Без рекламы!

Пользователям

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

Внимание! Наши тесты не претендуют на достоверность – не стоит относиться к ним слишком серьезно!

Источник

Discord как корпоративный мессенджер и не только

Хочу рассказать про использование мессенджера Discord как основного средства коммуникации в команде. Опыт может быть полезен другим командам, использующим бесплатные мессенджеры, а также всем, кто ищет пути повышения эффективности использования мессенджеров.

Discord – программа странная и выдающаяся одновременно. Почему? Хотя бы потому, что про способы работы в Discord получилась целая статья.

Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

Что-то пошло не так

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

Обычные мессенджеры устроены так, чтобы работать «из коробки» и без всякого администрирования. Это вполне здравый подход, обеспечивающий низкий порог вхождения: просто создали групповой чат и общаемся в нём. По-другому эти мессенджеры не могут, так как сложные процедуры настройки отпугнут основную аудиторию. Но, как обычно, низкие начальные вложения оборачиваются высокими эксплуатационными издержками. Какие проблемы имеем в итоге.

Разделение по темам. Чем больше пользователей в группе, тем больше количество обсуждаемых тем. Большинство тем интересны ограниченному числу пользователей группы. Подход здорового человека заключается в том, чтобы создавать тематические группы и включать в них только тех, кому тема интересна – такая изоляция уменьшает «информационный шум» от ненужного контента. Но на практике это приводит к полному хаосу. Например, имеем 10 чатов по работе, 4 чата детского сада, 3 чата многоквартирного дома и так далее. И всё это в одном пространстве имён, поэтому мы начинаем путаться в чатах. Они уползают вниз списка, забываются, потом создаются дубликаты забытых чатов, но туда забывают добавить всех пользователей. Если же количество участников примерно от полсотни и выше, то никакие параллельные чаты уже не создаются – слишком сложно поддерживать актуальный список участников. Ведется один супер-чат, содержащий все вопросы жизни, вселенной и всего такого. Результат: большие группы в мессенджерах становятся «токсичными»: контент неинтересен из-за большого количества мусора, мы присутствуем в группах только из-за необходимости.

Избыточные нотификации. Каждому знакома ситуация, когда нам приходит слишком большое количество нотификаций различных мессенджеров. Рассмотрим пример. Пусть, у нас команда из 50 человек и каждый пишет в общий чат 5 сообщений в день. Тогда каждый получит по 50*5=250 нотификаций. Если считать, что для просмотра сообщения мы отвлекаемся на 30 секунд, то 250 нотификаций съедают 250*30=7500 секунд, что составляет 2 часа! А всю команду нотификации отвлекают на время 7500*50=375000 секунд или 104 часа! Вдумайтесь: 104 человеко-часа в день или 13 человеко-дней каждый день! Это 26% ресурсов команды. Такие большие числа получаем потому, что количество людей (50 человек) в чате входит в итоговую формулу квадратично (каждый нотифицирует каждого):

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

Discord: начало

Теперь переходим к Discord. Прежде всего заметим, что в Discord есть два режима или, скорее, «вида»: назовем их «обычный» и «сервер». Они существуют параллельно и имеют разные цели. В «обычном» виде Discord – это такой же обычный мессенджер, как и все остальные. Даже с более ограниченными возможностями, чем тот же Skype:

Сервер

Чтобы работать с сервером, надо этот самый сервер иметь. Для определенности будем считать, что мы сотрудники стартапа «Рога и Копыта», поэтому наш сервер будет называться «РК». Создаем сервер путем нажатия на кнопку с большим знаком «+». Сервер – это уютное место, где будет проходить всё наше корпоративное общение (кроме 1-на-1, которое в «обычном» виде, вне сервера). Пользователи должны присоединиться к серверу по приглашению.

Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

В левой панели сразу видим две новые сущности:

Теперь переходим к инструментам Discord, которые делают его эффективным для командной работы. Прежде всего это роли. Смысл в том, что мы настраиваем права доступа не для конкретных пользователей, а для ролей и даём эти роли людям. Список разных прав, которые может иметь роль, внушает: целых 32 пункта. Кроме того, у каналов мы настраиваем, какие права имеет роль в канале: чтение, написание, удаление сообщений и т.п.

Какие роли создавать – решаем сами. Роль соответствует некоему типичному набору действий пользователя. Например, на нашем сервере сделаем такие роли:

Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

Каналы

Текстовые каналы на нашем сервере могут быть, например, такие:

Упоминания

Упоминания – ещё одна вещь, которая делает работу в Discord эффективной. Это когда мы пишем сообщение в текстовый канал, упоминая аккаунт с помощью специального синтаксиса:

Можно упомянуть роль:

А вот так можно упомянуть всех, кто есть в канале (любой из этих вариантов работает):

Тут вы можете сказать: «Ха! В Skype тоже можно упомянуть через @имя. И зачем упоминать всех, какой в этом смысл? Ведь сообщение и без того обращено ко всем».
Действительно, в Skype можно написать Vasya.Pupkin. Но в Skype вся польза от упоминания в том, что во всплывающем уведомлении будет добавлено, что «вас упомянули». Наверное, в этом есть смысл, но в Discord сделали лучше. Прежде всего заметим, что в Discord есть два вида нотификаций о новых сообщениях:

Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

Поток сообщений в текстовых каналах не требует внимания, пока пользователь не упомянут.

Легко видеть, что такой подход решает описанную выше проблему избыточных нотификаций, если немного обучить пользователей правильному стилю работы. Например, такому:

И таких упоминаний в реальности очень мало, не более 2% сообщений. Обычно упоминают here когда задают вопрос не зная, кто конкретно может на него ответить. Все отвлекаются от работы и читают вопрос. Дальше люди, которым есть что сказать, остаются вести дискуссию, остальные возвращаются к своим делам. И не бойтесь, что here будет слишком много: лишний раз писать here в сообщении просто лень!

Также упоминаний не будет слишком мало. Хотя бы потому, что человек сам заинтересован позвать правильных людей упоминанием в своем посте, чтобы достичь нужного ему результата. Короче, всё это самобалансируется и получается норм. Что с остальными 98% сообщений? Их тоже надо читать, но не срочно. В удобное время с чашкой кофе прочитываем весь поток сообщений. Такое отложенное прочитывание не приводит к огромным потерям времени, как описано в начале статьи. Ведь читаем подряд, не переключая свой мозг между сообщениям и другими делами. И, что самое главное, сообщения не отрывают нас от работы.

Итого: проблема избыточных нотификаций полностью решена, и при этом обеспечено быстрое реагирование на важные сообщения.

А минусы какие?

Технические ограничения в Discord.

Стандартные возможности

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

А еще есть.

Боты и возможность написания своих ботов. Но это уже совсем другая тема.

Итого

Discord – это в некотором роде мессенджер 2.0, имеющий средства для эффективного общения больших групп пользователей, в том числе и в корпоративном применении. Создатели программы не побоялись выйти за рамки парадигмы обычных мессенджеров – и получилось неплохо. И в то же время Discord не конкурент обычным мессенджерам, у него своя экологическая ниша. Ведь у простых пользователей, не айтишников и не геймеров, наступает шок и трепет от необходимости администрирования и непохожести на привычные программы.

Надеюсь, информации в статье достаточно, чтобы решить, надо вам это или нет.

UPD1: Комментарий JustDont:
Перед тем как советовать дискорд для контор, нужно обязательно упоминать о том, что вообще-то нужно внимательно честь Discord Privacy Policy, в которой вполне себе английским или русским по белому написано, что Discord собирает всё, что вы ему отправляете. В том числе и всю вашу переписку, обратите внимание. И совершенно не обещает её шифровать и вообще как-то беречь её конфиденциальность от самих себя. И есть ряд сценариев, в которых эта собранная информация вполне может уйти куда-то, куда вам не очень хочется, чтоб она ушла. И нужно оценивать эти риски.

Источник

Как прокачать безопасность Discord

Защищаем аккаунт Discord от угона, скрываемся от спамеров и берем под контроль уведомления.

Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

Гонять с друзьями в CS:GO или Apex Legends веселее, если все сидят в одном мессенджере: шутки в процессе прохождения, тематические чаты и стриминг для друзей — это часть игрового процесса. Если вы большой любитель онлайн-игр, то наверняка уже пользуетесь Discord, который за несколько лет стал каналом связи для геймеров по умолчанию. У некоторых игр и игровых платформ есть свои Discord-серверы, где можно найти тиммейтов, обратиться в техподдержку или просто початиться.

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

Где найти настройки безопасности и приватности в Discord

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

Как защитить аккаунт Discord от угона

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

Чтобы поменять пароль в Discord на компьютере:

В мобильном приложении путь отличается:

Теперь взломать ваш аккаунт будет не так просто!

Как настроить двухфакторную аутентификацию в Discord

Чтобы не оставить киберпреступникам шансов, включите в Discord двухфакторную аутентификацию. Тогда при входе в аккаунт мессенджер будет запрашивать одноразовый код из специального приложения-аутентификатора, например Authy, Google Authenticator или «Яндекс.Ключ». Его придется установить на смартфон или планшет, но такая программа может пригодиться и для защиты других аккаунтов.

Готово, защита апнулась! Чтобы подстраховаться, добавьте номер телефона и сохраните резервные коды. Они пригодятся, если приложения-аутентификатора не будет под рукой.

Если вы сидите в Discord cо смартфона или планшета:

Как избавиться от спамеров в Discord

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

Этот вариант заставляет искусственный интеллект Discord сканировать все входящие картинки и блокировать мусор. Если же у вас в друзьях проверенные люди, можно выбрать вариант Мои друзья хорошие — тогда ИИ будет пропускать послания от них.

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

Вы также можете Разрешить личные сообщения от участников сервера — это общий параметр для всех серверов, к которым вы присоединитесь. По умолчанию эта настройка включена, но можно задать свои правила для каждого отдельного сервера.

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

Как избавиться от лишних уведомлений в Discord

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

Пока вы сидите за компьютером, Discord не дублирует уведомления на планшете или смартфоне. Однако если вы продолжительное время ничего не делаете в десктопной версии, то оповещения будут приходить и на мобильных устройствах. Вы можете решить, когда мессенджер должен переключиться на мобильные уведомления. Для этого в секции Тайм-аут бездействия для push-уведомлений выберите из выпадающего меню подходящий интервал.

На телефоне настройки немного другие:

Если вас раздражают мигающий индикатор на телефоне, вибрация или звуковые оповещения, в Android включите опции Отключить индикатор уведомлений, Отключить вибрацию при уведомлении и Выключить звуки.

Как сохранить приватность в Discord

От назойливых сообщений и уведомлений избавились. Теперь давайте разберемся, что о вас знает Discord и что могут узнать другие пользователи. Возможно, часть этой информации вы хотели бы оставить при себе.

Как отключить персонализацию в Discord

Разработчики Discord не скрывают, что собирают данные о вас и ваших привычках, чтобы улучшать работу программы. Если вам это не очень нравится, можно ограничить сбор и использование данных мессенджером. Для этого:

Как узнать, какие данные собирает Discord

Учтите, что Discord в любом случае будет собирать информацию о вас. Чтобы посмотреть, какие данные хранит мессенджер, и скачать их на случай блокировки аккаунта, можно запросить у мессенджера файл с архивом личных сведений. Для этого:

Ссылка на архив через некоторое время придет на вашу электронную почту.

Как скрыть личную информацию от других сервисов

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

Заодно в десктопной версии отключите опцию Автоматически обнаруживать учетные записи с других платформ на этом компьютере. Мессенджеру вовсе не обязательно знать, где еще вы зарегистрированы.

Как скрыть лишнюю информацию от посторонних

Не всем на сервере нужно знать, во что вы играете прямо сейчас. И не всем зрителям стримов нужно знать все подробности вашего профиля. Чтобы посторонние не увидели лишнего:

Защищайте свои аккаунты

С настройками Discord разобрались — можно играть и общаться с комфортом. А чтобы вам вообще никто не мешал, проверьте для верности настройки Steam и Twitch.

Источник

Как Discord индексирует миллиарды сообщений

Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

Требования

В. Можно передать поиск в управляемый SaaS? (простое решение)

О. Нет. Все рассмотренные нами решения управляемого поиска выходят за рамки нашего бюджета (на астрономическую сумму) для этой функции. Кроме того, нашим парням не очень нравится идея передачи сообщений за пределы нашего дата-центра. Осознавая риски, хочется сохранить контроль над безопасностью сообщений пользователей, а не доверяя это третьей стороне.

В. Есть подходящее нам open source решение для поиска?

О. Да! Мы всё изучили и после краткого обсуждения быстро пришли к выбору Elasticsearch vs Solr, поскольку обе системы могут вполне подойти для нашего случая. Elasticsearch имел преимущество:

Elasticsearch заработает?

Elasticsearch как будто подходит под все наши требования, и у наших инженеров есть опыт работы с ним. Он позволяет реплицировать данные между разными нодами, чтобы выдержать сбой каждой из них, масштабирует кластер добавлением новых нод и может проглатывать сообщения для индексации без устали. Но изучая тему, мы нашли несколько страшных рассказов об управлении большими кластерами Elasticsearch, а в реальности ни у кого из нашей группы бэкенда не было никакого опыта управления кластерами Elasticsearch, не считая нашей инфраструктуры для обработки логов.

Нам хотелось избежать проблем с громоздкими большими кластерами, и тут пришла идея делегировать шардинг и маршрутизацию на прикладной уровень, чтобы индексировать сообщения в пуле меньших кластеров Elasticsearch. Это означает ещё и то, что в случае отключения одного кластера для поиска станут недоступной только часть сообщений Discord, те, что находятся в выбывшем кластере. Это также даёт нам полезную возможность отказаться от данных целого кластера, если его невозможно восстановить (система лениво переиндексирует данные сервера в следующий раз, как только пользователь попытается поискать в них).

Компоненты

Elasticsearch любит индексировать документы в большом количестве. Это значит, что мы не можем индексировать сообщения по мере их публикации в реальном времени. Вместо этого мы спроектировали очередь, в которой воркер захватывает пачки сообщений и индексирует их едиными операциями. Мы решили, что небольшая задержка между публикацией сообщения и его доступностью для поиска является вполне разумным ограничением. В конце концов, большинство пользователей ищут сообщения, опубликованные в прошлом, а не только что сказанные.

Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

На стороне приёма информации нужно было сделать пару вещей:

Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

Индексирование и картирование данных

На действительно высоком уровне в Elasticsearch у нас есть концепция «индекса», внутри которого содержатся «шарды». В данном случае шард представляет собой индекс Lucene. Elasticsearch отвечает за распределение данных в индексе перед шардом, принадлежащим этому индексу. Если хотите, можно контролировать, как данные распределяются среди шардов, при помощи «ключа маршрутизации». В индексе также хранится «фактор репликации», который означает количество нодов, на которые индекс (и шарды в нём) должны быть реплицированы. Если нода, на которой располагается индекс, выходит из строя, то её реплицированная копия возьмёт нагрузку на себя. (Кстати, эти копии способны также обслуживать поисковые запросы, так что вы можете масштабировать пропускную способность поиска добавляя больше реплицированных копий).

Поскольку мы передали всю логику шардов на прикладной уровень (наши Шарды), то шардинг на стороне Elasticsearch в реальности не имел смысла. Однако мы могли использовать его для репликации и балансировки индексов между нодами в кластере. Чтобы Elasticsearch автоматически создавал индекс, используя правильную конфигурацию, мы использовали шаблон индекса, который содержит конфигурацию индекса и картирование данных. Конфигурация индекса достаточно проста:

Можете заметить, что в набор полей мы не включили метку времени, и если помните из нашего прошлого поста, наши ID созданы в формате Snowflake, то есть по своей сути содержат метку времени (которую можно использовать для реализации функции выбора результатов поиска по времени, выбирая соответствующий диапазон ID).

Однако эти поля не «хранятся» в таком виде в Elasticsearch, скорее, они хранятся только в инвертированном индексе. Единственные реально хранящиеся и возвращаемые поля — это сообщение, канал и ID сервера, на котором было опубликовано сообщение. Это значит, что данные сообщений не дублируются в Elasticsearch. Компромисс в том, что нам придётся забирать данные из Cassandra при возвращении результатов поиска, но это абсолютно нормально, потому что нам бы в любом случае пришлось забирать из Cassandra контекст сообщения (два сообщения до и после) для отображения в интерфейсе. Хранение реального объекта сообщения вне Elasticsearch означает, что нам не нужно тратить на него дополнительное дисковое пространство. Однако это означает также, что мы не можем использовать Elasticsearch для подсветки совпадений в результатах поиска. Придётся встроить токенайзеры и лингвистические анализаторы в клиенсткую программу для подсветки совпадений (что было действительно легко сделать).

Реализация

Мы решили, что микросервис для поиска, вероятно, не требуется — а вместо этого выставили для Elasticsearch библиотеку, в которую была обёрнута логика маршрутизации и запросов. Понадобилось запустить только единственный дополнительный сервис — это воркеры индексирования (которые будут использовать эту библиотеку, чтобы делать реальную работу по индексированию). Часть программных интерфейсов, выставленная для остальной команды, была тоже минимальна, так что если бы понадобилось перейти на собственный сервис, её можно было бы легко обернуть в слой RPC. Библиотеку можно импортировать в наши API-воркеры, и она может реально выполнять поисковые запросы и возвращать результаты пользователю по HTTP.

Для остальной команды библиотека показывает минимальную часть для поиска сообщений:

Постановка сообщения в очередь для индексации или удаления:

Массовое индексирование сообщений (почти) в реальном времени воркером:

Для индексирования старых сообщений на сервере создаётся задание исторической индексации, которое осуществляет единицу работы и создаёт новое задание для продолжения индексации этого сервера. Каждое задание представляет собой указатель на место в истории сообщений сервера и фиксированную единицу объёма индексации (в данном случае по умолчанию установленную на 500 сообщений). Задание возвращает новый указатель на следующую пачку сообщений для индексации или значение None, если больше нечего делать. Чтобы быстро получить результаты для большого сервера, мы разбили историческую индексацию на две фазы: «начальная» и «глубокая». В «начальной» фазе индексируются сообщения за последние 7 дней — и индекс становится доступен для пользователей. После этого мы начинаем «глубокую» фазу, которая исполняется с низким приоритетом. В этой статье объясняется, как это выглядит для пользователя. Задания исполняются в пуле воркеров, что позволяет планировать их среди прочих заданий, которые выполняют воркеры. Это выглядит примерно так:

Тестирование в продакшне

Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

После кодирования всего вышеперечисленного и тестирования в среде разработки мы решили, что пришло время посмотреть, как оно работает в продакшне. Мы подняли единственный кластер Elasticsearch с тремя нодами, запустили воркеров индексации и назначили для индексации 1000 крупнейших серверов Discord. Всё вроде работало, но когда мы посмотрели на показатели кластера, то заметили две вещи:

Когда мы вернулись на утро, то заметили ЗНАЧИТЕЛЬНОЕ высвобождение дискового пространства. Неужели Elasticsearch выбросил наши данные? Мы попробовали запустить поисковый запрос на одном из наших серверов, который был проиндексирован и где был зарегистрирован один из наших сотрудников. Есть! Результаты отлично возвращались — и очень быстро! Что за дела?

Использование дискового пространства быстро растёт, а потом сокращается
Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

Нагрузка на CPU
Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

После небольшого расследования у нас появилась гипотеза! По умолчанию Elasticsearch обновляет индекс 1 раз в секунду. Это то что обеспечивает поиск «почти в реальном времени». Каждую секунду (в каждом из тысяч индексов) Elasticsearch заполнял буфер в памяти сегментом Lucene и открывал его, чтобы сделать доступным для поиска. За ночь во время простоя Elasticsearch объединил большое количество маленьких фрагментов и сгенерировал гораздо бóльшие фрагменты (и намного более эффективные по дисковому пространству).

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

Использование дискового пространства после увеличения интервала обновления
Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

Нагрузка на CPU
Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

К сожалению, однако, полное отключение интервала обновления не сработало на практике…

Беды с интервалом обновления

Цикл индексации превращается в такое:

Будущее

С момента развёртывания в январе наша инфраструктура Elasticsearch выросла до 14 нод в двух кластерах, используя типы инстансов n1-standard-8 на GCP с накопителями Provisioned SSD на 1 ТБ на каждом. Общее количество документов — почти 26 млрд. Скорость индексирования достигает пиковых значений примерно 30 000 сообщений в секунду. Elasticsearch справляется с этим без усилий, сохранив показатель 5-15% CPU на протяжении всего срока развёртывания нашего поиска.

До сих пор мы добавляли ноды в кластеры без труда. В какой-то момент мы развернём новые кластеры, так что новые индексируемые серверы Discord попадут туда (благодаря нашей автоматической системе распределения шардов). В существующих кластерах понадобится ограничить число главных избранных нод по мере того, как мы добавим больше нод с данными в кластер.

Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

Мы также наткнулись на четыре основных показателя, которые используем для определения, когда следует увеличить кластер:

Нездоровый кластер (заканчивается куча)

Свободная куча (МиБ)
Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

Время на сборку мусора, GC в секунду
Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

Здоровый кластер

Свободная куча (ГиБ)
Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

Время на сборку мусора, GC в секунду
Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

Заключение

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

Хелпер в дискорде это что. Смотреть фото Хелпер в дискорде это что. Смотреть картинку Хелпер в дискорде это что. Картинка про Хелпер в дискорде это что. Фото Хелпер в дискорде это что

Elasticsearch показал стабильную и уверенную производительность от 0 до 26 млрд документов на примерно 16 000 индексах и миллионах серверов Discord. Мы продолжим масштабирование, добавляя новые кластеры или больше нод в существующие кластеры. В какой-то момент мы можем подумать о написании кода, который позволит переносить индексы между кластерами как способ снизить нагрузку на кластер или выделить серверу Discord собственный индекс, если это исключительно болтливый сервер (хотя наша система шардинга с распределением весов хорошо справляется, так что тяжёлые серверы Discord и так обычно получают собственные шарды).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *