2014-02-11 41 views
0

我想自定義HTTP標頭添加到Neo4jClient即將離任的Cypher支架的要求,對每個請求的基礎。我的意思是每個請求的基礎是HTTP標頭的內容取決於當前會話中的(用戶)。Neo4jClient:爲Cypher請求添加任意HTTP頭文件?

這個想法是,負載均衡器會解析這個頭文件,以便它始終將請求重定向到Neo4j羣集中的那個從屬數據,其中當前會話中用戶的數據已經映射到內存,從而導致性能收益。

例如,我可能會保持用戶的會話特定的從站的地址和HTTP頭Neo4j-slave: <address>增加對負載平衡器傳出請求。它會將這個請求重定向到正確的從機。

我不知道,如果Neo4jClient與這種可擴展性的考慮建;從它的外觀來看,如果我不想改變現有代碼,我將不得不在非虛擬方法中複製大量代碼。

我一直在尋找實現IHttpClient作爲切入點進入GraphClient。畢竟,我可以通過我實施GraphClient的構造函數,它接收呼出HttpRequestMessage這樣我就可以修改它前進的道路上),但我認爲只適用於僅依賴於HttpRequestMessage本身的修改(或某些國家的地方,但我想避免這種情況)。

我也一直在調查ThreadLocal s作爲一種手段來傳遞額外的參數到HttpClient#SendAsync,但我不確定如果那些甚至工作,如果涉及異步方法。

有掛接到Neo4jClient並添加此頭或多或少瑣碎的方式?

謝謝!

回答

0

我想不出目前有這樣做的好方法,但是如果以一種簡潔的方式將所需的可擴展性添加到IGraphClient,我會接受對此的請求,並且我們可以將它包含在發佈的庫中。