亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Spring boot集成Kafka消息中間件代碼實(shí)例

 更新時(shí)間:2020年05月16日 08:43:45   作者:墨營(yíng)  
這篇文章主要介紹了Spring boot集成Kafka消息中間件代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一.創(chuàng)建Spring boot項(xiàng)目,添加如下依賴

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka -->
    <dependency>
      <groupId>org.springframework.kafka</groupId>
      <artifactId>spring-kafka</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients -->
    <dependency>
      <groupId>org.apache.kafka</groupId>
      <artifactId>kafka-clients</artifactId>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.41</version>
    </dependency>

二.配置文件

server.port=4400

#kafka配置
#============== kafka ===================
# 指定kafka 代理地址,可以多個(gè)
spring.kafka.bootstrap-servers=192.168.102.88:9092
# 指定默認(rèn)消費(fèi)者group id
spring.kafka.consumer.group-id=jkafka.demo
#earliest 當(dāng)各分區(qū)下有已提交的offset時(shí),從提交的offset開始消費(fèi);無提交的offset時(shí),從頭開始消費(fèi)
#latest 當(dāng)各分區(qū)下有已提交的offset時(shí),從提交的offset開始消費(fèi);無提交的offset時(shí),消費(fèi)新產(chǎn)生的該分區(qū)下的數(shù)據(jù)
#none topic各分區(qū)都存在已提交的offset時(shí),從offset后開始消費(fèi);只要有一個(gè)分區(qū)不存在已提交的offset,則拋出異常
spring.kafka.consumer.auto-offset-reset=latest
spring.kafka.consumer.enable-auto-commit=false
spring.kafka.consumer.auto-commit-interval=100
# 指定消費(fèi)者消息key和消息體的編解碼方式
spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer

三.編輯消息實(shí)體

@Data
public class Message implements Serializable{

  /**
   * 
   */
  private static final long serialVersionUID = 2522280475099635810L;

  //消息ID
  private String id;

  //消息內(nèi)容
  private String msg;

  // 消息發(fā)送時(shí)間
  private Date sendTime;

}

四.消息發(fā)送類

@Component
public class KfkaProducer {

  private static Logger logger = LoggerFactory.getLogger(KfkaProducer.class);

  @Autowired
  private KafkaTemplate<String, String> kafkaTemplate;

  public void send(String topic,Message message) {
    try {
      logger.info("正在發(fā)送消息...");
      kafkaTemplate.send(topic,JSON.toJSONString(message));
      logger.info("發(fā)送消息成功 ----->>>>> message = {}", JSON.toJSONString(message));
    } catch (Exception e) {
      e.getMessage();
    }

  }
}

五.發(fā)現(xiàn)監(jiān)聽接收類

@Component
public class KfkaListener {

  private static Logger logger = LoggerFactory.getLogger(KfkaListener.class);

  @KafkaListener(topics = {"hello"})
  public void listen(ConsumerRecord<?, ?> record) {
    Optional<?> kafkaMessage = Optional.ofNullable(record.value());
    if (kafkaMessage.isPresent()) {
      Object message = kafkaMessage.get();
      logger.info("接收消息------------ record =" + record);
      logger.info("接收消息----------- message =" + message);
    }
  }
}

六.定時(shí)發(fā)送信息測(cè)試類

@EnableScheduling
@Component
public class PublisherController {

  private static final Logger log = LoggerFactory.getLogger(PublisherController.class);

  @Autowired
  private KfkaProducer kfkaProducer;

  @Scheduled(fixedRate = 5000)
  public void pubMsg() {
    Message msg=new Message();
    msg.setId(UUID.randomUUID().toString());
    msg.setMsg("發(fā)送這條消息給你,你好?。。。。。?!");
    msg.setSendTime(new Date());
    kfkaProducer.send("hello", msg);;
    log.info("Publisher sendes Topic... ");
  }
}

七.測(cè)試結(jié)果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Boot分頁方法定義示例

    Spring Boot分頁方法定義示例

    這篇文章主要為大家介紹了Spring Boot 分頁方法定義,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • java逐行讀取文件(讀取文件每一行、按行讀取文件)附帶詳細(xì)代碼

    java逐行讀取文件(讀取文件每一行、按行讀取文件)附帶詳細(xì)代碼

    這篇文章主要給大家介紹了關(guān)于java逐行讀取文件(讀取文件每一行、按行讀取文件)的相關(guān)資料,讀取文件是我們?cè)谌粘9ぷ髦薪?jīng)常遇到的一個(gè)需求,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • Java的super關(guān)鍵字與instanceof運(yùn)算符使用方法

    Java的super關(guān)鍵字與instanceof運(yùn)算符使用方法

    這篇文章主要介紹了Java的super關(guān)鍵字與instanceof運(yùn)算符使用方法,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • Mybatis-plus 雙主鍵的實(shí)現(xiàn)示例

    Mybatis-plus 雙主鍵的實(shí)現(xiàn)示例

    本文主要介紹了Mybatis-plus 雙主鍵的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • Java使用釘釘創(chuàng)建企業(yè)內(nèi)部機(jī)器人的實(shí)現(xiàn)

    Java使用釘釘創(chuàng)建企業(yè)內(nèi)部機(jī)器人的實(shí)現(xiàn)

    釘釘?shù)某霈F(xiàn)為企業(yè)節(jié)約了大量人力成本,其中也開放了大量的外部api接口方便企業(yè)使用。本文主要介紹了Java使用釘釘創(chuàng)建企業(yè)內(nèi)部機(jī)器人的實(shí)現(xiàn),感興趣的可以了解一下
    2021-11-11
  • MyBatis注解方式之@Update/@Delete使用詳解

    MyBatis注解方式之@Update/@Delete使用詳解

    這篇文章主要介紹了MyBatis注解方式之@Update/@Delete使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • SpringBoot中過濾器Filter+JWT令牌實(shí)現(xiàn)登錄驗(yàn)證

    SpringBoot中過濾器Filter+JWT令牌實(shí)現(xiàn)登錄驗(yàn)證

    本文主要介紹了SpringBoot中過濾器Filter+JWT令牌實(shí)現(xiàn)登錄驗(yàn)證,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • 深入了解java 8的函數(shù)式編程

    深入了解java 8的函數(shù)式編程

    函數(shù)式編程并不是Java新提出的概念,其與指令編程相比,強(qiáng)調(diào)函數(shù)的計(jì)算比指令的計(jì)算更重要;與過程化編程相比,其中函數(shù)的計(jì)算可以隨時(shí)調(diào)用。下面我們來詳細(xì)了解一下吧
    2019-06-06
  • Java超級(jí)實(shí)用的Freemarker工具類

    Java超級(jí)實(shí)用的Freemarker工具類

    這篇文章主要介紹了Java超級(jí)實(shí)用的Freemarker工具類,文章圍繞相關(guān)資料介紹以及代碼描述非常詳細(xì),需要的小伙伴可以參考一下,希望對(duì)你得學(xué)習(xí)有所幫助
    2022-02-02
  • SpringBoot從配置文件中獲取屬性的四種方法總結(jié)

    SpringBoot從配置文件中獲取屬性的四種方法總結(jié)

    這篇文章主要介紹了SpringBoot從配置文件中獲取屬性的四種方法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評(píng)論