kafka基于zookeeper。

需要安装kafka、zookeeper。

安装方法参考:http://tzz6.iteye.com/blog/2401197

启动zookeeper:点击zkServer.cmd启动zookeeper。

启动kafka:

aaarticlea/png;base64,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" alt="" />

如果启动报错:

启动kafka的时候报错:

ERROR Error while deleting the clean shutdown file in dir E:\kafka_2.11-1.0.0\tmp\kafka-logs (kafka.server.LogDirFailureChannel)
java.nio.file.FileSystemException: E:\kafka_2.11-1.0.0\tmp\kafka-logs\__consumer_offsets-9\00000000000000000000.timeindex: 另一个程序正在使用此文件,进程无法访问。

解决办法:

删除日志:

日志的路径在kafka的文件中找到server.properties:log.dirs=/tmp/kafka-logs。删除tmp文件夹下的kafka-logs文件夹。重启kafka即可。

kafka配置:

kafka-beans.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <context:component-scan base-package="com.unionpay.producer"></context:component-scan>
<context:component-scan base-package="com.unionpay.consumer"></context:component-scan> <bean id="kafkaProducerDemo" class="com.test.www.unionpay.producer.KafkaProducerDemo">
<property name="properties">
<props>
<prop key="topic">my-replicated-topic</prop>
<prop key="bootstrap.servers">127.0.0.1:9092</prop>
<prop key="acks">all</prop>
<prop key="key.serializer">org.apache.kafka.common.serialization.StringSerializer
</prop>
<prop key="value.serializer">org.apache.kafka.common.serialization.StringSerializer
</prop>
<prop key="buffer.memory">33554432</prop>
</props> </property>
</bean> <bean id="kafkaConsumerDemo" class="com.test.www.unionpay.consumer.KafkaConsumerDemo">
<property name="props">
<props>
<prop key="topic">my-replicated-topic</prop>
<prop key="bootstrap.servers">127.0.0.1:9092</prop>
<prop key="group.id">group1</prop>
<prop key="enable.auto.commit">true</prop>
<prop key="auto.commit.interval.ms">1000</prop>
<prop key="session.timeout.ms">30000</prop>
<prop key="key.deserializer">org.apache.kafka.common.serialization.StringDeserializer
</prop>
<prop key="value.deserializer">org.apache.kafka.common.serialization.StringDeserializer
</prop>
</props> </property>
</bean>
</beans>

redis.properties:

# 控制一个pool可分配多少个jedis实例
redis.pool.maxTotal=1000
# 控制一个pool最多有多少个状态为idle(空闲)的jedis实例
redis.pool.maxIdle=200
# 表示当borrow一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException
redis.pool.maxWaitMillis=2000
#在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的
redis.pool.testOnBorrow=true
# redis 单机
# 单机 host
jedis.host=127.0.0.1
# 单机 port
jedis.port=6379

KafkaProducerDemo.java:

package com.test.www.unionpay.producer;

import java.util.Properties;

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord; public class KafkaProducerDemo {
Properties properties;
public KafkaProducerDemo() { }
public KafkaProducerDemo(Properties properties) {
super();
this.properties = properties;
} public Properties getProperties() {
return properties;
} public void setProperties(Properties properties) {
this.properties = properties;
} public void sendMessage(String msg) { KafkaProducer<String, String> producer = new KafkaProducer<String, String>(properties); ProducerRecord<String, String> record = new ProducerRecord<String, String>(properties.getProperty("topic"),msg);
producer.send(record); producer.close(); } }

KafkaConsumerDemo.java:

package com.test.www.unionpay.consumer;

import java.util.Arrays;
import java.util.Properties; import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer; public class KafkaConsumerDemo {
private Properties props;
public KafkaConsumerDemo() {
}
public KafkaConsumerDemo(Properties props) {
super();
this.props = props;
} public Properties getProps() {
return props;
} public void setProps(Properties props) {
this.props = props;
} public String receive(){ KafkaConsumer<String,String> consumer = new KafkaConsumer<String,String>(props);
consumer.subscribe(Arrays.asList(props.getProperty("topic"))); String msg = "";
while(true){
ConsumerRecords<String,String> consumerRecords = consumer.poll(100);
for(ConsumerRecord<String, String> consumerRecord:consumerRecords){
msg += consumerRecord.value();
}
consumer.close();
return msg;
}
} }

KafkaController.java:

package com.test.www.web.controller;

import java.text.SimpleDateFormat;
import java.util.Date; import javax.annotation.Resource; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView; import com.test.www.unionpay.consumer.KafkaConsumerDemo;
import com.test.www.unionpay.producer.KafkaProducerDemo; @Controller
public class KafkaController { @Resource(name = "kafkaProducerDemo")
KafkaProducerDemo producer; @Resource(name = "kafkaConsumerDemo")
KafkaConsumerDemo consumer; @RequestMapping(value = "/welcome")
public ModelAndView welcome() {
System.out.println("--------welcome--------");
ModelAndView mv = new ModelAndView();
mv.setViewName("welcome");
return mv;
} @RequestMapping(value = "/sendmessage", method = RequestMethod.GET)
public ModelAndView sendMessage() {
System.out.println("--------sendmessage--------");
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String now = sdf.format(date); ModelAndView mv = new ModelAndView();
mv.addObject("time", now);
mv.setViewName("kafka_send");
return mv;
} @RequestMapping(value = "/onsend", method = RequestMethod.POST)
public ModelAndView onsend(@RequestParam("message") String msg) {
System.out.println("--------onsend--------");
producer.sendMessage(msg); ModelAndView mv = new ModelAndView();
mv.setViewName("welcome");
return mv;
} @RequestMapping(value = "/receive")
public ModelAndView receive() {
System.out.println("--------receive--------"); String msg = consumer.receive(); ModelAndView mv = new ModelAndView();
mv.addObject("msg", msg);
mv.setViewName("kafka_receive");
return mv;
} }

