Szukam sposobu na udostępnianie pamięci podręcznej na dwóch serwerach i badam wykorzystanie Redis jako strategii buforowania magazynu obiektów, ale napotykam problem podczas odczytywania zapisanych wartości.Strategia buforowania Mule za pomocą Redis
Pomyślnie zapisuje wartość, gdy trafienie w pamięci podręcznej jest wartością miss, ale generuje błąd podczas pobierania wartości.
Wymagany obiekt/nieruchomość „muleContext” jest zerowy
na oko wydaje się, że obiekt-store-buforowania-strategii mogą potrzebować sklep obiektu, który implementuje interfejs MuleContextAware.
Czy ktoś wie, czy jest to poprawne i jak rozwiązać ten problem?
Oto przykład płynąć
<mule xmlns:redis="http://www.mulesoft.org/schema/mule/redis" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/redis http://www.mulesoft.org/schema/mule/redis/3.4/mule-redis.xsd">
<redis:config name="Redis" doc:name="Redis" defaultPartitionName="test" />
<ee:object-store-caching-strategy name="Redis_Caching_Strategy" doc:name="Caching Strategy">
<spring-object-store ref="Redis" />
</ee:object-store-caching-strategy>
<flow name="htmlCacheRedisFlow" doc:name="htmlCacheRedisFlow">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8084" path="cacheRedis" doc:name="HTTP"/>
<expression-transformer expression="#[payload.substring(payload.lastIndexOf('/') + 1)]" doc:name="Expression"/>
<ee:cache doc:name="Cache" cachingStrategy-ref="Redis_Caching_Strategy" >
<logger message="getting item from db for key #[payload]" level="INFO" doc:name="Logger"/>
<expression-transformer expression="#[payload + 'asd']" doc:name="Expression"/>
</ee:cache>
</flow>
</mule>
Należy pamiętać, że skoro używasz Enterprise Edition, można skontaktować się z profesjonalną obsługę MuleSoft o pomoc . Ta funkcja nie jest częścią edycji społecznościowej, więc społeczność tutaj w StackOverflow może nie być w stanie Ci pomóc ... ale to świetne pytanie :) –
Ok, dzięki, nie zdawałem sobie sprawy, że wciąż mam środowisko uruchomieniowe w studio ustawione na EE. Teraz to zmieniłem. Widzę, że buforowanie nie jest już dostępne, więc pytanie nie ma już dla mnie zastosowania. – Stuart