Hystrix unterstützt zwischengespeichertes ein Anfrageergebnis, und die nächste Anforderung mit demselben Schlüssel wird das Ergebnis direkt aus dem Cache abrufen und die Anforderung Overhead reduzieren. Um diese Funktion zu verwenden, müssen Sie den hystrixRequestContext verwalten. Wenn Anfrage B den Ergebniscache von Anfrage A, A und B verwenden möchte, müssen sich im gleichen Kontext befinden. Ein Kontext kann durch hystrixRequestContext.initializeContext () und context.shutdown () konstruiert werden. Alle Anfragen zwischen diesen beiden Aussagen sind im gleichen Kontext. Natürlich kann dieser Verwaltungsprozess über einen benutzerdefinierten Filter implementiert werden. Weitere Informationen finden Sie im vorherigen Artikel //www.vevb.com/article/140527.htm
Hystrix -Anforderung Cache Annotation
@Cacheresult Die zu dieser Annotation hinzugefügte Methode ermöglicht das Caching an der Anfrage. Standardmäßig werden alle Parameter der Methode als Cache -Tasten verwendet, was bedeutet, dass der Cache nur dann zwischengespeichert wird, wenn alle Parameter der Methode konsistent sind.
@ServicePublic Class UserCacheService {@autowired private userFeignClient userFeignClient; / *** @hystrixCommands RequestCache.enabled kann steuern, ob Caching unterstützt wird }) öffentlicher Benutzer findUserById (Integer id) {return userFeignClient.finduserById (id); }}Wenn RequestCache.Enabled auf False festgelegt ist, funktioniert der Cache nicht, selbst wenn @Cacheresult hinzugefügt wird.
@CacheKey Mit dieser Annotation können Sie den zwischengespeicherten Schlüssel angeben
@Cacheresult @hyStrixCommand (commandProperties = {@hyStrixProperty (name = "RequestCache.Enabled", value = "true")}) public useryIdandName (@cachekey Integer ID, String Name) {return userFeignclient.finduserByid (id); }Im obigen Code haben wir das ID -Feld mit @CacheKey geändert, um anzuzeigen, dass der Cache standardmäßig zwischengespeichert wird, solange die ID gleich ist, und es hat nichts mit dem Namen des Namens zu tun. Wenn wir die CachekeyMethod -Eigenschaft von @cacheresult angeben, ist die @CacheKey -Annotation ungültig.
@Cacheremove Die Funktion dieser Annotation besteht darin, den Cache ungültig zu machen
/ ** * Geben Sie den Cache dieser Methode an, wenn der FindUserById über die @cacheremove -Annotation aufgerufen wird. "true")}) öffentlicher Benutzer findUserByIdandName2 (@cachekey Integer ID, String -Name) {return userFeignClient.finduserById (ID); }Der obige Code gibt an, dass der Wert des @Cacheremove -Eigenschaftsbefehlskey FounduserById ist, was bedeutet, dass der Cache dieser Methode, wenn FindUserById aufgerufen wird, gelöscht wird.
Weitere Informationen finden Sie in der Vollversion des Code: https://github.com/jingangwang/micro-service
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.