@@ -64,10 +64,12 @@ def dr_cb(self, err, msg):
64
64
parser .add_argument ('--topic' , type = str , required = True )
65
65
parser .add_argument ('--throughput' , type = int , default = 0 )
66
66
parser .add_argument ('--broker-list' , dest = 'conf_bootstrap.servers' , required = True )
67
+ parser .add_argument ('--bootstrap-server' , dest = 'conf_bootstrap.servers' )
67
68
parser .add_argument ('--max-messages' , type = int , dest = 'max_msgs' , default = 1000000 ) # avoid infinite
68
69
parser .add_argument ('--value-prefix' , dest = 'value_prefix' , type = str , default = None )
69
70
parser .add_argument ('--acks' , type = int , dest = 'topicconf_request.required.acks' , default = - 1 )
70
71
parser .add_argument ('--message-create-time' , type = int , dest = 'create_time' , default = 0 )
72
+ parser .add_argument ('--repeating-keys' , type = int , dest = 'repeating_keys' , default = 0 )
71
73
parser .add_argument ('--producer.config' , dest = 'producer_config' )
72
74
parser .add_argument ('-X' , nargs = 1 , dest = 'extra_conf' , action = 'append' , help = 'Configuration property' , default = [])
73
75
args = vars (parser .parse_args ())
@@ -92,6 +94,9 @@ def dr_cb(self, err, msg):
92
94
else :
93
95
value_fmt = '%d'
94
96
97
+ repeating_keys = args ['repeating_keys' ]
98
+ key_counter = 0
99
+
95
100
if throughput > 0 :
96
101
delay = 1.0 / throughput
97
102
else :
@@ -106,8 +111,14 @@ def dr_cb(self, err, msg):
106
111
107
112
t_end = time .time () + delay
108
113
while vp .run :
114
+ if repeating_keys != 0 :
115
+ key = '%d' % key_counter
116
+ key_counter = (key_counter + 1 ) % repeating_keys
117
+ else :
118
+ key = None
119
+
109
120
try :
110
- vp .producer .produce (topic , value = (value_fmt % i ),
121
+ vp .producer .produce (topic , value = (value_fmt % i ), key = key ,
111
122
timestamp = args .get ('create_time' , 0 ))
112
123
vp .num_sent += 1
113
124
except KafkaException as e :
0 commit comments