Amazon Web Services EC2 и SQS - PHP Queue

Alex19 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
16.08.2007

Я хочу использовать 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 тоже нужны