2013-04-02 12 views
6

Sto scrivendo un plug-in di query, che creerà la query per determinate parole chiave e la passerà al client di ricerca elastico da elaborare.elasticsearch client thread safety

La mia classe di gestore estende BaseRestHandler e ho inserito l'oggetto Client nel costruttore del gestore.

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

Mi chiedevo se è thread-safe utilizzare lo stesso oggetto client nel metodo handleRequest()?

risposta

10

Sembra che qualsiasi implementazione del client sia thread-safe. Dai un'occhiata alla risposta di @kimchy qui: http://elasticsearch-users.115913.n3.nabble.com/Is-NodeClient-thread-safe-td2816264.html

+0

Grazie per la risposta. Accetterò questa risposta – apatel

+0

In un'app che utilizza un pool di thread (dimensione non superiore a 10) che esegue anch'essa un I/O locale, sarà più performante (se quei thread non muoiono mai e vengono riutilizzati), per utilizzare un client per thread? – tgkprog