我想自定義HTTP標頭添加到Neo4jClient即將離任的Cypher支架的要求,對每個請求的基礎。我的意思是每個請求的基礎是HTTP標頭的內容取決於當前會話中的(用戶)。Neo4jClient:爲Cypher請求添加任意HTTP頭文件?
這個想法是,負載均衡器會解析這個頭文件,以便它始終將請求重定向到Neo4j羣集中的那個從屬數據,其中當前會話中用戶的數據已經映射到內存,從而導致性能收益。
例如,我可能會保持用戶的會話特定的從站的地址和HTTP頭Neo4j-slave: <address>
增加對負載平衡器傳出請求。它會將這個請求重定向到正確的從機。
我不知道,如果Neo4jClient與這種可擴展性的考慮建;從它的外觀來看,如果我不想改變現有代碼,我將不得不在非虛擬方法中複製大量代碼。
我一直在尋找實現IHttpClient
作爲切入點進入GraphClient
。畢竟,我可以通過我實施GraphClient
的構造函數,它接收呼出HttpRequestMessage
這樣我就可以修改它前進的道路上),但我認爲只適用於僅依賴於HttpRequestMessage
本身的修改(或某些國家的地方,但我想避免這種情況)。
我也一直在調查ThreadLocal
s作爲一種手段來傳遞額外的參數到HttpClient#SendAsync
,但我不確定如果那些甚至工作,如果涉及異步方法。
有掛接到Neo4jClient並添加此頭或多或少瑣碎的方式?
謝謝!