1 源码下载

wget http://mirror.bit.edu.cn/apache/rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip
unzip rocketmq-all-4.2.0-bin-release.zip

2 启动namesrv

cd /Users/rocketmq/bin
nohup sh mqnamesrv&

结果出错:

cat nohup.out
OpenJDK 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:127)
at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:501)
at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1218)
at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506)
at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:491)
at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:965)
at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:210)
at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:353)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:408)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:455)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:140)
at java.lang.Thread.run(Thread.java:852)
ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! !!
ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! !!
ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! !!
ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! !!

 修改runserver.sh 和 runbroker.sh 文件,将 [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/user/java 改为 [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java

再执行命令,显示

The Name Server boot success. serializeType=JSON

  说明namesrv成功了

3 启动broker

nohup sh mqbroker -n 11.162.141.67:9876&

看nohup.out报错

/Users/rocketmq/bin/runbroker.sh: line 62: 204749 Killed                  $JAVA ${JAVA_OPT} $@  

说明脚本执行有问题,比较脚本runbroker.sh和runserver.sh,发现这两个文件的配置有不一样

#===========================================================================================
# JVM Configuration
#===========================================================================================
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:-UseParNewGC"
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/rmq_srv_gc.log -XX:+PrintGCDetails"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib"
#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"

但是runserver.sh脚本能执行成功,于是将runserver.sh的配置替换runbroker.sh,再执行命令,成功了。

netstat -ano | grep "11.162.141.67:9876"
tcp 0 0 11.162.141.67:50772 11.162.141.67:9876 ESTABLISHED off (0.00/0/0)
tcp 0 0 11.162.141.67:9876 11.162.141.67:50772 ESTABLISHED off (0.00/0/0)

目前都是在一台机器上,既作为namesrv又作为broker。

4 消息生产

package org.apache.rocketmq.client.producer;

import java.io.UnsupportedEncodingException;
import java.util.List; import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingException; /**
* Created by test on 17/6/14.
*/
public class Producer {
public static void main(String[] args) throws UnsupportedEncodingException {
try {
System.setProperty(MixAll.NAMESRV_ADDR_PROPERTY, "11.162.141.67:9876");
MQProducer producer = new DefaultMQProducer("rocketmq-study"); producer.start(); String[] tags = new String[]{"TagA", "TagB", "TagC", "TagD", "TagE"}; for (int i = 0; i < 100; i++) { int orderId = i % 10;
Message msg =
new Message("TopicTestjjj", tags[i % tags.length], "KEY" + i,
("Hello RocketMQ " + i).getBytes(RemotingHelper.DEFAULT_CHARSET)); SendResult sendResult = producer.send(msg, new MessageQueueSelector() {
@Override
public MessageQueue select(List<MessageQueue> mqs, Message msg, Object arg) {
Integer id = (Integer) arg;
int index = id % mqs.size();
return mqs.get(index);
}
}, orderId); System.out.println(sendResult);
} producer.shutdown();
} catch (MQClientException e) {
e.printStackTrace();
} catch (RemotingException e) {
e.printStackTrace();
} catch (MQBrokerException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

执行结果:

SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F5200000, offsetMsgId=0BA28D4300002A9F00000000000005F8, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=2]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F5640001, offsetMsgId=0BA28D4300002A9F00000000000006B7, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=2]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F5720002, offsetMsgId=0BA28D4300002A9F0000000000000776, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=2]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F5800003, offsetMsgId=0BA28D4300002A9F0000000000000835, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=2]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F58E0004, offsetMsgId=0BA28D4300002A9F00000000000008F4, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=3]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F59D0005, offsetMsgId=0BA28D4300002A9F00000000000009B3, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=3]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F5AB0006, offsetMsgId=0BA28D4300002A9F0000000000000A72, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=3]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F5B90007, offsetMsgId=0BA28D4300002A9F0000000000000B31, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=3]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F5C90008, offsetMsgId=0BA28D4300002A9F0000000000000BF0, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=4]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F5DA0009, offsetMsgId=0BA28D4300002A9F0000000000000CAF, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=4]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F5E8000A, offsetMsgId=0BA28D4300002A9F0000000000000D6E, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=5]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F5F7000B, offsetMsgId=0BA28D4300002A9F0000000000000E2F, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=5]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F606000C, offsetMsgId=0BA28D4300002A9F0000000000000EF0, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=4]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F614000D, offsetMsgId=0BA28D4300002A9F0000000000000FB1, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=4]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F627000E, offsetMsgId=0BA28D4300002A9F0000000000001072, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=6]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F635000F, offsetMsgId=0BA28D4300002A9F0000000000001133, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=6]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F6460010, offsetMsgId=0BA28D4300002A9F00000000000011F4, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=5]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F6570011, offsetMsgId=0BA28D4300002A9F00000000000012B5, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=5]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F6680012, offsetMsgId=0BA28D4300002A9F0000000000001376, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=7]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F6770013, offsetMsgId=0BA28D4300002A9F0000000000001437, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=7]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F6860014, offsetMsgId=0BA28D4300002A9F00000000000014F8, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=8]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F6940015, offsetMsgId=0BA28D4300002A9F00000000000015B9, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=8]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F6A20016, offsetMsgId=0BA28D4300002A9F000000000000167A, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=6]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F6B20017, offsetMsgId=0BA28D4300002A9F000000000000173B, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=6]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F6BF0018, offsetMsgId=0BA28D4300002A9F00000000000017FC, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=9]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F6CD0019, offsetMsgId=0BA28D4300002A9F00000000000018BD, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=9]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F6DB001A, offsetMsgId=0BA28D4300002A9F000000000000197E, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=7]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F6E9001B, offsetMsgId=0BA28D4300002A9F0000000000001A3F, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=7]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F6F7001C, offsetMsgId=0BA28D4300002A9F0000000000001B00, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=10]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F705001D, offsetMsgId=0BA28D4300002A9F0000000000001BC1, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=10]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F713001E, offsetMsgId=0BA28D4300002A9F0000000000001C82, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=11]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F722001F, offsetMsgId=0BA28D4300002A9F0000000000001D43, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=11]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F7310020, offsetMsgId=0BA28D4300002A9F0000000000001E04, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=8]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F73F0021, offsetMsgId=0BA28D4300002A9F0000000000001EC5, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=8]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F74E0022, offsetMsgId=0BA28D4300002A9F0000000000001F86, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=12]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F75B0023, offsetMsgId=0BA28D4300002A9F0000000000002047, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=12]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F7690024, offsetMsgId=0BA28D4300002A9F0000000000002108, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=9]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F7770025, offsetMsgId=0BA28D4300002A9F00000000000021C9, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=9]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F7850026, offsetMsgId=0BA28D4300002A9F000000000000228A, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=13]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F7940027, offsetMsgId=0BA28D4300002A9F000000000000234B, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=13]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F7A20028, offsetMsgId=0BA28D4300002A9F000000000000240C, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=14]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F7B00029, offsetMsgId=0BA28D4300002A9F00000000000024CD, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=14]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F7BD002A, offsetMsgId=0BA28D4300002A9F000000000000258E, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=10]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F7CD002B, offsetMsgId=0BA28D4300002A9F000000000000264F, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=10]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F7DB002C, offsetMsgId=0BA28D4300002A9F0000000000002710, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=15]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F7E9002D, offsetMsgId=0BA28D4300002A9F00000000000027D1, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=15]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F7F7002E, offsetMsgId=0BA28D4300002A9F0000000000002892, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=11]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F806002F, offsetMsgId=0BA28D4300002A9F0000000000002953, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=11]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F8140030, offsetMsgId=0BA28D4300002A9F0000000000002A14, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=16]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F8230031, offsetMsgId=0BA28D4300002A9F0000000000002AD5, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=16]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F8390032, offsetMsgId=0BA28D4300002A9F0000000000002B96, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=17]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F8480033, offsetMsgId=0BA28D4300002A9F0000000000002C57, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=17]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F8560034, offsetMsgId=0BA28D4300002A9F0000000000002D18, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=12]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F8640035, offsetMsgId=0BA28D4300002A9F0000000000002DD9, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=12]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F8720036, offsetMsgId=0BA28D4300002A9F0000000000002E9A, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=18]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F87F0037, offsetMsgId=0BA28D4300002A9F0000000000002F5B, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=18]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F88C0038, offsetMsgId=0BA28D4300002A9F000000000000301C, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=13]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F89C0039, offsetMsgId=0BA28D4300002A9F00000000000030DD, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=13]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F8A9003A, offsetMsgId=0BA28D4300002A9F000000000000319E, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=19]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F8B7003B, offsetMsgId=0BA28D4300002A9F000000000000325F, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=19]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F8C5003C, offsetMsgId=0BA28D4300002A9F0000000000003320, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=20]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F8D2003D, offsetMsgId=0BA28D4300002A9F00000000000033E1, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=20]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F8DF003E, offsetMsgId=0BA28D4300002A9F00000000000034A2, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=14]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F8EE003F, offsetMsgId=0BA28D4300002A9F0000000000003563, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=14]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F8FB0040, offsetMsgId=0BA28D4300002A9F0000000000003624, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=21]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F9090041, offsetMsgId=0BA28D4300002A9F00000000000036E5, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=21]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F9180042, offsetMsgId=0BA28D4300002A9F00000000000037A6, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=15]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F9260043, offsetMsgId=0BA28D4300002A9F0000000000003867, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=15]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F9340044, offsetMsgId=0BA28D4300002A9F0000000000003928, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=22]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F9420045, offsetMsgId=0BA28D4300002A9F00000000000039E9, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=22]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F94F0046, offsetMsgId=0BA28D4300002A9F0000000000003AAA, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=23]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F95D0047, offsetMsgId=0BA28D4300002A9F0000000000003B6B, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=23]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F96A0048, offsetMsgId=0BA28D4300002A9F0000000000003C2C, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=16]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F9770049, offsetMsgId=0BA28D4300002A9F0000000000003CED, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=16]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F985004A, offsetMsgId=0BA28D4300002A9F0000000000003DAE, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=24]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F993004B, offsetMsgId=0BA28D4300002A9F0000000000003E6F, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=24]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F9A1004C, offsetMsgId=0BA28D4300002A9F0000000000003F30, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=17]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F9AF004D, offsetMsgId=0BA28D4300002A9F0000000000003FF1, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=17]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F9BC004E, offsetMsgId=0BA28D4300002A9F00000000000040B2, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=25]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F9CB004F, offsetMsgId=0BA28D4300002A9F0000000000004173, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=25]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F9D80050, offsetMsgId=0BA28D4300002A9F0000000000004234, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=26]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F9E60051, offsetMsgId=0BA28D4300002A9F00000000000042F5, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=26]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70F9F50052, offsetMsgId=0BA28D4300002A9F00000000000043B6, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=18]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FA050053, offsetMsgId=0BA28D4300002A9F0000000000004477, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=18]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FA130054, offsetMsgId=0BA28D4300002A9F0000000000004538, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=27]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FA200055, offsetMsgId=0BA28D4300002A9F00000000000045F9, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=27]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FA2E0056, offsetMsgId=0BA28D4300002A9F00000000000046BA, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=19]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FA3B0057, offsetMsgId=0BA28D4300002A9F000000000000477B, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=19]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FA480058, offsetMsgId=0BA28D4300002A9F000000000000483C, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=28]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FA570059, offsetMsgId=0BA28D4300002A9F00000000000048FD, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=28]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FA65005A, offsetMsgId=0BA28D4300002A9F00000000000049BE, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=29]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FA77005B, offsetMsgId=0BA28D4300002A9F0000000000004A7F, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=29]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FA8D005C, offsetMsgId=0BA28D4300002A9F0000000000004B40, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=20]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FAAA005D, offsetMsgId=0BA28D4300002A9F0000000000004C01, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=20]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FABE005E, offsetMsgId=0BA28D4300002A9F0000000000004CC2, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=30]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FACD005F, offsetMsgId=0BA28D4300002A9F0000000000004D83, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=30]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FAE00060, offsetMsgId=0BA28D4300002A9F0000000000004E44, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=2], queueOffset=21]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FAF20061, offsetMsgId=0BA28D4300002A9F0000000000004F05, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=3], queueOffset=21]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FB010062, offsetMsgId=0BA28D4300002A9F0000000000004FC6, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=0], queueOffset=31]
SendResult [sendStatus=SEND_OK, msgId=1E065BDA6AEB3764951D2E70FB140063, offsetMsgId=0BA28D4300002A9F0000000000005087, messageQueue=MessageQueue [topic=TopicTestjjj, brokerName=taobaodaily011162141067.et15sqa, queueId=1], queueOffset=31]

