2017-01-27 1 views
0

Nous analysons différents concepts pour l'un de mes projets. Nous avons décidé d'utiliser l'architecture Spring Boot & Microservices.Est-ce que Can/Should Spring AOP peut être utilisé avec Microservices & Spring Boot?

Après de nouvelles discussions, nous sommes arrivés à une requête si nous CAN/DEVONS utiliser Spring AOP pour résoudre les problèmes transversaux de divers microservices? Comment pouvons-nous répondre aux préoccupations communes des microservices comme la journalisation, la gestion des transactions, etc?

Je ai googlé ce sujet largement (même allé à 5 pages pour la même recherche), mais pas de chance. Toute aide appréciée.

+0

Exploitation forestière et la gestion des transactions sont communs dans tous les services et je pense qu'ils seraient dans la plupart des services. – LazyTechie

Répondre

1

Utiliser des intercepteurs de ressort. Ils ont des intercepteurs et des usines pour à peu près n'importe quoi. Vous permet d'ajouter une instrumentation et un code commun à tous les aspects.

MISE À JOUR: échantillonneurs intercepteurs et usines.

ClientHttpRequestInterceptor
FilterRegistrationBean
SimpleClientHttpRequestFactory
ChannelInterceptor

+0

Si j'ai trois projets de démarrage au printemps comme microservices, y a-t-il un moyen d'utiliser AOP de printemps pour des préoccupations communes dans ces projets indépendants? – LazyTechie

+0

Pas besoin d'utiliser AOP directement. Utilisez plutôt les intercepteurs et les usines. Par exemple, nous créons un pot commun qui injecte des usines et des intercepteurs dans nos projets. Pas besoin d'AOP. –

+0

Supposons que vous ayez besoin de vérifier la sécurité de toutes les requêtes HTTP entrantes. Vous pouvez ensuite utiliser FilterRegistrationBean pour ajouter un filtre de servlet qui effectuera cette vérification de sécurité. Écrivez un nouveau fichier JAR contenant votre implémentation de filtre de servlet et utilisez FilterRegistrationBean pour ajouter le filtre à votre projet. Votre filtre sera désormais appelé sur chaque requête HTTP entrante –

0

Je ne pense pas qu'il y ait quelque chose à craindre d'utiliser AOP. C'est ainsi que le printemps fait les choses habituellement sous le capot. Je ferais juste attention aux invocations de méthodes de journalisation, en particulier les paramètres qui sont l'usage commun (abus) de l'AOP.

Habituellement, moins vous écrivez de code, mieux c'est. Si vous pouvez utiliser une méthode standard et éprouvée, utilisez-la.

+0

Si j'ai trois projets de démarrage au printemps comme microservices, existe-t-il un moyen d'utiliser AOP de printemps pour des préoccupations communes dans ces projets indépendants? – LazyTechie

+0

La plupart des problèmes courants que Spring Boot va gérer lui-même. Ou vous utiliserez une bibliothèque comme Javamelody. Bien sûr, vous pouvez toujours créer une bibliothèque et la partager. Cependant, il semble que vous vous concentriez trop sur une technologie plutôt que sur un problème à résoudre. AOP est juste un outil comme StringUtils. Première chose à propos de ce que vous essayez de résoudre. –