https://github.com/getjump/pubsub
Pubsub Server gRPC implementation Golang
https://github.com/getjump/pubsub
Last synced: 19 days ago
JSON representation
Pubsub Server gRPC implementation Golang
- Host: GitHub
- URL: https://github.com/getjump/pubsub
- Owner: getjump
- Created: 2022-07-13T14:54:22.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2022-07-13T14:57:41.000Z (almost 4 years ago)
- Last Synced: 2025-01-07T10:11:07.693Z (over 1 year ago)
- Language: Go
- Size: 46.9 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Описание
Простой и быстрый pubsub сервис
## Основные фичи
- Подписка на топики, в том числе с учётом wildcard (Trie) (Trie немного сломан сейчас)
- Публикация Sync/Async - Sync ждёт пока все сообщения не будут отправлены, Async отправляет параллельно,
так же, Sync может ждать подтверждение получения сообщений, если это необходимо
- Почти нет мусора, после отваливания консьюмера почти всё чистится
## Improvements
- Масштабирование посредством архитектуры multi master (несколько ЦОД, механизм синхронизации между репликами)
- Персистентность (что-то вроде Apache Kafka), чтобы можно было прочитать исторические данные + механизм отслеживания последовательности событий (можно использовать например LevelDB)
- Фичи из существующих брокеров, как zeromq или kafka, google pubsub, ...
- Метод Fetch для получения определенного сообщения
## Как запустить
- Можно запустить напрямую `pubsub-server/cmd/grpc_app.go` и параллельно `pubsub-client/examples/benchmark/main.go`
- Docker не проверял и почти не занимался