Pull to refresh
70
0
Александр Календарев @akalend

Ламер с 20 летнем стажем

Send message

Lib amqpcpp wrapper for librabbitmq

Reading time4 min
Views2.5K
За последние полтора года активно набирает популярность Сервер очередей RabbitMQ, который работает по протоколу AMQP. Про данный протокол уже было достаточно статей на Хабре. В инструментарии есть библиотека librabbitmq

На основе этой библиотеке выложил в Google Code проект С++ библиотеки amqpcpp, которая является упрощенным интерфейсом к librabbitmq. Документации нет, примеров использования в дистрибутиве только три. Под кастом краткое изложение АПИ и примеры ее использования. Использование стало проще.
Читать дальше →
Total votes 13: ↑9 and ↓4+5
Comments2

Chain Friends by MongoDB

Reading time2 min
Views3.5K
imageПро MongoDb было рассказано не так много, но относительно полно, например здесь. Хочу поделиться еще с одним практическим использованием этой БД — это построение цепочек друзей. Построение цепочек и концепцию кругов было использовано в Мойм Круге. Вот пример: Я — Иван Петров — Петр-Иванов — Киририлл Лавров — Вася Пупкин.

MongoDb было выбрано как высокопроизводительное хранилище данных, позволяющее быстро извлекать массивы структур данных. Традиционные key/value DB для этого не подходят, почему — поймете по ходу изложения статьи.

В данной статье рассмотрен опыт использования noSQL DB при построение «цепочек друзей» в небольшой соц-сети 300 тыс пользователей.
Читать дальше →
Total votes 35: ↑27 and ↓8+19
Comments62

Зачем Хабру Барбадос

Reading time1 min
Views689
Собственно сабж:

Захожу на Поиск работы и вываливается список всех стран мира (более 127). Так зачем Хабру Барбадос ? — если там нет работы, да и ее ни кто не ищет?

давайте оставим три-пять актуальных стран: Россия, Укранина, Казахстан, Белорусия и сделаем категорию «прочие».
почти то же самое по регионамя, зачем истать работу в программистом Ботитогорске (если ее там не было и не будет), если я ищу ее в СПб.
Total votes 14: ↑3 and ↓11-8
Comments4

Велосипед: межсайтовая авторизация собственных проектов

Reading time2 min
Views2.7K
Это обсуждалось много и долго, напрмер в посте… Реализовал свой велосипед межсайтовой авторизации.

Итак, вернемся к задачи:
есть несколько оригинальных проектов (project1,project2,projectN...), для которых должна быть единая авторизация. То есть, Пользователь залогинившись в проекте project1 имел доступ к ресурсам project2...projectN как авторизованный пользователь.

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

Ограничение: все проекты лежат в одном датацентре и находятся в одной локальной сети. Все проекты имеют единое хранидище для сессий и соответственно единый sid.
Читать дальше →
Total votes 4: ↑3 and ↓1+2
Comments11

еще один велосипед или TreeDb — NoSQL Database startup

Reading time3 min
Views626
Хочу представить старт проекта, с рабочим названием TreeDb. Я не пиарюсь (еще далеко...) и размещаю свои мысли и рассуждения в личном блоге. Хочу в ответ получить адекватную критику, обсуждение идей, в общем все то, для чего нужны блоги ;). Просто, в последствии интересно проследить историю проекта, что задумали и что на выходе. А может кто и захочет и по участвовать. Всегда рады.

Из названия понятно, что речь пойдет о БД, основанной на деревьях. Сразу оговорюсь — на данный момент нет ни строчки кода. Сперва определюсь с концепцией.

ниже FAQ
Читать дальше →
Total votes 16: ↑5 and ↓11-6
Comments37

Обработка POST тела в разрабатываемых модулях

Reading time5 min
Views3.3K
На сегодняшний день достаточно руководств и описаний, как разработать собственный модуль под nginx. Для тех, кто на танке, ссылки можно найти на сайте nginx
Но, как использовать данные POST, к сожалению информации кот наплакал.

Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments7

классический TCP сервер

Reading time4 min
Views45K
мой первый TCP Сервер был создан пару лет назад. Основой создания послужила книга Р.Стивенсона «Unix — Профессиональное программирование.» Есть несколько подходов к созданию TCP-серверов. В данном посте хочется рассказать про классический TCP сервер.

Читать дальше →
Total votes 65: ↑41 and ↓24+17
Comments58

Комменты на комменты

Reading time1 min
Views422
на странице Мое/Комментарии хотелось бы видеть хотя бы число ответов на твои комментарии, а не только кол-во голосов.

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

История одного бага или почему следует знать не только РНР

