ssm spring springmvc mybatis ssm+redis+kafka+elasticsearch+jquery+jquerydatatables +bootstrap +git+maven 开发cms系统
spring与kafka 整合
1.走走官网
2.spring与kafka集成
2.1 引入依赖pom.xml文件中加入
org.springframework.kafka
spring-kafka
2.2.0.RELEASE
org.apache.kafka
kafka_2.10
0.8.2.1
jmxri
com.sun.jmx
jms
javax.jms
jmxtools
com.sun.jdmk
2.2 加入spring与kafka集成-引入一个生产者的配置文件applicationContext-kafka-producer.xml
配置文件
参数设置
bootstrap.servers=localhost:9092
# consumer group id
group.id=test-consumer-group
#序列化的配置
key.serializer
value.serializer
---------------------------------------------------
producerFactory工厂
使用参数设置bean
----------------------------------------------------
操作的kafka模板bean对象
注意事项:用到主题:
内容如下:
==========================================================================================================
3.测试一下kafka生产者发送消息的效果
3.0 关闭防火墙
service iptables stop
为了项目开发测试,暂时先永久性关闭防火墙
chkconfig iptables off //永久关闭防火墙
chkconfig是当前不生效,Linux重启之后才生效的命令(开机自启动项)
service是即使生效,重启后失效的命令
3.1 启动zookeeper
zkServer.sh start
3.2 启动kafka 在启动kafka之前记得修改kafka的server.properties文件
加入:#advertised.listeners=PLAINTEXT://your.host.name:9092
advertised.listeners=PLAINTEXT://192.168.73.129:9092 //ip地址为自己的ip地址
/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
3.3 确定有没有这个test的主题,没有创建主题
3.3.1查看主题
/usr/local/kafka/bin/kafka-topics.sh -list --bootstrap-server localhost:9092
3.3.2创建主题
/usr/local/kafka/bin/kafka-topics.sh -create --bootstrap-server localhost:9092 -replication-factor 1 --partitions 1 --topic test
3.4 启动消费者
/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
3.5编写测试类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {“classpath:applicationContext-kafka-producer.xml”})
public class KafkaProducerTest {
@Autowired
private KafkaTemplate kafkaTemplate;
@Test
public void testSendMsg() {
kafkaTemplate.sendDefault("hello Java Producer kafka");
}
}
运行测试。。
4.加入spring与kafka集成-引入一个生产者的配置文件applicationContext-kafka-consumer.xml
4.1
consumer 参数设置
consumer 工厂设置
监听者 自己创建bean bean要想监听到数据,它要实现特定的接口org.springframework.kafka.listener.MessageListener
容器参数设置
1.监听者是谁
2.监听的主题 test主题
kafka的监听容器设置
1.容器参数
2.kafka consumer 工厂设置
配置文件内容如下:
监听者的类:
package com.chj.cms.kafka;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.kafka.listener.MessageListener;
public class KafkaConsumerListener implements MessageListener
@Override
public void onMessage(ConsumerRecord data) {
System.out.println("接受到的消息"+data.value());
}
}
5.测试一下kafka接受消息的效果
5.1 启动zookeeper
zkServer.sh start
5.2 启动kafka
/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
5.3 确定有没有这个test的主题,没有创建主题
3.3.1查看主题
/usr/local/kafka/bin/kafka-topics.sh -list --bootstrap-server localhost:9092
3.3.2创建主题
/usr/local/kafka/bin/kafka-topics.sh -create --bootstrap-server localhost:9092 -replication-factor 1 --partitions 1 --topic test
5.4 创建消息发送者
/usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
测试内容
package com.chj.cms.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class KafkaConsumerTest {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext-kafka-consumer.xml");
}
}