ConsumeQueue的存储位置
默认的存储位置:${user.home} \store\consumequeue${topicName}${queueId}${fileName}
可以修改:配置文件的
storePathRootDir=/home/haieradmin/mqstore/rocketmqstore
storePathCommitLog=/home/haieradmin/mqstore/rocketmqstore/commitlog
这两个参数。

登录机器,看/home/users/store目录

abort  checkpoint  commitlog  config  consumequeue  index  lock  nohup.out

目录树

├── commitlog
│ └── 00000000000000000000
│ └── 00000000001073741824
├── consumequeue
│ ├── TopicTestjjj
│ │ ├── 0
│ │ │ └── 00000000000000000000
│ │ ├── 1
│ │ │ └── 00000000000000000000
│ │ ├── 2
│ │ │ └── 00000000000000000000
│ │ └── 3
│ │ └── 00000000000000000000

可以看到commitLog下面刚好两个1G的文件,分别以偏移量作为文件名。

看一下文件内容:

$strings 00000000000000000000
Hello RocketMQ 0
TopicTestjjj
HKEYS
KEY0
UNIQ_KEY
1E065BDA6AB118B4AAC22BAB0AEA0000
WAIT
true
TAGS
TagA
Hello RocketMQ 1
TopicTestjjj
HKEYS
KEY1
UNIQ_KEY
1E065BDA6AB118B4AAC22BAB2F800001
WAIT
true
TAGS
TagB
Hello RocketMQ 2
TopicTestjjj
HKEYS
KEY2
UNIQ_KEY
1E065BDA6AB118B4AAC22BAB2F8E0002
WAIT
true
TAGS
TagC
Hello RocketMQ 3
TopicTestjjj
HKEYS
KEY3
UNIQ_KEY

