Skip to content

Commit

Permalink
[ISSUE #3284]Optimize the buildMessage method
Browse files Browse the repository at this point in the history
  • Loading branch information
zhangjidi2016 committed Sep 7, 2021
1 parent d7a830c commit caba786
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@

public class BatchProducer {

private static byte[] msgBody;

public static void main(String[] args) throws MQClientException, UnsupportedEncodingException {

Options options = ServerUtil.buildCommandlineOptions(new Options());
Expand All @@ -74,6 +76,12 @@ public static void main(String[] args) throws MQClientException, UnsupportedEnco
System.out.printf("topic: %s threadCount: %d messageSize: %d batchSize: %d keyEnable: %s propertySize: %d tagCount: %d traceEnable: %s aclEnable: %s%n",
topic, threadCount, messageSize, batchSize, keyEnable, propertySize, tagCount, msgTraceEnable, aclEnable);

StringBuilder sb = new StringBuilder(messageSize);
for (int i = 0; i < messageSize; i += 10) {
sb.append("hello baby");
}
msgBody = sb.toString().getBytes(RemotingHelper.DEFAULT_CHARSET);

final StatsBenchmarkBatchProducer statsBenchmark = new StatsBenchmarkBatchProducer();
statsBenchmark.start();

Expand All @@ -87,14 +95,7 @@ public static void main(String[] args) throws MQClientException, UnsupportedEnco
@Override
public void run() {
while (true) {
List<Message> msgs;

try {
msgs = buildBathMessage(batchSize, messageSize, topic);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return;
}
List<Message> msgs = buildBathMessage(batchSize, topic);

if (CollectionUtils.isEmpty(msgs)) {
return;
Expand Down Expand Up @@ -236,23 +237,12 @@ private static boolean getOptionValue(CommandLine commandLine, char key, boolean
return defaultValue;
}

private static List<Message> buildBathMessage(int batchSize, int messageSize,
String topic) throws UnsupportedEncodingException {
private static List<Message> buildBathMessage(final int batchSize, final String topic) {
List<Message> batchMessage = new ArrayList<>(batchSize);

for (int i = 0; i < batchSize; i++) {
Message msg = new Message();
msg.setTopic(topic);

StringBuilder sb = new StringBuilder();
for (int j = 0; j < messageSize; j += 10) {
sb.append("hello baby");
}

msg.setBody(sb.toString().getBytes(RemotingHelper.DEFAULT_CHARSET));
Message msg = new Message(topic, msgBody);
batchMessage.add(msg);
}

return batchMessage;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@

public class Producer {

private static byte[] msgBody;

public static void main(String[] args) throws MQClientException, UnsupportedEncodingException {

Options options = ServerUtil.buildCommandlineOptions(new Options());
Expand All @@ -70,6 +72,12 @@ public static void main(String[] args) throws MQClientException, UnsupportedEnco
System.out.printf("topic: %s threadCount: %d messageSize: %d keyEnable: %s propertySize: %d tagCount: %d traceEnable: %s aclEnable: %s messageQuantity: %d%n delayEnable: %s%n delayLevel: %s%n",
topic, threadCount, messageSize, keyEnable, propertySize, tagCount, msgTraceEnable, aclEnable, messageNum, delayEnable, delayLevel);

StringBuilder sb = new StringBuilder(messageSize);
for (int i = 0; i < messageSize; i += 10) {
sb.append("hello baby");
}
msgBody = sb.toString().getBytes(RemotingHelper.DEFAULT_CHARSET);

final InternalLogger log = ClientLogger.getLog();

final ExecutorService sendThreadPool = Executors.newFixedThreadPool(threadCount);
Expand Down Expand Up @@ -142,13 +150,7 @@ public void run() {
int num = 0;
while (true) {
try {
final Message msg;
try {
msg = buildMessage(messageSize, topic);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return;
}
final Message msg = buildMessage(topic);
final long beginTimestamp = System.currentTimeMillis();
if (keyEnable) {
msg.setKeys(String.valueOf(beginTimestamp / 1000));
Expand Down Expand Up @@ -290,18 +292,8 @@ public static Options buildCommandlineOptions(final Options options) {
return options;
}

private static Message buildMessage(final int messageSize, final String topic) throws UnsupportedEncodingException {
Message msg = new Message();
msg.setTopic(topic);

StringBuilder sb = new StringBuilder(messageSize);
for (int i = 0; i < messageSize; i += 10) {
sb.append("hello baby");
}

msg.setBody(sb.toString().getBytes(RemotingHelper.DEFAULT_CHARSET));

return msg;
private static Message buildMessage(final String topic) {
return new Message(topic, msgBody);
}

private static void doPrintStats(final LinkedList<Long[]> snapshotList, final StatsBenchmarkProducer statsBenchmark, boolean done) {
Expand Down

0 comments on commit caba786

Please sign in to comment.