Лучший язык / стек для тысяч звонков в Facebook?

Я работаю над проектом, который требует совершать несколько тысяч вызовов API Facebook в день. Все эти данные должны храниться в базе данных, которую затем может использовать веб-сайт на основе PHP Laravel. Тем не менее, я боюсь, что PHP не является подходящим языком для этого, потому что в основном я хочу делать столько звонков в час, сколько позволяет Facebook, но распределяется так, чтобы нагрузка была хорошей и сбалансированной.

Я слышал о Ruby в сочетании с Sidekiq, но я действительно не знаком с преимуществами и недостатками этого метода. Это то, что я ищу? Или есть другой подход, который бы лучше подходил моим потребностям?

1

Решение

Если вы хотите «shardability» (то есть вы хотите равномерно распределить нагрузку между несколькими процессами), то PHP на самом деле, вероятно, не тот язык. Но, я думаю, это зависит от того, сколько и насколько сложных вызовов вы пытаетесь обработать.

Я пошел для решения аналогичной задачи с комбинацией

  • NGINX в качестве балансировщика нагрузки (для входящих обновлений в реальном времени)
  • NodeJS как «сервер приложений»
  • RabbitMQ как очередь сообщений
  • Redis / MongoDB как слой сохранения / кэширования

Хорошая вещь об использовании NodeJS и MongoDB в качестве компонентов заключается в том, что они оба могут иметь дело с результатами JSON из Graph API внутренним способом, что означает, что вам не нужно обязательно каким-либо образом преобразовывать данные JSON перед использованием / хранением Это. Это хороший момент для скорости, и с асинхронной природой цикла событий NodeJS вы, вероятно, сможете справиться с гораздо большей нагрузкой, чем с процессом PHP.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]