顺便说一下,消息队列文件名规则:
文件默认存储大小1G。
文件名以已有存储容量依次递增,类似如下:

00000000000000000000
00000000001073741824
00000000002147483648
。。。

这是个二进制文件,打开看一下。

$od -Ax -tx1 00000000000000000000
000000 00 00 00 00 00 00 00 00 00 00 00 bf 00 00 00 00
000010 00 27 a8 07 00 00 00 00 00 00 02 fc 00 00 00 bf
000020 00 00 00 00 00 27 a8 0b 00 00 00 00 00 00 05 f8
000030 00 00 00 bf 00 00 00 00 00 27 a8 07 00 00 00 00
000040 00 00 08 f4 00 00 00 bf 00 00 00 00 00 27 a8 0b
000050 00 00 00 00 00 00 0b f0 00 00 00 bf 00 00 00 00
000060 00 27 a8 0a 00 00 00 00 00 00 0d 6e 00 00 00 c1
000070 00 00 00 00 00 27 a8 07 00 00 00 00 00 00 10 72
000080 00 00 00 c1 00 00 00 00 00 27 a8 0b 00 00 00 00
000090 00 00 13 76 00 00 00 c1 00 00 00 00 00 27 a8 0a
0000a0 00 00 00 00 00 00 14 f8 00 00 00 c1 00 00 00 00
0000b0 00 27 a8 07 00 00 00 00 00 00 17 fc 00 00 00 c1
0000c0 00 00 00 00 00 27 a8 0b 00 00 00 00 00 00 1b 00
0000d0 00 00 00 c1 00 00 00 00 00 27 a8 0a 00 00 00 00
0000e0 00 00 1c 82 00 00 00 c1 00 00 00 00 00 27 a8 07
0000f0 00 00 00 00 00 00 1f 86 00 00 00 c1 00 00 00 00
000100 00 27 a8 0b 00 00 00 00 00 00 22 8a 00 00 00 c1
000110 00 00 00 00 00 27 a8 0a 00 00 00 00 00 00 24 0c
000120 00 00 00 c1 00 00 00 00 00 27 a8 07 00 00 00 00
000130 00 00 27 10 00 00 00 c1 00 00 00 00 00 27 a8 0b
000140 00 00 00 00 00 00 2a 14 00 00 00 c1 00 00 00 00
000150 00 27 a8 0a 00 00 00 00 00 00 2b 96 00 00 00 c1
000160 00 00 00 00 00 27 a8 07 00 00 00 00 00 00 2e 9a
000170 00 00 00 c1 00 00 00 00 00 27 a8 0b 00 00 00 00
000180 00 00 31 9e 00 00 00 c1 00 00 00 00 00 27 a8 0a
000190 00 00 00 00 00 00 33 20 00 00 00 c1 00 00 00 00
0001a0 00 27 a8 07 00 00 00 00 00 00 36 24 00 00 00 c1
0001b0 00 00 00 00 00 27 a8 0b 00 00 00 00 00 00 39 28
0001c0 00 00 00 c1 00 00 00 00 00 27 a8 0a 00 00 00 00
0001d0 00 00 3a aa 00 00 00 c1 00 00 00 00 00 27 a8 07
0001e0 00 00 00 00 00 00 3d ae 00 00 00 c1 00 00 00 00
0001f0 00 27 a8 0b 00 00 00 00 00 00 40 b2 00 00 00 c1
000200 00 00 00 00 00 27 a8 0a 00 00 00 00 00 00 42 34
000210 00 00 00 c1 00 00 00 00 00 27 a8 07 00 00 00 00
000220 00 00 45 38 00 00 00 c1 00 00 00 00 00 27 a8 0b
000230 00 00 00 00 00 00 48 3c 00 00 00 c1 00 00 00 00
000240 00 27 a8 0a 00 00 00 00 00 00 49 be 00 00 00 c1
000250 00 00 00 00 00 27 a8 07 00 00 00 00 00 00 4c c2
000260 00 00 00 c1 00 00 00 00 00 27 a8 0b 00 00 00 00
000270 00 00 4f c6 00 00 00 c1 00 00 00 00 00 27 a8 0a
000280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
5b8d80

