2013-04-02 11 views
6

Piszę wtyczkę zapytania, która zbuduje zapytanie dla podanych słów kluczowych i przekaże je do elastycznego klienta wyszukiwania do przetworzenia.Elasticsearch client thread safety

Moja klasa obsługi rozszerza BaseRestHandler, a obiekt klienta jest wprowadzany w konstruktorze mojego handlera.

@Inject 
protected QueryHandler(Settings settings, Client client, RestController controller) { 
    super(settings, client); 
    controller.registerHandler(GET, "/_query/{queryBuilder}", this); 
} 

Zastanawiam się, czy można bezpiecznie używać tego samego obiektu klienta w procedurze handleRequest()?

Odpowiedz

10

Wygląda na to, że dowolna implementacja klienta jest bezpieczna dla wątków. Sprawdź odpowiedź @ kimchy tutaj: http://elasticsearch-users.115913.n3.nabble.com/Is-NodeClient-thread-safe-td2816264.html

+0

Dziękuję za odpowiedź. Przyjmuję tę odpowiedź. – apatel

+0

W aplikacji, która korzysta z puli wątków (rozmiar nie większy niż 10), która również obsługuje lokalny IO, czy będzie bardziej wydajna (jeśli te wątki nigdy nie umrą i zostaną ponownie użyte), aby użyć klienta na wątek? – tgkprog