package com.alibaba.parse;
public class ParseMqData {
public static void main(String[] args) {
CousumerRokcetmq consumerV = new CousumerRokcetmq("consumer-v", "172.16.100.18:9876","mohan-radar-mqtt-test-v","key");
consumerV.start();
CousumerRokcetmq consumerR = new CousumerRokcetmq("consume-r", "172.16.100.18:9876","mohan-radar-mqtt-test-r","key");
consumerR.start();
}
}
package com.alibaba.parse;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.SneakyThrows;
import org.apache.rocketmq.client.QueryResult;
import org.apache.rocketmq.client.consumer.DefaultMQPullConsumer;
import org.apache.rocketmq.client.exception.MQClientException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
@Data
@NoArgsConstructor
public class CousumerRokcetmq extends Thread {
private String namesrvAddr;
private String consumerGroup;
private String topicName;
private String key;
public CousumerRokcetmq(String consumer, String namesrv,String topicName,String key) {
this.namesrvAddr=namesrv;
this.consumerGroup=consumer;
this.topicName=topicName;
this.key=key;
}
@SneakyThrows
@Override
public void run() {
DefaultMQPullConsumer consumer = new DefaultMQPullConsumer(consumerGroup);
consumer.setNamesrvAddr(namesrvAddr);
consumer.start();
System.out.println("开启线程--->"+currentThread().getName());
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
System.out.println("处理线程名字--->"+currentThread().getName());
Long startTime=System.currentTimeMillis()+240000;
Long pervionsTime=startTime-1000;
try {
System.out.println("查询开始的时间:"+stampToDate(pervionsTime));
System.out.println("查询结束的时间:"+stampToDate(startTime));
QueryResult queryResult = consumer.queryMessage(topicName, key, 32, pervionsTime, startTime);
System.out.println(queryResult);
System.out.println("查询的topic--->"+topicName);
} catch (MQClientException | InterruptedException e) {
System.out.println("没有新的消息");
}
}
};
timer.schedule(task,1000,1000);
}
public static String stampToDate(Long value) {
String res;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(value);
res = simpleDateFormat.format(date);
return res;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.alibaba</groupId>
<artifactId>ParseRocketmq</artifactId>
<version>1.0.2-SNAPSHOT</version>
<name>ParseRocketmq</name>
<description>解析mq</description>
<properties>
<java.version>8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.3.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.apache.commons</groupId>-->
<!-- <artifactId>commons-io</artifactId>-->
<!-- <version>1.3.2</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
<!-- 这个插件是关键 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<!-- 这个是assembly 所在位置 -->
<descriptors>
<descriptor>${basedir}/src/main/assembly/assembly.xml</descriptor>
</descriptors>
<!--打包解压后的目录名-->
<finalName>${project.artifactId}</finalName>
<!-- 打包压缩包位置-->
<outputDirectory>${project.build.directory}/release</outputDirectory>
<!-- 打包编码 -->
<encoding>UTF-8</encoding>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
package com.alibaba.parse;
import io.netty.channel.socket.DatagramPacket;
import io.netty.handler.ipfilter.IpFilterRule;
import lombok.Data;
import org.apache.rocketmq.client.QueryResult;
import org.apache.rocketmq.client.exception.MQClientException;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.*;
import java.util.*;
@Data
public class SendHeartbeat extends Thread {
private String IPaddr;
private int Port;
public SendHeartbeat(String Ip,int Port){
this.IPaddr=Ip;
this.Port=Port;
}
@Override
public void run() {
Timer timer = new Timer();
try {
Socket socket = new Socket(IPaddr, Port);
System.out.println("链接成功");
TimerTask task = new TimerTask() {
@Override
public void run() {
OutputStream ops = null;
try {
ops = socket.getOutputStream();
OutputStreamWriter opsw = new OutputStreamWriter(ops);
BufferedWriter bw = new BufferedWriter(opsw);
bw.write("hello world\\r\\n\\r\\n");
bw.flush();
System.out.println(bw);
} catch (IOException e) {
System.out.println("连接失败");
}
}
};
timer.schedule(task,1000,5000);
} catch (IOException e) {
e.printStackTrace();
}
}
public static String bytesToHex(byte[] bytes) {
StringBuffer sb = new StringBuffer();
for(int i = 0; i < bytes.length; i++) {
String hex = Integer.toHexString(bytes[i] & 0xFF);
if(hex.length() < 2){
sb.append(0);
}
sb.append(hex);
}
return sb.toString();
}
}
package com.alibaba.parse;
import lombok.Data;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
import java.util.Timer;
import java.util.TimerTask;
@Data
public class LoopListening extends Thread {
private String IPaddr;
private int Port;
public LoopListening(String Ip, int Port) {
this.IPaddr = Ip;
this.Port = Port;
}
@Override
public void run() {
Timer timer = new Timer();
try {
Socket socket = new Socket(IPaddr, Port);
System.out.println("链接成功");
TimerTask task = new TimerTask(){
@Override
public void run() {
InputStream ips = null;
try {
ips = socket.getInputStream();
InputStreamReader ipsr = new InputStreamReader(ips);
BufferedReader br = new BufferedReader(ipsr);
String s = "";
while ((s = br.readLine()) != null) {
System.out.println(s);
}
} catch (IOException e) {
e.printStackTrace();
}
}
};
timer.schedule(task,1000,1000);
} catch (IOException e) {
e.printStackTrace();
}
}
}