ConsumeQueue中每个消息时20Byte长。结构为

所以,上面00 00 00 bf 表示size。

  

困,明天继续。

RocketMQ环境搭建的更多相关文章

  1. RocketMQ环境搭建(双master双slave模式)

    1.环境准备: 准备四台主机(我这里用CentOSx64) 主机 角色 broker 192.168.192.130 Master1 BrokerServerA 192.168.192.131 Mas ...

  2. RocketMQ环境搭建(双master模式)

    介绍: 多Master模式,一个集群无Slave,全是Master,例如2个Master或者3个Master. 优点:配置简单,单个Master宕机或重启维护对应用无影响,在磁盘配置为RAID10时, ...

  3. rocketmq 集群环境搭建配置

    rocketmq环境搭建配置: 一.   搭建三主集群,环境:centos-64 7.4 + RocketMQ-4.3.2 Master01: 192.168.102.68 Master02: 192 ...

  4. RocketMQ在Windows平台下环境搭建

    一.  环境搭建 需要jdk1.6(以上) 64bit, maven, eclipse 二.  RocketMQ项目下载 项目地址:https://github.com/alibaba/RocketM ...

  5. RocketMQ在linux平台下环境搭建

    RocketMQ在linux下部署运行和window类似,只不过启动namesrv和broker是通过mqnamesrv.sh 和 mqbroker.sh来启动的. 一.  环境搭建 需要jdk1.6 ...

  6. rocketmq那些事儿之本地调试环境搭建

    上一篇文章中我们已经介绍过rocketmq的集群环境搭建,然而在源码的学习中我们还需要进行本地的调试和问题的定位查找,毕竟还是在本地方便些,今天就说一说如何进行源码的本地调试 下载编译 对于rocke ...

  7. RocketMQ系列(二)环境搭建

    RocketMQ的基本概念在上一篇中给大家介绍了,这一节将给大家介绍环境搭建.RocketMQ中最基础的就是NameServer,我们先来看看它是怎么搭建的. NameServer RocketMQ要 ...

  8. RocketMQ(1)---架构原理及环境搭建

    一.架构简述 RocketMQ阿里开源的一个分布式消息传递和流媒体平台,具有低延迟,高性能和可靠性, 万亿级容量和灵活的可伸缩性.跟其它中间件相比,RocketMQ的特点是纯JAVA实现,在发生宕机和 ...

  9. Netty环境搭建 (源码死磕2)

    [正文]netty源码  死磕2: 环境搭建 本小节目录 1. Netty为什么火得屌炸天? 1.1. Netty是什么? 1.2. Netty火到什么程度呢? 1.3. Netty为什么这么火? 2 ...

