S
S
SKEPTIC2019-10-31 11:49:51
Python
SKEPTIC, 2019-10-31 11:49:51

The server side of the bot?

There is a VK bot that anyone can write to.
This is a dating bot. Each person is offered profiles of other people and he chooses to get acquainted with them or not.
There are about 2 million people in the group.
About 1000-2000 messages per second are expected.
I will use Python for writing.
What database to use? Do I need something for caching like Redis?
PostgreSQL will survive or MySQL?
Will multiple servers need to be used? Splitting a database across multiple servers?

Answer the question

In order to leave comments, you need to log in

3 answer(s)
S
Sergey Nizhny Novgorod, 2019-10-31
@Terras

That's right:
Communication goes between the bot and the chat server (on node.js / go)
At the end of the chat (or by timeout), the chat server writes all the information to the database.
And already some kind of business application (on Orthodox symfony/django/spring) - communicates with the database, pulls data and somehow works with them.
And of course, between all this there are interservice messages (events) that notify about a change in the status of the chat.
When the load grows, first there is a horizontal expansion of chat servers into several instances with a common base. If this is not enough, then the base is sharded. But about the load - if you grow up to such a state, there will already be 50 people of the staff, and this will no longer be your problem.

K
Kirill Gorelov, 2019-10-31
@Kirill-Gorelov

Guys, calm down !!!!!)))))
You are still far from high loads.
Mysql will survive, don't worry.
If you're worried, buy a server a little more powerful and that's it for a start. And then think about whether you need several servers.
Still not the fact that 1000 to 2000 to sec will be requests. You didn't even measure. This fortune-telling is like coffee grounds.
Make your own bot and don't worry.

A
alternativshik, 2019-10-31
@alternativshik

Don't forget Celery + RabbitMQ

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question