Нина Пакшина
Нина Пакшина
  • Видео 10
  • Просмотров 18 878

Видео

Пишем kafka-продюсер на Go
Просмотров 46814 дней назад
Всем привет! Новое видео про продюсер в Kafka на языке Go. Используемая библиотека: github.com/confluentinc/confluent-kafka-go С/С библиотека, которая используется в Go: github.com/confluentinc/librdkafka Confluent Kafka 101: developer.confluent.io/courses/apache-kafka/events/
Углубляемся в горутины: истинная параллельность, цена легковесности и причем здесь сборщик мусора
Просмотров 1,6 тыс.2 месяца назад
Доклад на MTS True Tech Go, Лето в Кубе. 8 августа 2024 года. Как Golang взаимодействует с различными слоями среды исполнения? Сколько горутин можно и нужно запускать? В этом докладе я углубляюсь в механизмы многозадачности в Go. Рассмотриваем, как планировщик управляет горутинами, что делает их легковесными и как сборщик мусора влияет на их работу. Этот доклад будет полезен для тех, кто хочет ...
Синхронизация горутин с помощью errgroup
Просмотров 4713 месяца назад
В данном видео я рассказываю о библиотеке errgroup и паттерне многозадачности errgroup, который можно реализовать с ее помощью. Данный паттерн используется, если у нас есть задача, которую мы можем разбить на несколько независимых подзадач. И если хотя бы одна из подзадач завершилась с ошибкой, то исполнение других горутин также останавливаем.
Основные инструменты профилирования в Go
Просмотров 5163 месяца назад
Мини практикум по бенчмаркам и профилированию в Golang. Я рассказываю об основных инструментах (benchmark, benchstat, pprof, go tool), о том как запускать сбор данных, и как интерпретировать результат. Ссылка на репозиторий: github.com/PakshNina/profiling 1:29 - Инструменты 1:55 - Бенчмарки 5:27 - Сравнение бенчмарков 9:40 - Выгрузка профиля ЦПУ и Памяти из бенчмарков 11:34 - Работа с pprof чер...
Чего ожидать от HTTP/3 + Go
Просмотров 14 тыс.4 месяца назад
Видео трансляции с митапа Московского Клуба Программистов 22 мая 2024 года в Умном городе. В докладе рассказывается про HTTP/3 в контексте языка Go. 02:15 - Предубеждение 1: HTTP/2 кардинально отличается от HTTP/3 09:20 - Предубеждение 2: HTTP/3 поверх UDP, поэтому он ненадежен 14:20 - Предубеждение 3: HTTP/3 существеннее быстрее, чем HTTP/2 17:47 - HTTP/3 безопаснее HTTP/2 20:38 - Зачем исполь...
Как браузер знает, что отправлять серверу? О версиях HTTP на примере языка Go
Просмотров 3184 месяца назад
Доклад посвящен HTTP протоколу: как браузер знает, какую версию HTTP использовать? Что такое сокеты и как написать сырые сокеты на Go. Погружаемся в ньюансы сетевого взаимодействия клиента и сервера HTTP.
Управление памятью и сборщиком мусора в Go
Просмотров 5714 месяца назад
Мой доклад от 2023 года в Московском Клубе Программистов. Здесь рассказываю о том, как работает сборщик мусора, как им можно управлять с помощью GOGC и GOMEMLIMIT. 00:57 - Стек и куча 03:57 - Escape analysis 05:55 - Принцип работы сборщика мусора в Go 07:38 - Какие ресурсы потребляет сборщик мусора 08:28 - Stop the world 09:55 - Когда запускается сборщик мусора 11:00 - GOGC 16:12 - Куча в реаль...
Библиотека Unsafe в Golang
Просмотров 6974 месяца назад
В данном докладе я рассказываю о том, что такое библиотека unsafe в Go, как можно работать с указателями и основы адресной арифметики. Также расскажу о случаях, где можно применить unsafe.
Вокршоп по работе с Go, http/3 и стримами.
Просмотров 2065 месяцев назад
Вокршоп по работе с Go библиотекой quic-go, http/3 и стримами. Использую версию Go 1.22, версию quic-go 0.42.