随机推荐

  1. 【代码笔记】Web-ionic-表单和输入框

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  2. nginx-1-初识nginx

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的R ...

  3. [20171113]修改表结构删除列相关问题4.txt

    [20171113]修改表结构删除列相关问题4.txt --//连续写了3篇修改表结构删除列的相关问题,链接如下: http://blog.itpub.net/267265/viewspace-214 ...

  4. TinyEditor

    今天在github 上看到一个非常巧妙的项目:umpox/TinyEditor 使用简单的浏览器就能构造一个简单的实时运行代码的基于浏览器的前端编辑器,只需要很少代码: 使用方法: 粘贴如下代码到浏览 ...

  5. 使用python3.6和django1.9的xadmin 遇到坑,__unicode__()和__str__()

    原因:python版本为3.6,Python3.X的版本不可使用__unicode__()(python2.x可用),应改为__str__().

  6. Xmind破解

    原始教程 http://df1551e3.wiz03.com/share/s/3v5l7z2wdQVs2llAUc0C_-n_2cPZVe0kEA2n2iw1Ay1ApF_o

  7. <20180923>中秋节日期间的维护日志

    (一) 陌生环境下断网是有风险的,提前做好准备. 1.1 某企业的机柜自2017年5月开始就没有作硬件更新和维护了: 趁着这次节日空挡可做一个机柜的重新整理维护: 首先看了下是老款某知名品牌的型号为6 ...

  8. arcgis如何求两个栅格数据集的差集

    栅格数据集没有擦除功能,现在有栅格A和栅格B,怎么求两个栅格的差集C 具体步骤如下: 1.首先利用栅格计算器,把栅格B中的value全部赋值为0 输入语句:"栅格B" * 0 2  ...

  9. ajax json 表格排序,分页,自己定义每页数量

    ajax json 表格排序.分页,自己定义每页数量  点击表头能够排序.依照升序或者降序,另外支持多列排序 设置每页数量 演示   XML/HTML Code <table id='examp ...

  10. wifi 安卓手机

    通过wifi向服务器端发送数据 https://www.cnblogs.com/zhaoxinshanwei/p/3573813.html http://www.hx-wl.com.cn/51wifi ...