javascript
kafka 启动_「首席看Event Hub」如何在您的Spring启动应用程序中使用Kafka
在體系結(jié)構(gòu)規(guī)劃期間選擇正確的消息傳遞系統(tǒng)始終是一個(gè)挑戰(zhàn),但這是需要確定的最重要的考慮因素之一。作為一名開發(fā)人員,我每天都要編寫需要服務(wù)大量用戶并實(shí)時(shí)處理大量數(shù)據(jù)的應(yīng)用程序。
通常,我將Java與Spring框架(Spring Boot、Spring數(shù)據(jù)、Spring云、Spring緩存等)一起使用。Spring Boot是一個(gè)框架,它允許我比以前更快更輕松地完成開發(fā)過程。它已在我的組織中發(fā)揮了關(guān)鍵作用。隨著用戶數(shù)量的快速增長,我們意識到我們顯然需要每秒處理1,000,000個(gè)事件。
當(dāng)我們發(fā)現(xiàn)Apache Kafka?時(shí),我們發(fā)現(xiàn)它滿足了我們的需求,可以快速處理數(shù)百萬條消息。這就是為什么我們決定嘗試一下。從那一刻起,卡夫卡就成了我口袋里的重要工具。你會問,我為什么選擇它?
Apache Kafka是:
- 可伸縮的
- 容錯
- 一個(gè)很棒的發(fā)布-訂閱消息傳遞系統(tǒng)
- 與大多數(shù)消息傳遞系統(tǒng)相比,具有更高的吞吐量
- 高度耐用
- 高度可靠
- 高的性能
這就是為什么我決定在我的項(xiàng)目中使用它。根據(jù)我的經(jīng)驗(yàn),我在這里提供了一個(gè)循序漸進(jìn)的指南,介紹如何在Spring啟動應(yīng)用程序中包含Apache Kafka,以便您也可以開始利用它的優(yōu)點(diǎn)。
先決條件
- 本文要求您擁有Confluent平臺
- 手動安裝使用ZIP和TAR檔案
- 下載
- 解壓縮它
- 按照逐步說明,您將在本地環(huán)境中啟動和運(yùn)行Kafka
我建議在您的開發(fā)中使用Confluent CLI來啟動和運(yùn)行Apache Kafka和流平臺的其他組件。
你會從這本指南中得到什么
閱讀完本指南后,您將擁有一個(gè)Spring Boot應(yīng)用程序,其中包含一個(gè)Kafka生成器,用于向您的Kafka主題發(fā)布消息,以及一個(gè)Kafka使用者,用于讀取這些消息。
好了,讓我們開始吧!
表的內(nèi)容
步驟1:生成項(xiàng)目
首先,讓我們使用Spring Initializr來生成我們的項(xiàng)目。我們的項(xiàng)目將有Spring MVC/web支持和Apache Kafka支持。
一旦你解壓縮了這個(gè)項(xiàng)目,你將會有一個(gè)非常簡單的結(jié)構(gòu)。我將在本文的最后向您展示項(xiàng)目的外觀,以便您能夠輕松地遵循相同的結(jié)構(gòu)。我將使用Intellij IDEA,但是你可以使用任何Java IDE。
步驟2:發(fā)布/讀取來自Kafka主題的消息
現(xiàn)在,你可以看到它是什么樣的。讓我們繼續(xù)討論來自Kafka主題的發(fā)布/閱讀消息。
首先創(chuàng)建一個(gè)簡單的Java類,我們將使用它作為示例:package com.demo.models;
public class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
}
步驟3:通過應(yīng)用程序配置Kafka.yml配置文件
接下來,我們需要創(chuàng)建配置文件。我們需要以某種方式配置我們的Kafka生產(chǎn)者和消費(fèi)者,使他們能夠發(fā)布和從主題讀取消息。我們可以使用任意一個(gè)應(yīng)用程序,而不是創(chuàng)建一個(gè)Java類,并用@Configuration注釋標(biāo)記它。屬性文件或application.yml。Spring Boot允許我們避免過去編寫的所有樣板代碼,并為我們提供了更智能的配置應(yīng)用程序的方法,如下所示:
server: port: 9000
spring:
kafka:
consumer:
bootstrap-servers: localhost:9092
group-id: group_id
auto-offset-reset: earliest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
producer:
bootstrap-servers: localhost:9092
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.StringSerializer
如果您想了解更多關(guān)于Spring引導(dǎo)自動配置的信息,可以閱讀這篇簡短而有用的文章。有關(guān)可用配置屬性的完整列表,請參閱官方文檔。
步驟4:創(chuàng)建一個(gè)生產(chǎn)者
創(chuàng)建生產(chǎn)者將把我們的消息寫入主題。
@Service
public class Producer {
private static final Logger logger = LoggerFactory.getLogger(Producer.class);
private static final String TOPIC = "users";
@Autowired
private KafkaTemplate kafkaTemplate;
public void sendMessage(String message) {
logger.info(String.format("#### -> Producing message -> %s
總結(jié)
以上是生活随笔為你收集整理的kafka 启动_「首席看Event Hub」如何在您的Spring启动应用程序中使用Kafka的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python修改电脑名称_python
- 下一篇: 地图定义一个中间不动标注_高精度地图制作