Amazon Web Services EC2 и SQS - PHP Queue
Я хочу использовать Amazon Web Services для посылки сообщений.
Сообщение добавится в SQS, а ЕС2 сервера его обработают.
Когда пользователь посылает сообщения, сделается новая SQS Queue для этого юзера. пара серверов батуд обрабатывать сообщения всех пользователей, но если какой-то пользователь отправляет слишком много сообщений, то надо добавить отдельные ЕС2 сервера, что бы обработать те сообщения.
Главное надо:
1. что бы можно было выбрать сколько серверов работают в определенный момент:
- просто добавлять 1 и убирать
(каждый час, каждый из этих серверов менять на новые по такому механизму:
49 минут после старта добавить новый сервер (будет место старого)
55 минут после старта отключить проверку SQS
58 минут после старта отключить EC2 сервер
)
- Если пользователь добавляет в SQS >30 сообщений, то добавить отдельный ЕС2 сервер который будет обрабатывать сообщения только этого пользователя.
А если >100 то добавить три сервера, >500 то 5.
(этих серверов менять на новые на надо и они сами должны отключится когда все сообщения пользователя обработанные)
2. возможность удалить все сообщение определенного пользователя (по username)
3. Выбрать сколько Threads проверки SQS (обработки сообщений) на каждом сервере.
-------
1. Control Panel PHP
- SET # of sender threads running on each EC2
- SET URL of sender file (see below)
- SET # of ec2 servers/instances Always Running
- DELETE queue messages
-- delete ALL
-- delete by USERNAME
- SHOW STATUS ec2 servers/instances
-Status by USERNAME
username 1 SQS: 23 messages
username 2 SQS: 3 messages
2. EC2
- Step 1: Start Apache+PHP5 (xampp)
- Step 2: Threads check SQS for messages (# of threads set in CP)
- Step 3:
-- if message -> sender.php?data=SQSdata (returns SUCCESS/FAIL)
---------------------> update SQS status (message SUCCESS/FAIL)
3. SQS
userid | msgdata | timestamp
add_messages.php?useid=2323&data=message...
delete_messages.php?userid=2323
status.php?userid=2323
---
все исходники и Amazon EC2, S3 AMIs тоже нужны