首页 > 其他分享 >springcloud - kafka实践

springcloud - kafka实践

时间:2023-07-19 13:34:49浏览次数:39  
标签:springcloud 实践 springframework kafka topic org import public

springcloud可以通过KafkaTemplate来发布消息,让后消费者使用来订阅@KafkaListener主题消息。

一、添加依赖

 1 <dependencyManagement>
 2     <dependencies>
 3       <dependency>
 4         <groupId>org.springframework.cloud</groupId>
 5         <artifactId>spring-cloud-dependencies</artifactId>
 6         <version>Finchley.SR2</version>
 7         <type>pom</type>
 8         <scope>import</scope>
 9       </dependency>
10     </dependencies>
11   </dependencyManagement>
12 
13   <dependencies>
14     <dependency>
15       <groupId>org.springframework.boot</groupId>
16       <artifactId>spring-boot-starter-web</artifactId>
17     </dependency>
18 
19     <dependency>
20       <groupId>org.springframework.cloud</groupId>
21       <artifactId>spring-cloud-stream-binder-kafka</artifactId>
22     </dependency>
23   </dependencies>

二、 生产消息

 1 import org.springframework.beans.factory.annotation.Value;
 2 import org.springframework.kafka.core.KafkaTemplate;
 3 import org.springframework.web.bind.annotation.PostMapping;
 4 import org.springframework.web.bind.annotation.RequestParam;
 5 import org.springframework.web.bind.annotation.RestController;
 6 
 7 /**
 8  * @Classname KafkaProducerController
 9  * @Created by Michael
10  * @Date 2023/7/19
11  * @Description 消息生产者
12  */
13 @RestController
14 public class KafkaProducerController {
15   private final KafkaTemplate<String, String> kafkaTemplate;
16   private String topic;
17 
18   public KafkaProducerController(KafkaTemplate<String, String> kafkaTemplate
19           , @Value("${kafka.topic}") String topic) {
20     this.kafkaTemplate = kafkaTemplate;
21     this.topic = topic;
22   }
23 
24   @PostMapping("message/send") // 这种方式只支持post
25   public boolean sendMessage(@RequestParam String message) {
26     kafkaTemplate.send(topic,message);
27     return true;
28   }
29 }

三、消费消息

 1 import org.springframework.kafka.annotation.KafkaListener;
 2 import org.springframework.stereotype.Component;
 3 
 4 /**
 5  * @Classname KafkaConsumerListener
 6  * @Created by Michael
 7  * @Date 2023/7/19
 8  * @Description 监听消息
 9  */
10 @Component
11 public class KafkaConsumerListener {
12   @KafkaListener(topics={"${kafka.topic}"})
13   public void getMessage(String message) {
14     System.out.println("kafka 消费者监听,接收到消息:" + message);
15   }
16 }

四、测试

通过postman发起请求,控制台查看是否消费到消息

 控制台看到消息已经被消费到

 

标签:springcloud,实践,springframework,kafka,topic,org,import,public
From: https://www.cnblogs.com/lfhappy/p/17565323.html

相关文章

  • Python日志模块:实战应用与最佳实践
    本文详细解析了Python的logging模块,从基本介绍到实际应用和最佳实践。我们通过具体的代码示例解释了如何高效地使用这个模块进行日志记录,以及如何避免常见的陷阱,旨在帮助读者更好地掌握这个强大的工具。一、Python日志模块简介日志的概念及其在软件开发中的作用在开发过程中,......
  • docker kafka-manger
    实现"DockerKafkaManager"的过程及代码解释:整个过程可以分为以下几个步骤:步骤描述步骤一安装Docker步骤二下载KafkaManager镜像步骤三创建并启动KafkaManager容器步骤四配置Kafka集群连接下面是每个步骤具体需要做的事情以及相应的代码:步骤一......
  • springboot - kafka实践
    Kafka是一个开源的分布式流处理平台,由Apache软件基金会开发和维护。它是一种高性能、可持久化、可扩展的消息队列系统,常用于解决大规模数据传输和处理的问题。以下是Kafka的一些核心概念和主要特点:消息和主题:Kafka基于发布订阅模式,消息被发布到一个或多个主题(Topic)中。每条消......
  • Java的SPI机制实践
    JavaSPI机制概述先给出结论:“Java的SPI是一种服务发现机制,用于约定接口和动态发现实现类,体现了分层解耦的思想”。Java的SPI机制常用于框架扩展或组件替换,最常见的JavaSPI应用就是JDBCDriver,JDK提供了java.sql.Driver接口,却将具体的实现交给了相应的数据库驱动,比如:在mysql-co......
  • 六月学习之Haproxy ACL实践(基于路径调度)
    2、ACL场景实践2.3、ACL案例-基于路径调度#根据用户请求的URL。调度到不同的后端集群用户通过/static调度到172.16.1.7:80用户请求/user调度到172.16.1.8:802.3.1、配置后端节点#web1:/static站点定义cat/etc/nginx/conf.d/www.qingchen.com.confserver{listen80;......
  • Sealos Web UI 公有云部署实践
    不管部署任何开源的产品,首先看他的官网文档或者github的readme、wiki等等这是 sealosgithub readmehttps://github.com/labring/sealos/blob/main/deploy/cloud/README.md  一、准备一台服务器你可以使用自己本地电脑安装vmware创建一台虚拟机,操作系统Ubuntu我这里......
  • Zipkin链路监控实践
    Zipkin是一种开源的分布式链路追踪系统,可以用于监控和跟踪微服务架构中的请求调用链。它可以帮助定位和解决分布式系统中的延迟问题,提供对请求的可视化跟踪和监控。一、引入依赖      使用项目来启动Zipkin,创建一个springbootweb项目添加zipkin依赖1<groupId>co......
  • Kafka 集群参数配置介绍
    目录Broker端存储信息相关参数ZooKeeper相关参数Topic相关参数数据存留相关参数Topic级别参数保存消息JVM参数操作系统参数文件描述符限制文件系统类型Swappiness提交时间Broker端Broker端参数也被称为静态参数(StaticConfigs),必须在Kafka的配置文件server.properties......
  • 重新整理 .net core 实践篇———承载[外篇]
    前言简单介绍一下承载。正文名称叫做承载,其实就是.netcore定义的一套长期运行的服务的规范。这个服务可以是web服务,也可以是其他服务,比如tcp,或者一些监控服务。这里以监控服务为例子:publicclassPerformanceMetrics{ privatestaticreadonlyRandom_random=newRa......
  • springcloud是什么
    1、它其实spring公布的微服务开发的一套模式或者说规范2、比如通常来说,它规定包含注册中心、网关、配置中心这套基本组件,它还需要rpc远程调用组件包括feign、dubbo、grpc等等,以及他们的负载均衡策略和熔断措施3、它还可以包含健康度监控、性能监控和链路追踪等等 ......