Messaging for mobile users

I have thousands of mobile devices in my system. They are connected to my central server. I need to have a mechanism for updating them based on some event that monitors certain devices (notify by topic). Let's say I have chats on the server, and the mobile user can follow any chat and wants to receive notifications of new chat messages efficiently. The primary mobile platform is Android.

I am going to use messaging using a theme (for each chat): Kafka or RabbitMQ. Please give advice, which is good for mobile consumers.

+4
source share
3 answers

Honestly, my recommendation is that you are not trying to build it yourself. There are tons of pitfalls you'll come across - a lot more before you even zoom in. You need to worry about things like dropping network connections, synchronization, downloading data, processing messages with lots of messages - the list goes on. BTW, my previous company, which built the application and had more than 500 engineers, also tried to build it - and failed.

I know, because we built it - it's called Magnet Message. See what we have at http://developer.magnet.com . We created the concept of channels precisely for what you say and ways to reliably deliver these messages.

Let me know how this happens to you.

+2

Kafka RabbitMQ - . Kafka - ( ), RabbitMQ - .

. :

  • kafka
  • RabbitMQ ( , XMPP)

RabbitMQ (, , , ), RPC . ( ) - . , kafka , (, , , autodelete ..).

Kafka (+ samza) - (.. ) ( , ..). , , .

+1

MQTT seems like a good solution to your problem. It is mostly small, lightweight, efficient and very good for battery life (see MQTT used by facebook messenger ).

In addition, MQTT is an OASIS standard and there are many compatible brokers, some of which allow you to manage several million simultaneous connections (for example, JoramMQ is used in highly scalable applications ).

0
source

Source: https://habr.com/ru/post/1626152/


All Articles