== The Magical Disappearing Square
https://youtu.be/7iSZ4rPycS0
https://youtu.be/7iSZ4rPycS0
YouTube
The Magical Disappearing Square
I’m a high school mathematics teacher from Sydney, Australia and I recorded this video in my regular classroom. Find out more here: https://youtu.be/r2wtesw2J7Q
I really love using geometry to teach mathematical ideas - here’s my demonstration of Pythagoras’…
I really love using geometry to teach mathematical ideas - here’s my demonstration of Pythagoras’…
== But what is the Fourier Transform? A visual introduction.
https://youtu.be/spUNpyF58BY
про центр масс как частоту вообще шикарно обяснено
https://youtu.be/spUNpyF58BY
про центр масс как частоту вообще шикарно обяснено
YouTube
But what is the Fourier Transform? A visual introduction.
An animated introduction to the Fourier Transform.
Help fund future projects: https://www.patreon.com/3blue1brown
An equally valuable form of support is to simply share some of the videos.
Special thanks to these supporters: http://3b1b.co/fourier-thanks…
Help fund future projects: https://www.patreon.com/3blue1brown
An equally valuable form of support is to simply share some of the videos.
Special thanks to these supporters: http://3b1b.co/fourier-thanks…
Forwarded from Пятиминутка PHP
Иногда я задаюсь вопросом: почему мы продолжаем писать бизнес-приложения на PHP с бексконечными CRUD/REST. Почему бы не взять Low-code/No-code систему типа Airtable или Fibery? Вот почему (картинка):
== Архитектурные стили
https://youtu.be/8DHO85Pqx9Y
- монолит
- микросервисы
- сервис ориентированная
- многоуровневая
- шестигранная
масштабирование
- путем клонирования (один балансер, несколько копий приложения)
- путем секционирования данных (маршрутизатор, несколько экземпляров). АЛЯ шардирование
- путем разбиения приложения на сервисы (распределение запросов на разные сервисы)
разбиение на сервисы:
- по бизнес возможностям
- по проблемным областям
Многоуровневый стиль
- представление
- бизнес логика
- хранение данных
Гегксагональный стиль
- бизнеслогика
- входящие/исходящие адаптеры
- интерфейсы
https://youtu.be/8DHO85Pqx9Y
- монолит
- микросервисы
- сервис ориентированная
- многоуровневая
- шестигранная
масштабирование
- путем клонирования (один балансер, несколько копий приложения)
- путем секционирования данных (маршрутизатор, несколько экземпляров). АЛЯ шардирование
- путем разбиения приложения на сервисы (распределение запросов на разные сервисы)
разбиение на сервисы:
- по бизнес возможностям
- по проблемным областям
Многоуровневый стиль
- представление
- бизнес логика
- хранение данных
Гегксагональный стиль
- бизнеслогика
- входящие/исходящие адаптеры
- интерфейсы
== УСКОРЬ СВОЙ КОД В МИЛЛИОН РАЗ | РЕКУРСИЯ | АЛГОРИТМЫ
https://youtu.be/cyIw3NKfdGw
- рекурсия
- полиндром
- рекурсия и стек
- факториал
- переполнение стека
- обход дерева
- виды рекурсии
- фибоначи
- проблемы рекурсии
- динамическое программирование
- эмуляция стека
проблемы:
- нехватка места на стеке
- нехватка времени в жизни
любой алгоритм можно сделать итеративным
динамическое программирование
= memoization (кэширование)
= tabulation (отказ от рекурсии). работа от листиков к корню. сохраняя все собранные значения
эмуляция стэка - позволяет переписать все на итерации.
https://youtu.be/cyIw3NKfdGw
- рекурсия
- полиндром
- рекурсия и стек
- факториал
- переполнение стека
- обход дерева
- виды рекурсии
- фибоначи
- проблемы рекурсии
- динамическое программирование
- эмуляция стека
проблемы:
- нехватка места на стеке
- нехватка времени в жизни
любой алгоритм можно сделать итеративным
динамическое программирование
= memoization (кэширование)
= tabulation (отказ от рекурсии). работа от листиков к корню. сохраняя все собранные значения
эмуляция стэка - позволяет переписать все на итерации.
== Паттерны CQRS и Event Sourcing
https://bool.dev/blog/detail/pattern-cqrs-i-event-sourcing
== Основы CQRS
https://habr.com/ru/company/simbirsoft/blog/329970/
== Типы CQRS
https://habr.com/ru/post/268627/
Тип 0: без CQRS
Тип 1: отдельная иерархия классов
Тип 2: отдельные модели
Тип 3: раздельное хранилище
== Как мы попробовали DDD, CQRS и Event Sourcing и какие выводы сделали
https://habr.com/ru/post/313110/
DDD. Выводы
1. ОЧЕНЬ дорого
2. Работает хорошо в устоявшихся бизнес-процессах
3. Иногда – это единственный способ сделать то, что нужно
4. Плохо масштабируется
5. Сложно реализовать в высоконагруженных приложениях
6. Плохо работает в стартапах
7. Не подходит для построения отчетов
8. Требует особого внимания с ORM
9. Слова Entity лучше избегать, потому что его все понимают по-своему
10. С LINQ стандартная реализация Specification «не работает»
CQRS основные выводы
1. Event Sourcing требует CQRS, но не наоборот
2. Дешево
3. Подходит везде
4. Масштабируется
5. Не требует 2 хранилища данных. Эта одна из возможных реализаций, а не обязаловка
6. Обработчик команды может возвращать значение. Если не согласны спорьте с Грегом Янгом и Дино Эспозито, а не со мной
7. Если обработчик возвращает значение он хуже масштабируется, однако есть async/await, но надо понимать как они работают
Мы договорились о том, что:
1. Query всегда только получает данные, но не изменяет состояние системы. Для изменения системы используются команды
2. Query могут возвращать необходимые проекции на прямую, в обход доменной модели
== Введение в CQRS + Event Sourcing: Часть 1. Основы
https://habr.com/ru/post/146429/
== Введение в CQRS + Event Sourcing: Часть 2
https://habr.com/ru/post/149464/
== Command and Query Responsibility Segregation (CQRS) на практике
https://blog.byndyu.ru/2014/07/command-and-query-responsibility.html
https://bool.dev/blog/detail/pattern-cqrs-i-event-sourcing
== Основы CQRS
https://habr.com/ru/company/simbirsoft/blog/329970/
== Типы CQRS
https://habr.com/ru/post/268627/
Тип 0: без CQRS
Тип 1: отдельная иерархия классов
Тип 2: отдельные модели
Тип 3: раздельное хранилище
== Как мы попробовали DDD, CQRS и Event Sourcing и какие выводы сделали
https://habr.com/ru/post/313110/
DDD. Выводы
1. ОЧЕНЬ дорого
2. Работает хорошо в устоявшихся бизнес-процессах
3. Иногда – это единственный способ сделать то, что нужно
4. Плохо масштабируется
5. Сложно реализовать в высоконагруженных приложениях
6. Плохо работает в стартапах
7. Не подходит для построения отчетов
8. Требует особого внимания с ORM
9. Слова Entity лучше избегать, потому что его все понимают по-своему
10. С LINQ стандартная реализация Specification «не работает»
CQRS основные выводы
1. Event Sourcing требует CQRS, но не наоборот
2. Дешево
3. Подходит везде
4. Масштабируется
5. Не требует 2 хранилища данных. Эта одна из возможных реализаций, а не обязаловка
6. Обработчик команды может возвращать значение. Если не согласны спорьте с Грегом Янгом и Дино Эспозито, а не со мной
7. Если обработчик возвращает значение он хуже масштабируется, однако есть async/await, но надо понимать как они работают
Мы договорились о том, что:
1. Query всегда только получает данные, но не изменяет состояние системы. Для изменения системы используются команды
2. Query могут возвращать необходимые проекции на прямую, в обход доменной модели
== Введение в CQRS + Event Sourcing: Часть 1. Основы
https://habr.com/ru/post/146429/
== Введение в CQRS + Event Sourcing: Часть 2
https://habr.com/ru/post/149464/
== Command and Query Responsibility Segregation (CQRS) на практике
https://blog.byndyu.ru/2014/07/command-and-query-responsibility.html
bool.dev
Паттерны CQRS и Event Sourcing
В этой статье описываем что такое паттерны CQRS и Event Sourcing
== CRDT: Conflict-free Replicated Data Types
https://habr.com/ru/post/418897/
Strong consistency (SC): все операции записи строго упорядочены, запрос на чтение на любой реплике возвращает одинаковый, последний записанный результат. Необходим консенсус в реальном времени для разрешения конфликтов (с вытекающими последствиями), выдерживает падение до n/2 — 1 нод.
Eventual consistency (EC): обновляем данные локально, рассылаем обновление дальше. Чтение на разных репликах может вернуть устаревшие данные. В случае конфликтов либо откатываем, либо как-то решаем, что делать. Т.о. консенсус всё ещё необходим, но уже не в реальном времени.
Strong eventual consistency (SEC): EC + для разрешения конфликтов у реплик есть заранее определённый алгоритм. Т.о. консенсус не нужен, выдерживает падение до n — 1 нод.
Модели синхронизации
- State-based (реплики обмениваются состояниями, принимающая реплика сливает (merge) полученное состояние со своим текущим состоянием.) = мы можем терять сообщения с новым состоянием, отправлять их несколько раз, и даже отправлять в любом порядке.
- Operation-based (реплики обмениваются операциями обновления состояния.)
- Delta-based (если обновление изменяет только часть состояния, то нет смысла пересылать состояние целиком, а также если большое количество изменений затрагивает одно состояние (например, счётчик), то можно выслать одно, агрегированное изменение, а не все операции изменения.)
- Pure operation-based (чистая синхронизация операциями)
бесконфликтные типы:
- Counter
- Last-Write-Wins Register (LWW) (Вводим полный порядок через генерацию уникальных id на каждую операцию (timestamp, например).)
- Multi-Value Register, MV-Register (Подход похож на G-счётчик — храним набор (значение, вектор версий). Значение регистра — все значения, при слиянии — LWW по отдельности на каждое значение в векторе.)
- Grow-Only Set, G-Set (Самое простое решение — запретить удалять элементы. Остаётся только операция add, которая коммутативна. Функция слияния — объединение множеств.)
- 2P-Set (Двухфазное множество. Разрешаем удалять, но после удаления добавить ещё раз нельзя. )
- LWW-element Set (генерация уникальных timestamp для каждого элемента. Заводим два множества — add-set и remove-set, при вызове add() добавляем (element, unique_id()), при проверке есть ли элемент в множестве — смотрим где timestamp больше — в remove-set или в add-set)
- PN-Set (— на каждый элемент заводим счётчик, при добавлении — увеличиваем, при удалении — уменьшаем. Элемент находится в множестве, если его счётчик положителен.)
- Observe-Remove Set, OR-Set, Add-Win Set (add имеет приоритет над remove)
- Remove-win Set (при одновременном add/rmv выигрывает rmv.)
- 2P2P-Graph (строится на освное двух 2P-Set. один для вершин, второй для ребёр)
- Map of literals
- Map of CRDTs
== Репликация без конфликтов: CRDT в теории и на практике
https://habr.com/ru/post/272987/
CRDT решает обеспечением strong eventual consistency (SEC) и монотонности состояний.
Полурешётка — это полугруппа, бинарная операция в которой коммутативна и идемпотентна
Полурешётка — частично упорядоченное множество: элементы (не обязательно все) связаны отношением «следует за».
Operational Transformation — подход, применяемый обычно в редактировании текста. Оба подхода обеспечивают консистентность (EC). У OT более высокие требования к серверу, более сложные и менее стабильные алгоритмы. Также, в некоторых исследованиях показано, что алгоритмы OT иногда не сходятся (converge), как это заявлено в реализации. Однако однозначно сделать выбор и сказать, «что лучше», нельзя.
== Я был неправ. Будущее за CRDT
https://habr.com/ru/company/dcmiran/blog/521288/
https://habr.com/ru/post/418897/
Strong consistency (SC): все операции записи строго упорядочены, запрос на чтение на любой реплике возвращает одинаковый, последний записанный результат. Необходим консенсус в реальном времени для разрешения конфликтов (с вытекающими последствиями), выдерживает падение до n/2 — 1 нод.
Eventual consistency (EC): обновляем данные локально, рассылаем обновление дальше. Чтение на разных репликах может вернуть устаревшие данные. В случае конфликтов либо откатываем, либо как-то решаем, что делать. Т.о. консенсус всё ещё необходим, но уже не в реальном времени.
Strong eventual consistency (SEC): EC + для разрешения конфликтов у реплик есть заранее определённый алгоритм. Т.о. консенсус не нужен, выдерживает падение до n — 1 нод.
Модели синхронизации
- State-based (реплики обмениваются состояниями, принимающая реплика сливает (merge) полученное состояние со своим текущим состоянием.) = мы можем терять сообщения с новым состоянием, отправлять их несколько раз, и даже отправлять в любом порядке.
- Operation-based (реплики обмениваются операциями обновления состояния.)
- Delta-based (если обновление изменяет только часть состояния, то нет смысла пересылать состояние целиком, а также если большое количество изменений затрагивает одно состояние (например, счётчик), то можно выслать одно, агрегированное изменение, а не все операции изменения.)
- Pure operation-based (чистая синхронизация операциями)
бесконфликтные типы:
- Counter
- Last-Write-Wins Register (LWW) (Вводим полный порядок через генерацию уникальных id на каждую операцию (timestamp, например).)
- Multi-Value Register, MV-Register (Подход похож на G-счётчик — храним набор (значение, вектор версий). Значение регистра — все значения, при слиянии — LWW по отдельности на каждое значение в векторе.)
- Grow-Only Set, G-Set (Самое простое решение — запретить удалять элементы. Остаётся только операция add, которая коммутативна. Функция слияния — объединение множеств.)
- 2P-Set (Двухфазное множество. Разрешаем удалять, но после удаления добавить ещё раз нельзя. )
- LWW-element Set (генерация уникальных timestamp для каждого элемента. Заводим два множества — add-set и remove-set, при вызове add() добавляем (element, unique_id()), при проверке есть ли элемент в множестве — смотрим где timestamp больше — в remove-set или в add-set)
- PN-Set (— на каждый элемент заводим счётчик, при добавлении — увеличиваем, при удалении — уменьшаем. Элемент находится в множестве, если его счётчик положителен.)
- Observe-Remove Set, OR-Set, Add-Win Set (add имеет приоритет над remove)
- Remove-win Set (при одновременном add/rmv выигрывает rmv.)
- 2P2P-Graph (строится на освное двух 2P-Set. один для вершин, второй для ребёр)
- Map of literals
- Map of CRDTs
== Репликация без конфликтов: CRDT в теории и на практике
https://habr.com/ru/post/272987/
CRDT решает обеспечением strong eventual consistency (SEC) и монотонности состояний.
Полурешётка — это полугруппа, бинарная операция в которой коммутативна и идемпотентна
Полурешётка — частично упорядоченное множество: элементы (не обязательно все) связаны отношением «следует за».
Operational Transformation — подход, применяемый обычно в редактировании текста. Оба подхода обеспечивают консистентность (EC). У OT более высокие требования к серверу, более сложные и менее стабильные алгоритмы. Также, в некоторых исследованиях показано, что алгоритмы OT иногда не сходятся (converge), как это заявлено в реализации. Однако однозначно сделать выбор и сказать, «что лучше», нельзя.
== Я был неправ. Будущее за CRDT
https://habr.com/ru/company/dcmiran/blog/521288/
Хабр
CRDT: Conflict-free Replicated Data Types
Как считать хиты страницы google.com? А как хранить счётчик лайков очень популярных пользователей? В этой статье предлагается рассмотреть решение этих задач с помощью CRDT (Conflict-free Replicated...
АААА. замечательная статья. все понятия достаточно хорошо разьяснены... где ты была раньше блиН ?!?!
== Консистентно о Консенсусе
https://habr.com/ru/company/timeweb/blog/575136/
консистентности или согласованности— логическая непротиворечивость хранимых данных.
Консенсус — это согласие группы участников касательно значения некоторого состояния.
Пессимистичная блокировка — сначала участник запирает ресурс, затем производит его обновление, по завершении которого ресурс отпирается. Это если ему повезло прийти первым. Если же он пришёл, а ресурс уже кем-то заперт, то он сидит, ничего не делает, и ждёт его отпирания.
Смертельное запирание — когда два участника успешно запирают два разных ресурса, а потом блокируются при попытке запереть ресурс уже запертый оппонентом.
Оптимистичная блокировка — участник сначала готовит новое состояние, а потом атомарно применяет его к источнику истины. Если повезёт. А если не повезёт, и кто-то успеет раньше него, то вся проделанная работа выкидывается, и начинается заново. Висеть в таком цикле участник может неограниченно долго.
Упорядоченная сходимость = Operational Transformation — после слияния всех изменений каждым участником, любой из них должен получить одну и ту же цепочку изменений, что даст им одно и то же финальное состояние. То есть конвергенцию.
Полу-упорядоченная сходимость = CmRDT: Conflict-free Commutative Replicated Data Type — изменения от одного участника применяются лишь в том же порядке, в котором этот участник их вносил. А вот изменения разных участников можно переставлять друг относительно друга как угодно, но результат будет одинаковым.
Беспорядочная сходимость = CvRDT: Conflict-free Convergent Replicated Data Type — изменения могут приходить в произвольном порядке, могут дублироваться, а могут и вообще потеряться, но последующие изменения всё же обеспечат конвергенцию.
CROWD — CvRDT нового поколения
== Консистентно о Консенсусе
https://habr.com/ru/company/timeweb/blog/575136/
консистентности или согласованности— логическая непротиворечивость хранимых данных.
Консенсус — это согласие группы участников касательно значения некоторого состояния.
Пессимистичная блокировка — сначала участник запирает ресурс, затем производит его обновление, по завершении которого ресурс отпирается. Это если ему повезло прийти первым. Если же он пришёл, а ресурс уже кем-то заперт, то он сидит, ничего не делает, и ждёт его отпирания.
Смертельное запирание — когда два участника успешно запирают два разных ресурса, а потом блокируются при попытке запереть ресурс уже запертый оппонентом.
Оптимистичная блокировка — участник сначала готовит новое состояние, а потом атомарно применяет его к источнику истины. Если повезёт. А если не повезёт, и кто-то успеет раньше него, то вся проделанная работа выкидывается, и начинается заново. Висеть в таком цикле участник может неограниченно долго.
Упорядоченная сходимость = Operational Transformation — после слияния всех изменений каждым участником, любой из них должен получить одну и ту же цепочку изменений, что даст им одно и то же финальное состояние. То есть конвергенцию.
Полу-упорядоченная сходимость = CmRDT: Conflict-free Commutative Replicated Data Type — изменения от одного участника применяются лишь в том же порядке, в котором этот участник их вносил. А вот изменения разных участников можно переставлять друг относительно друга как угодно, но результат будет одинаковым.
Беспорядочная сходимость = CvRDT: Conflict-free Convergent Replicated Data Type — изменения могут приходить в произвольном порядке, могут дублироваться, а могут и вообще потеряться, но последующие изменения всё же обеспечат конвергенцию.
CROWD — CvRDT нового поколения
Хабр
Консистентно о Консенсусе
Здравствуйте, меня зовут Дмитрий Карловский. А вы на канале Core Dump , где мы берём различные темы из компьютерной науки и раскладываем их по полочкам. И на этот раз мы постараемся прийти к согласию...
== Как я делал IAM на готовых решениях
https://habr.com/ru/post/645559/
https://github.com/gen1us2k/kratos_flask_example
- Ory Kratos
- Ory Keto
40строк кода и все шикарно
https://habr.com/ru/post/645559/
https://github.com/gen1us2k/kratos_flask_example
- Ory Kratos
- Ory Keto
40строк кода и все шикарно
Хабр
Как я делал IAM на готовых решениях
Привет, хабражители. Сегодня хочу поговорить про идентификацию, аутентификацию и авторизацию. В прошлом году я делал достаточно подробный ресерч по этой теме и хочу рассказать о разнице нескольких...
== Python: Явное лучше неявного
https://habr.com/ru/post/645405/
неожиданно забавное чтиво про расследование бага
https://habr.com/ru/post/645405/
неожиданно забавное чтиво про расследование бага
Хабр
Python: Явное лучше неявного
Приветствую, хабраюзер! Эта история началась со странного падения Python приложения. Сначала я не придал внимания данной проблеме: приложение запущено в Openshift и периодически падает. К такому...
== толковый плейлист по Rabbitmq
https://youtube.com/playlist?list=PLprvDkBQwz6ZC1iwd4y80Qqi43sswECdX
- общая инфа
- установка/настройка кластера
- принципы работы работы кролика на практике
- назначение прав доступа в Rabbitmq на практике
- Тесты HA кластера и метод балансировки
есть очереди типа КВОРУМ для кластера
пермишны можно настроить вплоть до конкретного эксченжа и топика
один балансер это одна точка отказа
можно делать балансировку на уровне L3
можно физический интерфейс хоста обьединить в бридж с ВМ
пока не будет всех нод Реббит не стартует !!!
https://youtube.com/playlist?list=PLprvDkBQwz6ZC1iwd4y80Qqi43sswECdX
- общая инфа
- установка/настройка кластера
- принципы работы работы кролика на практике
- назначение прав доступа в Rabbitmq на практике
- Тесты HA кластера и метод балансировки
есть очереди типа КВОРУМ для кластера
пермишны можно настроить вплоть до конкретного эксченжа и топика
один балансер это одна точка отказа
можно делать балансировку на уровне L3
можно физический интерфейс хоста обьединить в бридж с ВМ
пока не будет всех нод Реббит не стартует !!!
YouTube
Rabbitmq
Share your videos with friends, family, and the world
== небольшой плейлист по Network
https://youtube.com/playlist?list=PLprvDkBQwz6bOaO1N0vDaHX-jqlvlKIhp
- Routing VS Nat
- Построение отказоустойчивой сети (Bonding, LAG, LACP)
- Построение отказоустойчивой сети VPC
- Обеспечение бесперебойного интернета (VRRP)
- настройка DNS балансировки и failover
- Тесты на боевой системе
NAT - это медленно
Ip Tables - Это медленно
при NAT нагрузка на ЦПУ выше
при использовании Kubernates/swarm и пр сеть нельзя обьединить с физическим интерфейсом хоста (а при использовании ВМ это сделать МОЖНО)
https://youtube.com/playlist?list=PLprvDkBQwz6bOaO1N0vDaHX-jqlvlKIhp
- Routing VS Nat
- Построение отказоустойчивой сети (Bonding, LAG, LACP)
- Построение отказоустойчивой сети VPC
- Обеспечение бесперебойного интернета (VRRP)
- настройка DNS балансировки и failover
- Тесты на боевой системе
NAT - это медленно
Ip Tables - Это медленно
при NAT нагрузка на ЦПУ выше
при использовании Kubernates/swarm и пр сеть нельзя обьединить с физическим интерфейсом хоста (а при использовании ВМ это сделать МОЖНО)
YouTube
Networks
Share your videos with friends, family, and the world
== DNS Best Practices, Network Protections, and Attack Identification
https://tools.cisco.com/security/center/resources/dns_best_practices
шикарное чтиво если сложно заснуть
https://tools.cisco.com/security/center/resources/dns_best_practices
шикарное чтиво если сложно заснуть
== Представление о структуре отказоустойчивого кластера
https://youtu.be/hBrc-jJFbAw
CEPH как кластерная система хранения файлов . ВАРИАНТОВ НЕТ
каждый сервак должен иметь МИНИМУМ две раздельнче сетевые карты с оптикой. настроен бондинг
два физических роутера
два узла nginx
https://youtu.be/hBrc-jJFbAw
CEPH как кластерная система хранения файлов . ВАРИАНТОВ НЕТ
каждый сервак должен иметь МИНИМУМ две раздельнче сетевые карты с оптикой. настроен бондинг
два физических роутера
два узла nginx
YouTube
Представление о структуре отказоустойчивого кластера.
00:00 - почему не кубернетс?
06:21 - рассказываю о структуре кластера
"Ссылка на следующее видео": https://youtu.be/fV7YKBGGFcw
"Знакомство с хранилищем Ceph в картинках" https://habr.com/ru/post/313644/
"Как мы отказоустойчивый кластер запускали" htt…
06:21 - рассказываю о структуре кластера
"Ссылка на следующее видео": https://youtu.be/fV7YKBGGFcw
"Знакомство с хранилищем Ceph в картинках" https://habr.com/ru/post/313644/
"Как мы отказоустойчивый кластер запускали" htt…
== Установка кластера кафки на 3 ноды.
https://youtu.be/OTxnQ289pvg
проперти, кластер, настройка
- кафка
- зукипер
== Понимание принципов работы kafka на практике
https://youtu.be/Ep9ZQjrn1Rs
- продюссер всегда пишет в лидера. остальные партиции на одной ноде только для чтения
https://youtu.be/OTxnQ289pvg
проперти, кластер, настройка
- кафка
- зукипер
== Понимание принципов работы kafka на практике
https://youtu.be/Ep9ZQjrn1Rs
- продюссер всегда пишет в лидера. остальные партиции на одной ноде только для чтения
YouTube
Установка кластера кафки на 3 ноды.
Ссылка на ознакомительное видео с принципами работы брокеров сообщений: https://youtu.be/ygZ9LsJG7Dw
Ссылка на файлы из видео: https://github.com/big-town/ha-cluster/tree/master/kafka
Ссылка на загрузку кафки: https://kafka.apache.org/downloads
Ссылка на файлы из видео: https://github.com/big-town/ha-cluster/tree/master/kafka
Ссылка на загрузку кафки: https://kafka.apache.org/downloads
все время хотелось понять как оно работает. шикаааарная статья. лайк
== Знакомство с хранилищем Ceph в картинках
https://habr.com/ru/post/313644/
Алгоритм CRUSH (Controlled Replicated Under Scalable Hashing)
- позволяет однозначно определить местоположение объекта на основе хеша имени объекта и определенной карты, которая формируется исходя из физической и логической структур кластера (датацентры, залы, ряды, стойки, узлы, диски)
== Как мы отказоустойчивый кластер запускали
https://habr.com/ru/company/first/blog/314106/
== Знакомство с хранилищем Ceph в картинках
https://habr.com/ru/post/313644/
Алгоритм CRUSH (Controlled Replicated Under Scalable Hashing)
- позволяет однозначно определить местоположение объекта на основе хеша имени объекта и определенной карты, которая формируется исходя из физической и логической структур кластера (датацентры, залы, ряды, стойки, узлы, диски)
== Как мы отказоустойчивый кластер запускали
https://habr.com/ru/company/first/blog/314106/
Хабр
Знакомство с хранилищем Ceph в картинках
Облачные файловые хранилища продолжают набирать популярность, и требования к ним продолжают расти. Современные системы уже не в состоянии полностью удовлетворить все эти требования без значительных...
🔥1