最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Spring Boot應(yīng)用程序中使用Apache Kafka的方法步驟詳解

 更新時間:2018年11月05日 10:32:14   作者:banq  
這篇文章主要介紹了在Spring Boot應(yīng)用程序中使用Apache Kafka的方法步驟詳解,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

第1步:生成我們的項目: Spring Initializr 來生成我們的項目。我們的項目將提供Spring MVC / Web支持和Apache Kafka支持。

第2步:發(fā)布/讀取Kafka主題中的消息:

<b>public</b> <b>class</b> User {
  <b>private</b> String name;
  <b>private</b> <b>int</b> age;
  <b>public</b> User(String name, <b>int</b> age) {
    <b>this</b>.name = name;
    <b>this</b>.age = age;
  }
}

第3步:通過application.yml配置文件配置Kafka:

我們需要創(chuàng)建配置文件。我們需要以某種方式配置我們的Kafka生產(chǎn)者和消費者,以便能夠發(fā)布和讀取與主題相關(guān)的消息。相比建立一個使用@Configuration標(biāo)注的Java類,我們可以直接使用配置文件application.properties或application.yml。Spring Boot讓我們避免像過去一樣編寫的所有樣板代碼,同時為我們提供了更加智能的配置應(yīng)用程序的方法,如下所示:

server: port: 9000
spring:
  kafka:
   consumer:
    bootstrap: 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: localhost:9092
    key-serializer: org.apache.kafka.common.serialization.StringSerializer
    value-serializer: org.apache.kafka.common.serialization.StringSerializer

第4步:創(chuàng)建一個生產(chǎn)者,創(chuàng)建生產(chǎn)者會將我們的消息寫入該主題。

<b>public</b> <b>class</b> Producer {
  <b>private</b> <b>static</b> <b>final</b> Logger logger = LoggerFactory.getLogger(Producer.<b>class</b>);
  <b>private</b> <b>static</b> <b>final</b> String TOPIC = <font>"users"</font><font>;
  @Autowired
  <b>private</b> KafkaTemplate<String, String> kafkaTemplate;
  <b>public</b> <b>void</b> sendMessage(String message) {
    logger.info(String.format(</font><font>"#### -> Producing message -> %s"</font><font>, message));
    <b>this</b>.kafkaTemplate.send(TOPIC, message);
  }
}
</font>

自動連接autowireKafkaTemplate ,使用它將消息發(fā)布到主題 - 這就是消息的生產(chǎn)者!

第5步:創(chuàng)建一個消費者,消費者是負(fù)責(zé)根據(jù)您自己的業(yè)務(wù)邏輯的需求閱讀處理消息的消息的服務(wù)。要進行設(shè)置,請輸入以下內(nèi)容:

@Service
<b>public</b> <b>class</b> Consumer {

  <b>private</b> <b>final</b> Logger logger = LoggerFactory.getLogger(Producer.<b>class</b>);

  @KafkaListener(topics = <font>"users"</font><font>, groupId = </font><font>"group_id"</font><font>)
  <b>public</b> <b>void</b> consume(String message) throws IOException {
    logger.info(String.format(</font><font>"#### -> Consumed message -> %s"</font><font>, message));
  }
}
</font>

在這里,我們告訴我們的方法void consume(String message)訂閱用戶的主題,并將每條消息發(fā)送到應(yīng)用程序日志。在您的實際應(yīng)用程序中,您可以按照業(yè)務(wù)需要的方式處理消息。

第6步:創(chuàng)建REST控制器,們已經(jīng)擁有了能夠消費Kafka消息所需的全部內(nèi)容。

為了充分展示我們創(chuàng)建的所有內(nèi)容的工作原理,我們需要創(chuàng)建一個具有單一端點的控制器。消息將發(fā)布到此端點,然后由我們的生產(chǎn)者處理。然后,我們的消費者將通過登錄到控制臺來捕獲并處理它。

@RestController
@RequestMapping(value = <font>"/kafka"</font><font>)
<b>public</b> <b>class</b> KafkaController {

  <b>private</b> <b>final</b> Producer producer;

  @Autowired
  KafkaController(Producer producer) {
    <b>this</b>.producer = producer;
  }

  @PostMapping(value = </font><font>"/publish"</font><font>)
  <b>public</b> <b>void</b> sendMessageToKafkaTopic(@RequestParam(</font><font>"message"</font><font>) String message) {
    <b>this</b>.producer.sendMessage(message);
  }
}
</font>

