Подтвердить что ты не робот

Финагл и Акка, почему бы не использовать их вместе?

Я не использовал Finagle или Akka на практике, но я много читал о них.

Finagle является системой RPC и Akka - инструментарием для высококонкурентных приложений, почему все люди сравнивают их как два возможных решения, которые нельзя использовать вместе? Все поисковые запросы, которые я сделал, предлагают использовать один или другой, никто не предлагает использовать их вместе.

Finagle, например, имеет очень интересный способ определения конечных точек через бережливость и его IDL. С помощью этого IDL мы могли бы определить пользовательскую конечную точку и с помощью scooge или любого инструмента генерации кода, можно было бы получить сервис без каких-либо усилий. Кроме того, клиент для подключения к этой службе создается с автоматическим разрешением множества общих проблем клиента (повторное подключение, тайм-аут, повторы, балансировка нагрузки, объединение пулов,...).

Akka вместо этого решает много головных болей concurrency, и он очень хорошо масштабируется без всех сложностей ручного управления резьбой.

Как резюме, почему бы не использовать их вместе?:

  • Finagle + Thrift (с его IDL): он облегчает разработку и разработку услуг, а также развертывание (что включает в себя простоту масштабирования).
  • Akka: он использует всю мощность сервера через свою систему Actor и очень хорошо масштабируется, если я меняю свойства сервера (например, если он развернут на EC2, и я конвертирую свой node из m1.small в m1.large).

Как вы думаете?

ПРИМЕЧАНИЕ. Предположим, что проблема определения фьючерсов и Promises разрешена, а также несоответствие между FuturePools и ExecutionContexts. Шаблон должен был бы преобразовать Finagle в способ scala использования фьючерсов.

4b9b3361

Ответ 1

Вы правы в том, что обнаружение сервисов и реализация сервиса являются ортогональными проблемами, и я могу следовать вашему аргументу об использовании Finagle для первого и Akka для последнего. Вы могли бы в принципе использовать их вместе, не ища большого объединения фьючерсов, так как вам нужно отправить ответ услуг обратно запрашивающему Актеру в сообщение, т.е. Вам нужно будет добавить свой собственный маленький " pipeTo" поверх фьючерсов на Twitter.