Pull to refresh
114
-2.9
Send message

KeyDB и Redis: в поисках серебряной пули — in-memory replicated DB (Replicated IMDB)

Level of difficultyMedium
Reading time19 min
Views10K

На кластерах клиентов, которые мы обслуживаем, есть как «одноголовые» инсталляции Redis (обычно для кэшей, которые не страшно потерять), так и более отказоустойчивые решения — Redis Sentinel или Redis Cluster. По нашему опыту, во всех трех вариантах можно безболезненно переключиться с Redis на KeyDB и получить прирост производительности. Точнее, избавиться от бутылочного горлышка Redis в одно ядро. Хотя в новых версиях Redis(r) появилась обработка I/O в отдельных тредах, иногда этого бывает недостаточно.

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

В итоге у нас есть несколько реплик довольно дорогого in-memory-хранилища, а в рабочем процессе используется только часть из них. Остальные — на подхвате. Хотя в большинстве кейсов операции с in-memory NoSQL DB — это именно операции чтения.

Однако если посмотреть в сторону KeyDB, то можно увидеть, что там есть киллер-фича — и даже две: я говорю о режимах Active Replica и Multi-Master. Использование этих режимов позволяет получить распределенный отказоустойчивый KeyDB, совместимый с Redis, писать в любую ноду, читать из любой ноды. И все это с точки зрения приложения выглядит как один экземпляр Redis без всяких Sentinel — то есть в коде приложения ничего менять не придется. 

Звучит как фантастика?

Читать далее
Total votes 40: ↑40 and ↓0+40
Comments21

Мониторинг межсервисного взаимодействия Kubernetes с помощью протокола NetFlow

Reading time7 min
Views7K

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

В идеале хотелось бы иметь какую-то карту взаимодействия сервисов в Kubernetes, которая сама автоматически обновляется. Такую карту можно построить с помощью инструментов типа Istio и Cilium. Но иногда можно обойтись и более простыми решениями — например, NetFlow.

Читать далее тут
Total votes 46: ↑45 and ↓1+44
Comments8

Наша новая удачная попытка бесшовной замены Redis на KeyDB

Reading time5 min
Views14K

Мы уже как-то рассказывали о базе данных KeyDB — форке Redis, разработка которого началась в 2019 году. Проект распространяется под свободной лицензией BSD, и у него уже почти 6k звезд на GitHub. Авторы в свое время столкнулись с проблемами производительности оригинала и пошли хардкорным путём: взяли всё в свои руки и привнесли много нового как в части многопоточности, так и в других областях.

В статье делимся еще одним положительным опытом замены Redis на KeyDB.

Читать далее
Total votes 45: ↑45 and ↓0+45
Comments19

Платные подписки — зависимость автоподключения от мобильного устройства

Reading time6 min
Views34K
image

Наверное почти каждый сталкивался с ситуацией, когда мобильный оператор подключал какие-то подписки к вашему номеру телефона, но вы точно были уверены, что ничего не подключали. Да и кто в здравом уме подключит, например, «Гороскоп за 9р/сутки» (280р/мес), когда в интернете полно гороскопов на любой вкус, а иногда 280р — это весь бюджет расходов на мобильную связь в месяц?

Часто люди просто отключают подписку, иногда обращаются к оператору и просят вернуть деньги (с разной степенью успеха).

Но от чего же зависит вероятность того, что вам подключат подписку, которую вы не подключали?
Читать дальше →
Total votes 64: ↑63 and ↓1+62
Comments139

Яндекс блокирует аккаунты, к которым не привязан номер телефона

Reading time5 min
Views175K
Я наверное как те самые мыши, которые «плакали, кололись, но продолжали жрать кактус». Который раз пытаюсь патриотично пользоваться сервисами Яндекса — и который раз это выходит мне боком.

В этот раз заблокировали доступ к почте под предлогом «подозрения на взлом». А в реальности — потому что при регистрации не указал номер телефона, что вообще-то не возбраняется, но как всегда есть НО…

