2016-06-14 12 views
0

Was sind die besten Praktiken bei der Auswahl eines spezifischen Kommunikationsprotokolls beim Aufbau von Microservices?Was sind die Best Practices beim Aufbau von Microservices APIs in Bezug auf Kommunikationstechnologie?

Zum Beispiel, wenn MySQL Microservice gebaut wird, soll ich die native MySQL-Verbindung verwenden oder eine Wrapping-API in REST oder etwas anderes bevorzugen?

Zweitens, soll ich ein einzelnes Protokoll wie REST, JSON-RPC usw. für alle Interaktionen zwischen Microservices auswählen und verwenden?

Danke!

Antwort

2

Verwenden Sie so wenig Ebenen wie möglich, also sollten Sie keine REST API auf MySQL anwenden, wenn sie nicht benötigt wird. Halte es so einfach wie möglich.

Versuchen Sie, RPC zwischen Microservices zu vermeiden. Verwenden Sie stattdessen Messaging, damit die Dienste autonom sein können. Wir wollen nicht, dass sie von einem Dienst abhängig sind, der nicht läuft oder so. Definieren Sie beschränkte Kontexte und lassen Sie Microservices innerhalb dieser beschränkten Kontexte leben und machen Sie sie zu Besitzern eines spezifischen Geschäftsproblems.

Von diesem Punkt an können Sie wählen, welche Speicher, Protokolle, Sicherheit usw. Sie für jeden einzelnen Microservice benötigen. Es ist wahrscheinlich einfacher für das Messaging-System, eine einzige Option zu wählen. Es ist zwar nicht erforderlich, stellt jedoch sicher, dass Sie keine Gateways überall implementieren müssen, um von einem zum anderen zu konvertieren.

+1

+ 1 für * ... versuchen, RPC zwischen Microservices zu vermeiden. Verwenden Sie stattdessen Nachrichtenaustausch, so dass die Dienste autonom sein können. * –

+3

Nur hinzufügen, während ich zu 100% mit Ihrer Meinung stimme, schlägt die offizielle Definition von MicroServices (Fowler) vor, dass die Kommunikation zwischen Microservices ** in der Tat vermittelt werden sollte * "... leichte Mechanismen, oft eine HTTP-Ressourcen-API" *. Dies ist eines der Dinge, die IMO unterscheidet Microservices von SOA. –