2016-02-27 4 views
3

Скажите, что у вас есть микросервис A, B и C, которые все в настоящее время взаимодействуют через HTTP. Скажем, служба A отправляет запрос службе B, что приводит к ответу. Затем данные, возвращенные в этом ответе, затем должны быть отправлены в службу C для некоторой обработки, прежде чем, наконец, вернуться к сервису A. Служба A теперь может отображать результаты на веб-странице.Связь между Microservices

Я знаю, что латентность является неотъемлемой проблемой при внедрении архитектуры микросервиса, и мне было интересно, какие общие способы уменьшить эту задержку?

Кроме того, я читал, как Apache Thrift и RPC могут помочь с этим. Может ли кто-нибудь это уточнить?

+1

Эта статья о Thrift Microservices, которую я недавно собрал, может помочь (сравнивает SOAP/REST/THRIFT между прочим): https://dzone.com/articles/polyglot-microservices-and-apache-thrift – codeSF

+0

Посмотрите на [MQTT] (http://mqtt.org) – Trung

+0

RPC (скажем: бережливость), http в вашей идее имеют ответ на запрос характера A-> B-> A и т. Д. На основе очереди (MQTT и т. Д.) Можно понимать как поток сообщений в графа A-> B-> C-> A. –

ответ

3

Кроме того, я читал, как Apache Thrift и RPC могут помочь в этом. Может ли кто-нибудь это уточнить?

Цель в рамках СРП, как Apache бережливость является

  • значительно сократить ручного программирования накладных
  • обеспечить эффективные механизмы сериализации и транспортные
  • во всех видах языков программирования и платформ

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

Apache Бережливость предоставляет подключаемый стек транспорт/протокола, который может быть быстро адаптированного путем подключения различного

  • транспортов (Розетки, HTTP, трубы, потоки, ...)
  • протоколов (двоичным , компактный, JSON, ...)
  • слоев (в рамку, мультиплекс, GZIP, ...)

Кроме того, в зависимости от целевого языка, вы получите некоторую инфраструктуру для серверной стороны конца, s так как серверы TNonBlocking или ThreadPool и т. д.

Поэтому, возвращаясь к вашему первоначальному вопросу, такая структура может помочь сделать общение проще и эффективнее. Но он не может магически удалить латентность из других частей стека OSI.

 Смежные вопросы

  • Нет связанных вопросов^_^