Комментарии

  • @alexalex-jj2sy
    @alexalex-jj2sy День назад

    спасибо вам , но эта кафка самый настоящий ужас , даже просто собрать кластер что бы потестить нормально не работает , жаль что компании выбирают именно ее , nats в 100 раз лучше и не глючит , как эта кафка , надо быть супер ниндзя что бы собирать не глюченный кластер этой хваленной кафки это просто ужас !!!)

  • @Hanke1exe
    @Hanke1exe 15 дней назад

    Спасибо. всё понятно

  • @moscow_with_coffee
    @moscow_with_coffee 15 дней назад

    Есть ли ограничение на количество консьюмеров?

    • @PakshinaNina
      @PakshinaNina 15 дней назад

      Количество консьюмеров не должно быть больше количества партиций. Иначе нет смысла)

    • @moscow_with_coffee
      @moscow_with_coffee 15 дней назад

      @@PakshinaNina спасибо за ответ! ❤️

  • @dmitrykorolev4943
    @dmitrykorolev4943 17 дней назад

    Спасибо, Нина! С этими роликами будет проще пощупать Kafka, а то всё время использую RabbitMQ. А что будет если consumers больше чем partitions, но один из тех который обрабатывает в текущий момент по какой-то причине упадёт, тот что простаивает заменит его? Будет что-то типо горячей замены? Т.е не придётся ждать пока заного подымится упавший consumer, с этим же consumer number , а на его место станет простаивающий, но уже готовый к обработке.

    • @PakshinaNina
      @PakshinaNina 17 дней назад

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

  • @vlad_covers
    @vlad_covers 18 дней назад

    Очень в тему видео, как раз планировал попробовать кафку! Спасибо за понятное изложение)

  • @КоньЛюдоед-ф6ф
    @КоньЛюдоед-ф6ф 19 дней назад

    Большое спасибо

  • @igorsand2850
    @igorsand2850 19 дней назад

    Может вместо консьюмера повторим тоже самое с red panda? )

    • @PakshinaNina
      @PakshinaNina 19 дней назад

      Мне пришлось гуглить, что это! Интересно! Но я бы вначале хотела попробовать брокер сообщений NATS)

    • @ПавелМорозов-л8м
      @ПавелМорозов-л8м 19 дней назад

      @@PakshinaNina для натса печально все с web ui((

  • @suilinet1
    @suilinet1 19 дней назад

    Нина, привет! Спасибо за видео. Подскажи, а у тебя не было такой проблемы при работе с kafka ui: когда в топике много сообщений, становится невозможно посмотреть их все, при переходе на страницу 2, 3 и тд всегда отображаются данные 1-ой страницы.

    • @PakshinaNina
      @PakshinaNina 19 дней назад

      Привет! Да, тоже заметила такое, причем в последней версии. До этого вроде нормально было. Мы в проде используем kowl, но если честно в нем тоже были проблемы с отображением сообщений. Загугли статью «обзор ui инструментов kafka flant» на Хабре. Там рассказывают про различные инструменты ui для кафки.

  • @PakshinaNina
    @PakshinaNina 20 дней назад

    Таймкоды: 01:01 - разворачиваем тестовый кластер 04:04 - создаем продюсер 07:37 - конструктор продюсера 08:44 - настройки продюсера 10:35 - метод для отправки сообщений 15:52 - остановка продюсера 17:01 - отправляем сообщения в кафку 20:40 - топик в Кафке 22:30 - партиции, репликация и оффсет 24:38 - ключ сообщения 32:45 - timestamp

  • @yolonab3956
    @yolonab3956 20 дней назад

    Ждём консюмер, срочно!)

    • @PakshinaNina
      @PakshinaNina 20 дней назад

      Уже записано, осталось немного отредактировать :)

  • @L0wPressure
    @L0wPressure 20 дней назад

    Я sarama юзал, вроде тоже поддерживается, много звезд и полностью на гошке написана.

    • @PakshinaNina
      @PakshinaNina 20 дней назад

      Спасибо, тоже попробую поюзать!

  • @moscow_with_coffee
    @moscow_with_coffee 20 дней назад

    Спасибо за инфо! Полезности!

  • @user34user73
    @user34user73 20 дней назад

    О, кафка это актуально! Ждем приемьеры!

    • @PakshinaNina
      @PakshinaNina 20 дней назад

      Рада, если поможет!

  • @vitaliikutovoi9981
    @vitaliikutovoi9981 Месяц назад

    Очень доступно и по сути, спасибо!

  • @vitaliikutovoi9981
    @vitaliikutovoi9981 Месяц назад

    Спасибо за доклад, было познавательно и доступно.

  • @Disorrder
    @Disorrder 2 месяца назад

    3 дня пишу на го, делаю тестовое задание, вкусная вакансия попалась 😅 11 лет во фронтенде до этого. Тестовое я сделал, но интересно в чём основная сложность работы на бэкенде? Я так понимаю, только масштабирование, микросервисы и всё такое. Кто какие самые сложные задачи решал на го?

    • @PakshinaNina
      @PakshinaNina 2 месяца назад

      @@Disorrder везде свои сложности. Где-то нужно просто JSON перекладывать. Но нужно это делать очень быстро и используя только стандартные библиотеки (знаю такие системы). Где-то распределенные транзакции, с возможностью быстрого отката (например, онлайн ритейлеры). У меня самая сложная задача была - создать сервис обработки большого количества данных, которые я получала из разных систем, их нужно было нормировать, синхронизировать, обновлять в случае изменений. Где-то синхронно получала, данные, где-то асинхронно из очереди событий. На основе этих данных нужно было делать коммерческие расчеты. И все еще усложнялось практически отсутствующим ТЗ, задача была поставлена «сделай также как делают N вручную». А там на каждое расчетное поле скидывают SQL из 500 строк, и каждую неделю SQL менялся.

    • @Go-Devs
      @Go-Devs Месяц назад

      @@PakshinaNina после такого ответа чел обратно вернулся делать джастифай контент центр

  • @superuserg.n7983
    @superuserg.n7983 2 месяца назад

    хорошо систематизированы знания из теоретических статей по канкарренси в гошке, спасибо!

  • @CultureofSpeech
    @CultureofSpeech 2 месяца назад

    Жадность владельцев МТС на каком уровне сейчас интересно спросить

  • @PakshinaNina
    @PakshinaNina 2 месяца назад

    Доклад для Go Tech Meetup в МТС, 8 августа. Во время доклада я сильно переживала, поэтому не будьте слишком строги) Доклад получился больше теоретическим, чем практическим. ПС: у меня в последнее время нет моральных сил на троллей/негатив. Устала я очень. Поэтому негатив буду банить, заранее простите мои любимые токсики! Так-то я обычно вас люблю, но не сейчас 🫶

    • @GolangDeveloper-d9n
      @GolangDeveloper-d9n 2 месяца назад

      Спасибо за доклад, было познавательно

    • @golang-enjoer
      @golang-enjoer 2 месяца назад

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

    • @mrt24739
      @mrt24739 2 месяца назад

      Отличный доклад! Было интересно послушать <3

  • @lu5cn5ox6v5
    @lu5cn5ox6v5 2 месяца назад

    Ничего им не рассказывайте больше , а то снова начнут блокировать трафик

  • @eeenvyy
    @eeenvyy 2 месяца назад

    Нина как классно вы объясняете, какая четкая речь без эканий, идеально! Слушаю с большим интересом. Инженер со стажем )

    • @PakshinaNina
      @PakshinaNina 2 месяца назад

      @@eeenvyy добрый день, спасибо за позитивную обратную связь! Это мотивирует :)

  • @qerteuijbcfujg
    @qerteuijbcfujg 2 месяца назад

    На 17:42 интуиция сразу кричит, 0RTT это возможная дыра в безопасности в будущем! Но возможно я ошибаюсь)

    • @qerteuijbcfujg
      @qerteuijbcfujg 2 месяца назад

      а на 30:30 стало совсем страшно )

    • @PakshinaNina
      @PakshinaNina 2 месяца назад

      @@qerteuijbcfujg - у нас дыра в безопасности! - ну хоть что-то у нас в безопасности. На самом деле, с 0-rtt самая главная атака - это replay attack. То есть злоумышленник может «скопировать» и повторить запрос, который был сделан легитимным пользователем. Если это запрос страницы, то это одно. А если это операция по оплате, то уже серьезнее. Вообще браузер и так-то может задвоить запрос, само приложение должно быть устойчиво к двойным запросам. Запросы должны быть идемпотентны. А еще предлагают в качестве защиты принимать по 0-rtt только get запросы без query.

  • @Igor_melnikov
    @Igor_melnikov 2 месяца назад

    О, коллега) Автоматизация в зданиях естественным образом привела к Go)))

    • @PakshinaNina
      @PakshinaNina 2 месяца назад

      @@Igor_melnikov ха, кажется это естественный путь :)

  • @Mytest437
    @Mytest437 2 месяца назад

    На удивление, очень практичный и техничный доклад. Приятно удивлен. А то в последнее время на всяких конференциях много воды льют. Единственное жаль, что стрим выложили в качестве 720p. Для 2024 года уже немного старовато такое разрешение.

    • @PakshinaNina
      @PakshinaNina 2 месяца назад

      Стрим был в 1080, но при перезаливке ужалось. Я обычно с телефона смотрю или в миниатюрном плавающем окне, поэтому не задумывалась о высоком качестве. Буду иметь ввиду, что для некоторых это важно!

    • @Mytest437
      @Mytest437 2 месяца назад

      @@PakshinaNina Да, просто текст на картинках, насыщенных объемом технической информации читать приятно и четко когда хотя бы FullHD, а тут слегка все было замылено. Не то что принципиально, просто я подумал, что сейчас уже это не проблема для всех выкладывать в FullHD. Я как раз стрим смотрел на мониторе 43 дюйма) Спасибо.

  • @tertiumorganum5665
    @tertiumorganum5665 2 месяца назад

    блин мальчики задолбали со своим спермотоксикозом, представьте мужика на сцене! доклад слабый, на вопросы докладчик не отвечает, про практическую сторону не осведомлён и отправляет в доклад ОК.

  • @nelson5158
    @nelson5158 2 месяца назад

    Рассказываем о мире технологий, и ждём, когда подгрузится доклад....

    • @PakshinaNina
      @PakshinaNina 2 месяца назад

      @@nelson5158, снова смотрим видео в 144 :( Вот задумалась, куда можно дублировать видео, чтобы люди могли смотреть без тормозов.

    • @DJcRuT000
      @DJcRuT000 2 месяца назад

      слушают о мире технологий и не знают про впн...

    • @PakshinaNina
      @PakshinaNina 2 месяца назад

      @@DJcRuT000с впн не те ощущения))

  • @golang-enjoer
    @golang-enjoer 3 месяца назад

    Нина, спасибо тебе большое за доклад. Спасибо, что ты делишься знаниями. Крепко тебя обнимаю 😘

  • @КоньЛюдоед-ф6ф
    @КоньЛюдоед-ф6ф 3 месяца назад

    Нина отличный доклад) спасибо

  • @musicthreads
    @musicthreads 3 месяца назад

    Спасибо, очень грамотно и информативно!

  • @CultureofSpeech
    @CultureofSpeech 3 месяца назад

    Ваши глаза разве не болят от смотрения в мониторы ?

    • @vladislav_artyukhov
      @vladislav_artyukhov 3 месяца назад

      Большие мониторы - норм. Имел опыт ивентов

  • @hagbard8774
    @hagbard8774 3 месяца назад

    В джаве фреймворке есть библиотеки для http/3? Мне кажется Quarkus, Spring до сих пор ждут релиза netty 5.0.

  • @Арт1234-с3г
    @Арт1234-с3г 3 месяца назад

    Не знал про errorgroup, спасибо)

  • @nikolaykozlov4888
    @nikolaykozlov4888 3 месяца назад

    Огонь! Каждый ролик - всё по делу!

  • @JohnKekSex
    @JohnKekSex 3 месяца назад

    Огонь

  • @tatyana_nero
    @tatyana_nero 3 месяца назад

    О не знала о такой либе, спасибо!

  • @КонстантинТрегубов-ъ9ш

    Есть интересная реализация sourcegraph/conc, которая дополнительно умеет отлавливать паники в горутинах.

    • @PakshinaNina
      @PakshinaNina 3 месяца назад

      @@КонстантинТрегубов-ъ9ш спасибо, посмотрю!!

  • @unicoxr5tj417
    @unicoxr5tj417 3 месяца назад

    ставим кодерше лайк. Большая редкость, да и еще на Голанг

    • @PakshinaNina
      @PakshinaNina 3 месяца назад

      @@unicoxr5tj417 это я пока аудиторию набираю, потом буду снимать видео про ноготки 💅 (шутка)

    • @unicoxr5tj417
      @unicoxr5tj417 3 месяца назад

      @@PakshinaNina ноготки-норм тема. У мну в городе одна девчонка лет 40 дошла от ноготочков, до своего солону красоты)

    • @DimaTiunov
      @DimaTiunov 3 месяца назад

      да брось их много, просто как и почти все айтишники они скромники-интроверты

    • @unicoxr5tj417
      @unicoxr5tj417 3 месяца назад

      @@DimaTiunov не, мало

  • @L0wPressure
    @L0wPressure 3 месяца назад

    Коллега, тоже промышленная автоматизация -> веб-разработка.

    • @PakshinaNina
      @PakshinaNina 3 месяца назад

      @@L0wPressure, коллеги! С чем работал: siemens, wago, fastwel? :)

    • @L0wPressure
      @L0wPressure 3 месяца назад

      @@PakshinaNina GE Fanuc, Trei, Тэкон и немного с Siemens :)

    • @PakshinaNina
      @PakshinaNina 3 месяца назад

      @@L0wPressure из перечисленных только Тэкон знаю (ну и сименс) :)

    • @L0wPressure
      @L0wPressure 3 месяца назад

      @@PakshinaNina их слишком много, чтобы все знать, да и ни к чему. Но GE достаточно активно до 14 года использовались, пока не началось импортозамещение :)

  • @mikhailm.887
    @mikhailm.887 3 месяца назад

    В строчках типа headerSize := unsafe.Offsetof(pdu.ByteCounut) + unsafe.Sizeof(pdu.ByteCount) есть какой-то смысл привязываться к последнему полю в структуре, или можно написать просто headerSize := unsafe.Sizeof(pdu) ?

    • @mikhailm.887
      @mikhailm.887 3 месяца назад

      А, понял, висячий байт останется

    • @PakshinaNina
      @PakshinaNina 3 месяца назад

      @@mikhailm.887да, все верно :)

  • @Hanke1exe
    @Hanke1exe 3 месяца назад

    Классный доклад! Жаль, что не смог прийти на митап...

  • @Hanke1exe
    @Hanke1exe 3 месяца назад

    Спасибо за видео!

  • @bsprspktvnk
    @bsprspktvnk 3 месяца назад

    спасибо. было бы интересно послушать про оптимизации, уменьшению аллокаций

    • @PakshinaNina
      @PakshinaNina 3 месяца назад

      Добрый день, про escape analysis и аллокации есть немного в докладе про сборщик мусора, посмотрите по таймкодам.

  • @egorshiryaev6058
    @egorshiryaev6058 3 месяца назад

    Спасибо Нина, очень интересный доклад, спасибо что выложила в сеть!😊

    • @egorshiryaev6058
      @egorshiryaev6058 3 месяца назад

      Подскажите, Чем мультиплескирование в http2, отличается от мультиплескирования в http3? Вопрос исходит из проблемы HOL, которая есть в http2, хотя вроде как мультиплескирование должно её решать, а в http3 она решена...

    • @IlyaDenisov
      @IlyaDenisov 3 месяца назад

      ​@@egorshiryaev6058 Дисклеймер: я не специалист по теме, исхожу из своего (возможно неверного) понимания лекции. http2 построен поверх tcp и обработка ситуаций с потерянными пакетами делается на этом уровне (TCP), который про мултиплексирование (происходящее на уровне выше) не знает, и ничего лучше, чем всё заморозить, пока не пропихнётся потерянный покет (соственно HOL-ситуация), не может придумать. А в http3, всё это происходит на том уровне, который знает про мультиплексирование, а значит может другие "каналы" в рамках мультиплекса обрабатывать независимо, подмораживая (если это вообще необходимо, например datagram режиму такое и вовсе ни к чему) только тот, в котором была потеря.

  • @tatyana_nero
    @tatyana_nero 3 месяца назад

    Привет, спасибо за доклад! Подскажи, как влияет на прод профилирование в режиме онлайн? Может ли он дать серьезную нагрузку? Это безопасно для прода?

    • @PakshinaNina
      @PakshinaNina 3 месяца назад

      Да, разработчики утверждают, что pprof использует дополнительную нагрузку в 5% для профилирования ЦП и кучи. Поэтому pprof безопасно использовать в продакшене с точки зрения потребления ресурсов. С точки зрения безопасности другой вопрос: у вас в продакшене будет запущен еще один экземпляр сервера какой-то «левой» библиотеки, и это уже нужно обсуждать с вашей службой безопасности (а с ними всегда непросто :))

    • @tatyana_nero
      @tatyana_nero 3 месяца назад

      @@PakshinaNina спасибо за ответ!

  • @СергейМихайличенко-х7ш

    Спасибо за доклад! Так много и подробно по теме в одном месте, да еще и с примерами - идеально!

  • @markshevchenko
    @markshevchenko 3 месяца назад

    Глубоко и познавательно. Нина потратила много сил и времени на подготовку.

  • @ДенисЯкушев-в6к
    @ДенисЯкушев-в6к 3 месяца назад

    Супер, спасибо! Пока мало информации по HTTP/3 в Go, спасибо за иследование!

  • @Hanke1exe
    @Hanke1exe 3 месяца назад

    О, класс! Как раз искал доклад по этой теме. Спасибо

  • @vova_dev
    @vova_dev 4 месяца назад

    Структурированный доклад! Есть последовательный рассказ, сравнение версий, приятная подача. В том числе освещены тонкости - проблема http1/2 Head-Of-Line, сам quic! Сделано качественно, спасибо!