2017-07-27 2 views
3

Ich möchte vermeiden, meine POJOs in einer Microservices-Anwendung zu duplizieren, also frage ich mich, ob es einen Weg gibt, dies zu tun (wie Proxying)?Ist es möglich, ein POJO in Microservices-Anwendung zu proxygen?

ich meine, gibt es eine Möglichkeit für eine Service A POJOs zuzugreifen (oder andere Klassen/Interfaces) innerhalb eines Service B definiert, ohne physisch diese POJOs classe Dateien in Service A zu schaffen?

Die große große Herausforderung in einer Microservice-Architektur ist dieser Punkt und ich habe keinen Weg gefunden, es zu lösen.

+1

Ich schätze auch die schnelle Antwort :-) – akuma8

+0

Ich bin bei 165 rep heute ... so nur 35 fehlt, um das Tageslimit heute zu treffen. Ich bin immer besonders schnell in solchen Situationen ;-) – GhostCat

Antwort

6

„Simple“: wenn es zwei Dienste, die etwas gemeinsame verwenden sollten - dann ist die Antwort diesen Code in irgendeiner Form von Bibliothek bewegen und haben beide Dienste davon abhängig sind.

Alles andere ist höchstwahrscheinlich eine schlechte Idee. Die ganze Idee von Micro-Services ist, dass Service A nicht in irgendeiner Form von B abhängt. Und Sie tun nicht wollen in das Spiel Reflexion und irgendwie Zugang Interna eines anderen Dienstes durch eine Art Hintertür bekommen.

Wie einige Kommentare deutlich machen: die Verwendung einer Bibliothek hilft zu vermeiden Code-Duplizierung. Die Alternative ist vorsätzlich kopieren Sie die "gemeinsamen" Teile von Service B in Service A. Dies ist auch eine Option.

In diesem Sinne: Sie entweder die gemeinsamen Teile in eine Bibliothek neu - oder Sie kopieren sie. Beide Ansätze haben ihre Vor- und Nachteile. Sie müssen bestimmen, was in Ihrer Umgebung am wichtigsten ist.

+0

Das bedeutet, wenn die Bibliothek ändern, muss ich meine Dienste erneut bereitstellen ... – akuma8

+1

Nicht unbedingt. Versionskontrolle für Service ist ein anderes Thema. Sie müssten nur neu bereitstellen, wenn * dieser * Dienst neue Funktionen in der Bibliothek ausnutzen möchte! – GhostCat

+0

Ich stimme @GhostCat zu. Sie können eine Strategie haben, um das zu handhaben: Wenn Sie ein neues Feld haben, muss Service A nicht über das neue Feld wissen. Wenn Sie jedoch ein Feld entfernen möchten, sollten Sie es besser ablehnen. –

Verwandte Themen