我使用LIBRDKAFKA C庫開發了一個RD Kafka客戶端。 LIBRDKAFKA C庫公開了set_config API來爲Consumer和Producer Handles設置配置值。有大約數百個可用的配置可供設置,對於每個值,set_congig變得非常繁瑣。重要的是,它在代碼本身中設置配置的效率不高,因爲我們沒有靈活性來根據不同的平臺調整配置值,因爲它需要RD Kafka客戶端的重新構建。如何從RD Kafka客戶端中的文件讀取配置值?
0
A
回答
0
librdkafka配置界面是爲此設計的,爲95%的配置屬性(其餘爲C回調等)提供了一個簡單的字符串鍵值API,它需要適當的類型。
下面是關於如何實現一個配置文件讀取器(帶key=value\n
語法)的一個例子,它允許任何標準librdkafka配置進行設置:
rd_kafka_conf_t *conf = rd_kafka_conf_new();
FILE *fp;
char buf[512];
int line = 0;
fp = fopen(conf_path, "r");
if (!fp) ;// add error checking..
while (fgets(buf, sizeof(buf)-1, fp)) {
char *t;
char *b = buf;
rd_kafka_conf_res_t res;
char *name, *val;
char errstr[512];
line++;
if ((t = strchr(b, '\n')))
*t = '\0';
if (*b == '#' || !*b)
continue;
if (!(t = strchr(b, '=')))
fprintf(stderr, "%s:%i: expected name=value format\n",
conf_path, line);
name = b;
*t = '\0';
val = t+1;
res = rd_kafka_conf_set(conf, name, val, errstr, sizeof(errstr));
if (res != RD_KAFKA_CONF_OK)
fprintf(stderr, "%s:%i: %s\n", conf_path, line, errstr);
}
fclose(fp);
...
// Create client
rd_kafka_t *rk;
rk = rd_kafka_new(... , conf, ..);
相關問題
- 1. 從配置文件中讀取端點
- 2. 如何從GWT客戶端讀取服務器端.json文件?
- 3. 如何從我的客戶端讀取ashx文件
- 4. 如何從網頁讀取客戶端文件頭?
- 5. 如何從客戶端機器讀取數據文件
- 6. 如何從客戶端訪問和讀取文件?
- 7. 如何在非Java客戶端從HDFS讀取文件
- 8. 如何告訴WCF客戶端從不同的配置文件中讀取設置?
- 9. 如何配置jboss服務器來讀取客戶端證書
- 10. 讀取csv文件客戶端
- 11. 如何從ASPX讀取配置文件?
- 12. 從客戶端讀取ASHX文件中的POST數據
- 13. 從Python CGI腳本中讀取客戶端的頭文件?
- 14. 如何在ASP.NET中讀取/寫入客戶端文件
- 15. Kafka:阻止讀取和不輪詢的Java客戶端
- 16. 如何從客戶端讀取Consul鍵值?
- 17. 如何讀取nodejs中的文件從Web客戶端發送的服務器
- 18. 如何在客戶端配置文件項目中引用system.design?
- 19. 配置Kafka客戶端連接發出的SSL密鑰/ cert
- 20. 如何讀取客戶端上的excel文件內容?
- 21. wcf客戶端配置沒有從服務器獲取值app.config
- 22. 客戶端配置設置
- 23. 如何從客戶端獲取NodeJS中的上傳文件?
- 24. Servicestack - 在.net客戶端配置文件框架上運行內置客戶端
- 25. webservice客戶端的配置
- 26. .NET客戶端配置文件是否值得定位?
- 27. 從客戶端js的web.config中讀取AppKey值SPA
- 28. 安裝程序安裝.NET Framework 4的客戶端配置文件3.5客戶端配置文件
- 29. .NET Framework 4客戶端配置文件與.NET Framework 3.5客戶端配置文件
- 30. Rest服務讀取客戶端中的zip文件
這個問題是關係到RD卡夫卡客戶端目前我沒有」沒有看到任何標籤。任何志願者都可以創建一個這樣的標籤。 – dcds