讓我們使用cURL將消息發(fā)送給Kafka:

curl -X POST -F 'message=test' http://localhost:9000/kafka/publish

基本上就是這樣!在不到10個步驟中,您了解了將Apache Kafka添加到Spring Boot項目是多么容易。如果您遵循本指南,您現(xiàn)在知道如何將Kafka集成到Spring Boot項目中,并且您已準(zhǔn)備好使用這個超級工具!

總結(jié)

以上所述是小編給大家介紹的在Spring Boot應(yīng)用程序中使用Apache Kafka的方法步驟詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Mybatis的插件運行原理及如何編寫一個插件

    Mybatis的插件運行原理及如何編寫一個插件

    這篇文章主要介紹了Mybatis的插件運行原理及如何編寫一個插件 ,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • 關(guān)于RedisTemplate之opsForValue的使用說明

    關(guān)于RedisTemplate之opsForValue的使用說明

    這篇文章主要介紹了關(guān)于RedisTemplate之opsForValue的使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • java小數(shù)位的例子

    java小數(shù)位的例子

    在java中要保留數(shù)字小數(shù)位我們有常用的四種方法,分別為:四舍五入,DecimalFormat,format,String .format與struts標(biāo)簽操作實現(xiàn),下面給出例子
    2013-11-11
  • java集合繼承關(guān)系圖分享

    java集合繼承關(guān)系圖分享

    這篇文章主要為大家詳細(xì)介紹了java集合繼承關(guān)系圖,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • SpringBoot一個請求的處理全過程分享

    SpringBoot一個請求的處理全過程分享

    本文詳細(xì)介紹了SpringBoot請求處理的全過程,包括過濾器鏈、攔截器鏈、路徑映射、參數(shù)綁定、Controller方法執(zhí)行、返回值處理、異常解析和視圖解析渲染等步驟,同時,文中還列舉了請求處理過程中常見的問題及解決方案
    2024-12-12
  • Java基礎(chǔ)字符編碼與內(nèi)存流詳細(xì)解讀

    Java基礎(chǔ)字符編碼與內(nèi)存流詳細(xì)解讀

    這篇文章主要給大家介紹了關(guān)于Java中方法使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • 解析MyBatisPlus解決邏輯刪除與唯一索引的兼容問題

    解析MyBatisPlus解決邏輯刪除與唯一索引的兼容問題

    這篇文章主要介紹了MyBatisPlus解決邏輯刪除與唯一索引的兼容問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • mybatisplus?selectOne查詢,有數(shù)據(jù),但返回為null問題

    mybatisplus?selectOne查詢,有數(shù)據(jù),但返回為null問題

    這篇文章主要介紹了mybatisplus?selectOne查詢,有數(shù)據(jù),但返回為null問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 詳解Java從后臺重定向(redirect)到另一個項目的方法

    詳解Java從后臺重定向(redirect)到另一個項目的方法

    這篇文章主要介紹了詳解Java從后臺重定向(redirect)到另一個項目的方法,非常具有實用價值,需要的朋友可以參考下
    2017-04-04
  • Myeclipse部署Tomcat_動力節(jié)點Java學(xué)院整理

    Myeclipse部署Tomcat_動力節(jié)點Java學(xué)院整理

    這篇文章給大家介紹了Myeclipse部署Tomcat的相關(guān)知識,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧
    2017-07-07

最新評論

霍山县| 琼中| 诸城市| 盈江县| 兰坪| 金阳县| 太湖县| 叙永县| 宁南县| 界首市| 松原市| 怀柔区| 神木县| 琼结县| 拉萨市| 南雄市| 喀喇沁旗| 丰镇市| 左权县| 内黄县| 原平市| 衡东县| 留坝县| 唐山市| 靖安县| 屯门区| 新竹县| 兴隆县| 长沙县| 大厂| 铁岭县| 咸阳市| 灌云县| 邹城市| 兰溪市| 西和县| 屯留县| 慈溪市| 罗城| 竹溪县| 通化市|