页面:

welcome.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>welcome</title>
</head>
<body>
<h1>Welcome</h1>
<h2><a href="sendmessage.html">Send a Message</a></h2>
<h2><a href="receive.html">Get a Message</a></h2>
</body>
</html>

kafka_send.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>kafka_send</title>
</head>
<body>
<h1>Send a Message</h1>
<form action="onsend.html" method="post">
MessageText:<textarea name="message">${time}</textarea>
<br>
<input type="submit" value="Submit">
</form> <h2><a href="welcome.html">RETURN HOME</a></h2>
</body>
</html>

kafka_receive.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>kafka_receive</title>
</head>
<body> <h1>Kafka_Reveive!!!</h1>
<h2>Receive Message : ${msg}</h2>
<h2><a href="welcome.html">RETURN HOME</a></h2>
</body>
</html>

效果图:

如图,kafka发送消息、接受消息运行成功。

kafka的使用的更多相关文章

  1. Spark踩坑记——Spark Streaming+Kafka

    [TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...

  2. 消息队列 Kafka 的基本知识及 .NET Core 客户端

    前言 最新项目中要用到消息队列来做消息的传输,之所以选着 Kafka 是因为要配合其他 java 项目中,所以就对 Kafka 了解了一下,也算是做个笔记吧. 本篇不谈论 Kafka 和其他的一些消息 ...

  3. kafka学习笔记:知识点整理

    一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...

  4. .net windows Kafka 安装与使用入门(入门笔记)

    完整解决方案请参考: Setting Up and Running Apache Kafka on Windows OS   在环境搭建过程中遇到两个问题,在这里先列出来,以方便查询: 1. \Jav ...

  5. kafka配置与使用实例

    kafka作为消息队列,在与netty.多线程配合使用时,可以达到高效的消息队列

  6. kafka源码分析之一server启动分析

    0. 关键概念 关键概念 Concepts Function Topic 用于划分Message的逻辑概念,一个Topic可以分布在多个Broker上. Partition 是Kafka中横向扩展和一 ...

  7. Kafka副本管理—— 为何去掉replica.lag.max.messages参数

    今天查看Kafka 0.10.0的官方文档,发现了这样一句话:Configuration parameter replica.lag.max.messages was removed. Partiti ...

  8. Kafka:主要参数详解(转)

    原文地址:http://kafka.apache.org/documentation.html ############################# System ############### ...

  9. kafka

    2016-11-13  20:48:43 简单说明什么是kafka? Apache kafka是消息中间件的一种,我发现很多人不知道消息中间件是什么,在开始学习之前,我这边就先简单的解释一下什么是消息 ...

  10. Spark Streaming+Kafka

    Spark Streaming+Kafka 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端, ...

随机推荐

  1. java.lang.ClassNotFoundException: org.objectweb.asm.ClassWriter

    转自:https://www.cnblogs.com/yfceshi/p/6814802.html Caused by: javax.xml.ws.WebServiceException: java. ...

  2. 19.QT对话框(文件对话框,颜色对话框,字体框,自定义对话框)

    文件对话框 #include<QFileDialog> //文件对话框 void Dialog::on_pushButton_clicked() { //定义显示文件的类型 窗口标题 可供 ...

  3. 7.treeview

    ui mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include < ...

  4. 使用log4net记录日志到数据库(含自定义属性)

    日志输出自定义属性! 特来总结一下: 一.配置文件 使用log4写入数据库就不多说了,网上方法很多,自定义字段如下 <commandText value="INSERT INTO db ...

  5. c# post方式请求java form表单api

    using System; using System.Collections.Generic; using System.Net.Http; namespace ConsoleApplication1 ...

  6. Redis运维时需要注意的参数

    1: 内存 Memory used_memory:859192 数据结构的空间 used_memory_rss:7634944 实占空间 mem_fragmentation_ratio:8.89 前2 ...

  7. mobiscroll插件的基本使用方法

    前一阵子接触到了mobiscroll插件,用在移动端的日期选择上,感觉倍棒,于是便敲了一个小案例,与大家一起分享分享 <!DOCTYPE html> <html lang=" ...

  8. web.xml中的url-pattern写法规则及匹配过程

    servlet和filter在javaEE开发中很常用,因此有必要知道web.xml文件映射的规则 1.  写法 ①完全匹配:以“/”开头,以字母(非“*”)结束    如:<url-patte ...

  9. Mac-O文件加载的全过程(一)

    在Mac的开发中, 有没有想过当我们点击可执行文件之后,Mac究竟做了什么事情才让我们的程序运行起来? 对于应用层开发人员或者普通的用户而言, 其实无需知道的这么详细:但是对于内核开发人员而言, 如果 ...

  10. JS对以对象组成的数组去重

    这是从https://segmentfault.com/q/1010000006954351参考的,达到了我要去重的功能!!! var hash = {};//arr是要去重的对象数组 arr = a ...