2 - Domain driven design
57:25
2 жыл бұрын
Пікірлер
@user-dk9jr4vm7w
@user-dk9jr4vm7w 6 күн бұрын
Топ!
@tsc472
@tsc472 7 күн бұрын
Когда-то разбирался с этим вопросом, понял эту теорему совсем по-другому: 1) partitioning tolerance - это свойство переживать разрыв сети. Разрыв сети - это когда все узлы работают, но между ними возник split brain, который потом полечился. Да, сеть имеет свойство пропадать, поэтому распрелеленные системы не способные пережить разрыв сети нам не интересны. 2) availability - это способность сохранять работоспособность пока работает хотя бы один узел 3) consistency - это когда система возвращает одинаковый ответ на одинаковый запрос, независимо от узла, к которому обращаются. И раз P нужна всегда, то речь может идти о CP системах и AP системах. CP - это когда запись в одну ноду сразу дублируется во все ноды. Она не может быть available, т. к. если часть нод временно не ответит, то система должна прекратить обслуживать запросы (иначе с неответившей ноды могут прилететь неконсистентные данные) AP - это большая часть nosql субд: система будет отвечать "до последнего", но иногда данные могут быть устаревшими т. к. мы не синхронизируемся в момент записи и допускаем чтение когда часть нод лежит. На самом деле CA систему тоже можно представить: это зеркало их 2-х реляционных субд с двумя мастерами и синхронной репликацией. Все будет консистентно, умершая нода потом сможет накатить лог транзакций с живой и восстановиться, но вот split brain (когда ноды потеряли связь и продолжили работать не зная что вторая нода жива и тоже что-то пишет) эта схема не переживет.
@sukhoa
@sukhoa 7 күн бұрын
Split brain это как раз таки не описание состояния partitioning tolerance, а описание partitioning tolerance и точно неконсистентных систем. Если кластер, скажем, поделился на две части и при этом смог выбрать лидера с обеих сторон и решить, что теперь он будет работать, как два независимых кластера. Availability - это не просто способность сохранять работоспособность пока работает хотя бы один узел, а обслуживать любые запросы на любой из нод кластера. Суть в том, что большинство статей описывают вообще не CAP теорему, а просто "в какую стороную больше склоняется система", быть доступной или быть консистентной в присутствии разрыва сети. Я прикладывал в описании конкретные работы, где вводилось понятие CAP теоремы, это академические работы, можете ознакомиться с ними, как с первоисточником.
@user-hi7yk5iv7j
@user-hi7yk5iv7j 23 күн бұрын
Очень познавательно, спасибо!
@user-hi7yk5iv7j
@user-hi7yk5iv7j Ай бұрын
Очень понятное объяснение, спасибо)
@Denis-sds
@Denis-sds Ай бұрын
СОМНИТЕЛЬНО, но окэй
@levaryazan
@levaryazan Ай бұрын
Отличное видео! Сейчас разбираюсь с метриками, очень такого не хватало.
@user-qv3hd5nq1l
@user-qv3hd5nq1l Ай бұрын
Крутая лекция, спасибо! Из слайда, объясняющего работу WAL, осталось не очень понятно, что произойдёт, если отключится питание в момент, когда мы записали файл-сегмент с отсортированными данными из in-memory structure, но не успели подать команду discard offer flush. Получается WAL у нас останется заполненным после восстановления? Не произойдёт ли дублирования сегмента?
@YuriySamorodov
@YuriySamorodov Ай бұрын
Отличный разбор. Спасибо! А разве репликация и наличие нескольких нод не подразумевает наличия сети, и соответственно, не допускает ее разделения (сегментации)?
@sukhoa
@sukhoa 7 күн бұрын
спасибо) Да, конечно, любая система, где между узлами пролегает сеть является распределенной и, конечно, предполагает ситуация разрыва сети.
@HideDJeker
@HideDJeker Ай бұрын
100 партиций на топик это конечно сильно и универсально, такое количество вероятно в любом кластере сделает меньший перформанс - каждая партиция файловый дескриптор, каждая партиция это усложнение этапа ребаланса, увеличивать партиции - норма, и да кафка ничего не сделает, обычно просто предупреждают и потом убеждаются что консюмер группы дошли до конца, а кто нет - его проблемы. К универсальному запасу в 100 и возможному экспоненциальному приросту нагрузки заранее невозможно подготовиться, в теории и со 100 партиций может придется апскейлится, если так страшно - то вы можете перелить данные в новый топик с новым количеством партиций.
@sukhoa
@sukhoa Ай бұрын
Забыл поместить ссылку на курс :) Вот она - it-es-course.getcourse.ru/main. Мои мини-курсы можно увидеть на степике stepik.org/a/202085 и udemy - www.udemy.com/user/andrei-sukhovitskii/
@timurbaburin8668
@timurbaburin8668 2 ай бұрын
Где комментарий
@user-xz6mo6wn4d
@user-xz6mo6wn4d 2 ай бұрын
34:17 "Разобраться с Кибаной - это, наверное, минут 20 составит". Такой смешной лектор. Такие шутки отпускает - ухохочешься. Пусть идет за 20 минут KQL изучит. Приду - проверю.
@user-xz6mo6wn4d
@user-xz6mo6wn4d 2 ай бұрын
Это студенты первого-второго курсов?
@cbrnt4157
@cbrnt4157 3 ай бұрын
Кто писал кафку, с вики: Kafka was originally developed at LinkedIn, and was subsequently open sourced in early 2011. Jay Kreps, Neha Narkhede and Jun Rao helped co-create Kafka.
@user-ik4xd8fs8f
@user-ik4xd8fs8f 3 ай бұрын
Огонь. Пошел смотреть новую версию по метрикам.
@alext6083
@alext6083 5 ай бұрын
Вы забыли упомянуть, что: 1 нужно решать вопрос консистентности, пока финалтная маленькая транзакция не закомичена, система находится в неконсистентном состоянии, и нужно уметь с зтим жить. 2 процесс отката маленьких транзакций иакде может обломаться, это собственно коррелирует с первыми вопросом. И с жтим также нужно уметь жить.
@alexshavlovsky7922
@alexshavlovsky7922 5 ай бұрын
Распространенные бизнес ошибки - ошибка десериализации или валидации. распространеные технические ошибки - ошибки ввода/вывода при коммуникации с низлежащими сервисами, недоступность низлежащих сервисов, сетевые ошибки типа 502/503/504
@user-ur7bn1kd1p
@user-ur7bn1kd1p 5 ай бұрын
Размазали видео почти на час, много воды (верю, что это препод из универа). Лучше идти по сценарию интервью и придерживаться ему.
@mamonov01
@mamonov01 5 ай бұрын
Андрей, можете сказать пожалуйста название и модель вашего планшета?)
@sukhoa
@sukhoa 5 ай бұрын
Да, конечно. Это Huion GT-133. Не могу его сильно рекомендовать, основная претензия в том, что у него довольно странный адаптер, который после нескольких месяцев использования разболтался, что приводит к отключению питания планшета переодически. В остальном неплох.
@jukovb111
@jukovb111 5 ай бұрын
блиии максимально просто максимально кратко но максимально непонятно :) может на курсе расскажете?
@sukhoa
@sukhoa 5 ай бұрын
:) расскажу, конечно!
@applemodus
@applemodus 6 ай бұрын
Спасибо за лекцию
@applemodus
@applemodus 6 ай бұрын
Спасибо за лекцию
@applemodus
@applemodus 6 ай бұрын
Спасибо за лекцию
@applemodus
@applemodus 6 ай бұрын
Спасибо за лекцию
@1apaladin
@1apaladin 6 ай бұрын
29:36 В графане есть версионирование бордов! Вкладка Versions в настройках самой борды
@applemodus
@applemodus 6 ай бұрын
Спасибо за лекцию
@applemodus
@applemodus 6 ай бұрын
Спасибо за лекцию
@applemodus
@applemodus 6 ай бұрын
Спасибо за лекцию
@a.krugliak
@a.krugliak 6 ай бұрын
я бы добавил ребятам redpanda еще как аналог кроля когда еще как не в студенчестве делать тесты и сравнения)
@applemodus
@applemodus 6 ай бұрын
Спасибо за лекцию
@applemodus
@applemodus 6 ай бұрын
Спасибо за лекцию
@applemodus
@applemodus 6 ай бұрын
Спасибо за лекцию
@applemodus
@applemodus 6 ай бұрын
Спасибо за лекцию
@applemodus
@applemodus 6 ай бұрын
Спасибо за лекцию
@applemodus
@applemodus 6 ай бұрын
Спасибо за лекцию
@alexricher2554
@alexricher2554 6 ай бұрын
Посмотрел на одном дыхании) Будучи джуном, пытался залететь на сеньора и мне задавали аналогичные вопросы. Теперь я более опытен, но все равно не знаю как подать некоторые вещи на собеседовании. А тут все довольно круто изложено и аргументировано: Андрей - вы очень крутой преподаватель и разработчик)
@yevhendatsenko9989
@yevhendatsenko9989 7 ай бұрын
первый вопрос дичь. Деньги хранятся в виде дебита и кредита
@user-td6vu1hh3y
@user-td6vu1hh3y 7 ай бұрын
Очень много воды, отвечал бы по сути уважаемый
@cleverscript
@cleverscript 7 ай бұрын
Подскажите а как получить количество запросов в секунду т.е RPS верный ли такой запрос? sum by(vhost)(rate(allnginx_http_response_count_total{}[60s])) / 60
@sukhoa
@sukhoa 7 ай бұрын
На самом деле вижу, что в вашем запросе используется функция rate и одновременно вы производите деление на 60, видимо, чтобы получить per second. prometheus.io/docs/prometheus/latest/querying/functions/#rate функция rate уже делает за вас по сути increate{..}[60s] / 60. Так что точно либо rate, либо 60 лишнее :)
@a1dwow
@a1dwow 8 ай бұрын
Андрей, а как вы рисуете, можете подробнее рассказать, у вас открыта программа Sketchbook на Mac, но рисуете как будто на другом устройстве
@sukhoa
@sukhoa 7 ай бұрын
Добрый день! Да, все верно, я рисую в Sketchbook, но на графическом планшете
@manOfPlanetEarth
@manOfPlanetEarth 5 ай бұрын
@@sukhoa графический планшет? айпад что ли?
@user-hn3wk8wh9h
@user-hn3wk8wh9h 8 ай бұрын
Классные лекции, очень много интересной информации, рассказывается живо. Но вот студенты совсем какие-то деревянные. Но, возможно, они просто ещё не понимают, что происходит
@AB-ku1su
@AB-ku1su 8 ай бұрын
Где микросервисы , что за вода
@user-fq4pc7fm2z
@user-fq4pc7fm2z 8 ай бұрын
а можно не на белом фоне слайды?
@victorpanchuk1824
@victorpanchuk1824 8 ай бұрын
ну и муть
@smilesrg
@smilesrg 7 ай бұрын
та чего, в банковских системах такое используется
@user-jx3gu1nn7s
@user-jx3gu1nn7s 8 ай бұрын
Спасибо
@user-jx3gu1nn7s
@user-jx3gu1nn7s 8 ай бұрын
Спасибо
@user-jx3gu1nn7s
@user-jx3gu1nn7s 8 ай бұрын
Спасибо
@user-jx3gu1nn7s
@user-jx3gu1nn7s 8 ай бұрын
Спасибо
@dylanweinholt4978
@dylanweinholt4978 9 ай бұрын
*Promo sm*
@user-fh4fc9om3k
@user-fh4fc9om3k 9 ай бұрын
10:05 нам не важна реализация метода println(), потому что ему передается один аргумент, то что получится в результате выполнения выражения "123" + s. Если метод вызывается, то всегда сначала будут вычислены аргументы. Из за этого например когда мы передаем в метод Optional.orElse() выражение или вызов другого метода, то это выражение или метод будут выполнены в любом случае. Строка: String s = "123" + null; не является ошибочной, потому что так устроена конкатенация