Небольшой разбор ситуации под катом.
Читать дальше →
Total votes 246: ↑234 and ↓12+222
Comments733

Доработка модуля шлагбаума Doorhan GSM для управления через интернет

Reading time9 min
Views26K


Недавно было решено установить в многоквартирном доме шлагбаум с управлением через GSM. Причины и необходимость этого решения остаются за рамками статьи, я же хочу написать про то, как «на коленке» сделал интерфейс для управления модулем через Интернет. И даже немного с блэкджеком, управлением базой автомобилей с мобильного телефона и фотографиями моментов въезда с уличной камеры. Возможно кто-то захочет внедрить у себя.

Предупрежу, что в статье не описано готовое решение «из коробки», а скорее proof of concept.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments22

Билайн, зачем ты лезешь в мой HTTPS?

Reading time3 min
Views104K
Приехал я на выходные на дачу, пожарил шашлычок, натопил баньку, да сел в интернете посидеть немножко. А интернет мой неожиданно стал выглядеть вот так (надеюсь продавец мерса на меня не обидится, но скриншот сохранился вот такой только):

Сначала я грешил на скорость 3G, браузер, ОС и т.д. и т.п., но как оказалось все не то.

А проблема в том, что HTTPS-сайты через 3G модем Билайн вдруг практически перестали открываться. Все уже привыкли к «фокусам» Билайна с вмешательством в HTTP и добавлением своего кода на страницы, со «сливом» данных пользователей для активации платных подписок кликом на сайте и.т.д. А теперь тренировка с HTTPS?
Читать дальше →
Total votes 113: ↑110 and ↓3+107
Comments133

Оплата на счет Яндекс.Денег картой VISA/MasterCard или как заблокировать произвольный кошелек

Reading time5 min
Views87K


Без малого год назад запустил у себя на сайте прием платежей на счет в Яндекс.Деньгах с банковских карт VISA/MasterCard. Без проблем не обошлось, но, в итоге, все заработало.

Недавно, примерно 9 февраля, на на один из кошельков в Яндекс.Деньгах внезапно перестали приходить переводы, сделанные картой. При этом переводы, сделанные Яндекс.Деньгами продолжали исправно приходить.

В чем причина, кто виноват, и как можно (попробовать) заблокировать любой счет в Яндекс.Деньгах для приема средств через VISA/MasterCard — попробуем разобраться под катом
Читать дальше →
Total votes 68: ↑61 and ↓7+54
Comments65

Некорректная работа API Яндекс.Денег при приеме платежей картой

Reading time4 min
Views24K
В прошлые выходные раздался звонок мобильного телефона. Номер незнакомый. Снимаю трубку.
На противоположном конце линии девушка сообщает, что она представляет компанию Яндекс, и что мне высылали электронное письмо с информацией о новом сервисе: теперь можно принимать на сайте платежи не только Яндекс.Деньгами, но и банковскими картами VISA/MasterCard с помощью формы от Яндекса. Я ответил, что письмо не получал (может попало в спам?), но информация интересная, и я обязательно подробнее ознакомлюсь с новыми возможностями сервиса.
Читать дальше →
Total votes 42: ↑35 and ↓7+28
Comments52

Девятилетняя оптимизация маршрутизатора

Reading time16 min
Views42K
Хочу рассказать историю жизни сервера в кампусной сети Новосибирского университета, которая началась в далеком 2004 году, а так же этапы его оптимизации и даунгрейдинга.
Многие вещи в статье покажутся общеизвестными хотя бы по той причине, что речь пойдет о событиях почти десятилетней давности, хотя на тот момент это были передовые технологии. По той же причине кое что вообще потеряло актуальность, но далеко не все, так как сервер до сих пор живет и обслуживает сетку из 1000 машин.
Читать дальше →
Total votes 74: ↑74 and ↓0+74
Comments22

Information

Rating
Does not participate
Registered
Activity