4——生產者配置——kafka0.10.x-全系列-加米谷大數據

4——生產者配置——kafka0.10.x-全系列-加米穀大數據

生產者配置

領取大數據開發、大數據挖掘分析、Python人工智能等試聽資料,可上加米穀大數據官網(http://www.dtinone.com/)諮詢領取或者加入加米穀大數據技術交流群領取:234648425

3.2 生產者配置

java生產者配置:

NAME

DESCRIPTION

TYPE

DEFAULT

VALID VALUES

IMPORTANCE

bootstrap.servers

host/port列表,用於初始化建立和Kafka集群的連接。列表格式為host1:port1,host2:port2,....,無需添加所有的集群地址,kafka會根據提供的地址發現其他的地址(你可以多提供幾個,以防提供的服務器關閉)

list

high

key.serializer

key的序列化類(實現序列化接口)

class

high

value.serializer

value的序列化類(實現序列化接口)

class

high

acks

生產者需要leader確認請求完成之前接收的應答數。此配置控制了發送消息的耐用性,支持以下配置:

acks=0 如果設置為0,那麼生產者將不等待任何消息確認。消息將立刻天際到socket緩衝區並考慮發送。在這種情況下不能保障消息被服務器接收到。並且重試機制不會生效(因為客戶端不知道故障了沒有)。每個消息返回的offset始終設置為-1。

acks=1,這意味著leader寫入消息到本地日誌就立即響應,而不等待所有follower應答。在這種情況下,如果響應消息之後但follower還未複製之前leader立即故障,那麼消息將會丟失。

acks=all 這意味著leader將等待所有副本同步後應答消息。此配置保障消息不會丟失(只要至少有一個同步的副本或者)。這是最強壯的可用性保障。等價於acks=-1。

string

1

[all, -1, 0, 1]

high

buffer.memory

生產者用來緩存等待發送到服務器的消息的內存總字節數。如果消息發送比可傳遞到服務器的快,生產者將阻塞max.block.ms之後,拋出異常。

此設置應該大致的對應生產者將要使用的總內存,但不是硬約束,因為生產者所使用的所有內存都用於緩衝。一些額外的內存將用於壓縮(如果啟動壓縮),以及用於保持發送中的請求。

long

33554432

[0,...]

high

compression.type

數據壓縮的類型。默認為空(就是不壓縮)。有效的值有 none,gzip,snappy, 或 lz4。壓縮全部的數據批,因此批的效果也將影響壓縮的比率(更多的批次意味著更好的壓縮)。

string

none

high

retries

設置一個比零大的值,客戶端如果發送失敗則會重新發送。注意,這個重試功能和客戶端在接到錯誤之後重新發送沒什麼不同。如果max.in.flight.requests.per.connection沒有設置為1,有可能改變消息發送的順序,因為如果2個批次發送到一個分區中,並第一個失敗了並重試,但是第二個成功了,那麼第二個批次將超過第一個。

int

0

[0,...,2147483647]

high

ssl.key.password

密鑰倉庫文件中的私鑰的密碼。

password

null

high

ssl.keystore.location

密鑰倉庫文件的位置。可用於客戶端的雙向認證。

string

null

high

ssl.keystore.password

密鑰倉庫文件的倉庫密碼。只有配置了ssl.keystore.location時才需要。

password

null

high

ssl.truststore.location

信任倉庫的位置

string

null

high

ssl.truststore.password

信任倉庫文件的密碼

password

null

high

batch.size

當多個消息要發送到相同分區的時,生產者嘗試將消息批量打包在一起,以減少請求交互。這樣有助於客戶端和服務端的性能提升。該配置的默認批次大小(以字節為單位):

不會打包大於此配置大小的消息。

發送到broker的請求將包含多個批次,每個分區一個,用於發送數據。

較小的批次大小有可能降低吞吐量(批次大小為0則完全禁用批處理)。一個非常大的批次大小可能更浪費內存。因為我們會預先分配這個資源。

int

16384

[0,...]

medium

client.id

當發出請求時傳遞給服務器的id字符串。這樣做的目的是允許服務器請求記錄記錄這個【邏輯應用名】,這樣能夠追蹤請求的源,而不僅僅只是ip/prot。

string

""

medium

connections.max.idle.ms

多少毫秒之後關閉閒置的連接。

long

540000

medium


分享到:


相關文章: