https://github.com/zlaidandan/java/blob/master/RMQReceiver.cala
private class RMQReceiver[T: ClassTag](
amqpHost: String,
amqpPort: Int,
amqpUsername: String,
amqpPassword: String,
amqpVhost: String,
queueName: String,
storageLevel: StorageLevel) extends Receiver[T](storageLevel) with Logging {
val cf = new ConnectionFactory
cf.setHost(amqpHost)
cf.setPort(amqpPort)
cf.setUsername(amqpUsername)
cf.setPassword(amqpPassword)
cf.setVirtualHost(amqpVhost)
val amqpConnection = cf.newConnection();
val amqpChannel = amqpConnection.createChannel();
val queueingConsumer = new QueueingConsumer(amqpChannel)
val amqpConsumerTag = amqpChannel.basicConsume(queueName, true, queueingConsumer)
var blockPushingThread: Thread = null
def onStart() {
val queue = new ArrayBlockingQueue[ByteBuffer](300)
blockPushingThread = new Thread {
setDaemon(true)
override def run() {
while (true) {
val buffer = queue.take()
store(buffer)
}
}
}
blockPushingThread.start()
while (true) {
val delivery = queueingConsumer.nextDelivery(1L)
if (delivery.getEnvelope().getRoutingKey == "realtime.request") {
val message = delivery.getBody
queue.put(ByteBuffer.allocate(message.length).put(message))
}
}
}
def onStop() {
if (blockPushingThread != null) blockPushingThread.interrupt()
if (amqpChannel != null) {
if (amqpConsumerTag != null) {
amqpChannel.basicCancel(amqpConsumerTag)
}
amqpChannel.close()
}
if (amqpConnection != null) {
amqpConnection.close()
}
}
}
分享到:
相关推荐
java的sparkstreaming连接kafka的例子,kafka生产者生产消息,消费者读取消息,sparkstreaming读取kafka小区并进行存储iotdb数据库。
一个完善的Spark Streaming二次封装开源框架,包含:实时流任务调度、kafka偏移量管理,web后台管理,web api启动、停止spark streaming,宕机告警、自动重启等等功能支持,用户只需要关心业务代码,无需关注繁琐的...
sparkStreaming消费数据不丢失,sparkStreaming消费数据不丢失
基于Scala2.11的spark-streaming 2.2.0 jar包,用于java开发
spark Streaming和structed streaming分析,理解整个 Spark Streaming 的模块划分和代码逻辑。
[ ]( )RabbitMQ Spark流媒体接收器RabbitMQ-Receiver是一个库,允许用户使用读取数据。要求该库需要Spark 2.0 +,Scala 2.11 +,RabbitMQ 3.5+使用图书馆有两种使用RabbitMQ-Receiver库的方法: 第一个是在pom.xml...
spark-mqtt-sample 使用Spark Streaming的简单MQTT客户端
1.理解Spark Streaming的工作流程。 2.理解Spark Streaming的工作原理。 3.学会使用Spark Streaming处理流式数据。 二、实验环境 Windows 10 VMware Workstation Pro虚拟机 Hadoop环境 Jdk1.8 三、实验内容 (一)...
基于 Flume+ Kafka+ Spark Streaming 实现实时监控输出日志的报警系统的 Spark Streaming 程序代码。 基于 Flume+Kafka+Spark Streaming 实现实时监控输出日志的报警系统的 Spark Streaming 程序代码,博客链接: ...
(1)利用SparkStreaming从文件目录读入日志信息,日志内容包含: ”日志级别、函数名、日志内容“ 三个字段,字段之间以空格拆分。请看数据源的文件。 (2)对读入都日志信息流进行指定筛选出日志级别为error或warn...
2、基于spark streaming+Cassandra的实时分析和监控,包括性能分析、账号安全主动防御。 web部分采用spring boot开发,前端采用angularJS组织页面相关的各个部分,系统的技术和效果在2016~2017年在行业具有一定先进...
1.Spark Streaming整合Flume需要的安装包. 2. Spark Streaming拉取Flume数据的flume配置文件.conf 3. Flume向Spark Streaming推数据的flume配置文件.conf
这个压缩包中包含的是Flume-1.6.0对接Spark-1.6.2下的Spark Streaming时需要用到的jar包,将这些jar包放置到flume安装目录下对应的lib中
Scala代码积累之spark streaming kafka 数据存入到hive源码实例,Scala代码积累之spark streaming kafka 数据存入到hive源码实例。
flume+Logstash+Kafka+Spark Streaming进行实时日志处理分析【大数据】
spark Streaming的原理介绍和与storm的对比
写的非常好,早了好久才找到。SparkStreaming预研报告
基于kafka和spark streaming和hbase的日志统计分析系统.zip基于kafka和spark streaming和hbase的日志统计分析系统.zip基于kafka和spark streaming和hbase的日志统计分析系统.zip基于kafka和spark streaming和hbase的...
包含kafka消息中间件的使用和Spark Streaming的示例。
讲述Storm与sparkStreaming分别用法与区别,在操作流程等。