Reading time3 min
Views2.3K
Все началось с того, что стал падать мемкеш, вернее мемкешДб. И падал он как-то хитро. Переустановка мемкеш+мемкешДб+BerkeleyDb ничего не дала. После некоторых эмперических вычислений стало понятно, что падает на методе MultiGet, при том очень интересен тот факт, что падение зависит от порядка задания ключей и кол-во ключей должно быть более 3х.
Читать дальше →
Total votes 14: ↑7 and ↓70
Comments5

AMQP — отладка приложений

Reading time2 min
Views5.4K
Рзработка сложных систем обмена сообщениями по протоколу AMQP приходится не только отлаживать код, но и разбираться в структуре и роутинге сообщений.
Иногда трудно понять причину того или иного зависания или отсутствия сообщения. Однако, разработчиками RabbitMQ включен в составе пакета rabbitmq-java-client есть класс Tracer,
который позволяет в консольном режиме просматривать информацию об обмене.

Читать дальше →
Total votes 3: ↑2 and ↓1+1
Comments4

PHP-AMQP Что нового у Друзей?

Reading time4 min
Views6.9K
При построении социальной сети по типу шардинга встает проблема обмена данными между шардами. Традиционная репликация в данном случае не подходит по разным причинам. Тема шардинга — это отельная большая тема и не является предметом данной статьи.
В данной архитектуре для реализации «ленты Друзей» или «Новостной ленты» лучше использовать сервер очередей используя систему: Подписка-Уведомление. В качестве брокера обмена предлагается использовать сервер очередей RabbitMQ, реализующий протокол AMQP, который был выбран по причине хорошей масштабируемости. Серверная часть реализована на PHP, используя расширение php-rabbit (описание АПИ).
Читать дальше →
Total votes 29: ↑22 and ↓7+15
Comments62

PHP-AMQP версия 2

Reading time4 min
Views10K
В статье Новые идеи по АПИ RabbitMQ AMQP для PHP был опубликован набросок по PHP-AMQP API

В продолжении ранее опубликованных идей представляю их реализацию, которая более ООПешнее первой версии.
Читать дальше →
Total votes 8: ↑5 and ↓3+2
Comments6

Alice — REST Мониторинг RabbitMQ

Reading time2 min
Views4.4K
Собственно столкнулся с проблемой, что при использовании RabbitMQ необходимо мониторить сервер. Системную утилиту rabbitmqctl можно запускать из командной строки, но запустить ее из приложения не получилось. Что-то связанное с окружением эрланга.

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

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

далее кр описание…
Читать дальше →
Total votes 5: ↑4 and ↓1+3
Comments0

AMQP-PHP чат

Reading time4 min
Views9.5K
Вот, дошел до первого практического воплощения моих первых двух статей. Далее будут изложены только идеи… Идеи уже воплощенные и идеи, которые воплощаются…

В отличие от других протоколов передачи сообщений (XMPP STOMP или Memcache (MemcacheQ)) AMQP обладает большей гибкостью.
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments19

Новые идеи по АПИ RabbitMQ AMQP для PHP

Reading time2 min
Views2.8K
Недавно опубликовал разработанное ранее PHP API для RabbitMQ «AMQP теперь и для РНР»

При обсуждении было предложено сделать PHP API более объектной моделью,
более близкой к модели, предложенной в Протоколе AMQP.

Код немного усложнится, но объектная модель будет более красивой,

Прежде чем перейти к кодированию, представляю на обсуждение новое API
Читать дальше →
Total votes 8: ↑5 and ↓3+2
Comments3

AMQP теперь и в PHP

Reading time3 min
Views12K
типа Введение
Протокол AMQP хорошо был описан в статьях AMQP по русски, RabbitMQ: Введение в AMQP AMQP — практика использования и мне не хотелось бы повторяться.

AMQP используется в серверах очередей: ZeroMQ, ActiveMQ, RabbitMQ.

Преимущество RabbitMQ перед прочим свободным ПО:
— более полно представлен протокол,
— поддерживает кластер,
— реализован как многопоточный сервер, высокая производительность

Широкое распространение AMQP в WEB разработках разработках сдерживается двумя причинами: отсутствием необходимых навыков (практики) его использования и малой клиентской поддержкой. В основном есть клиенты на языках с, java, python, с#. Большая популярность РНР в WEB разработках жалала бы видеть и свой AMQP-клиент.
Читать дальше →
Total votes 19: ↑12 and ↓7+5
Comments15
2

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Software Architect, Database Architect
Lead
From 325,000 ₽
PostgreSQL
Golang
C++
Python
Database
Designing application architecture
Creating project architecture
Database design
Object-oriented design
Code Optimization