34. 【實戰】基於kafka+ehcache+redis完成緩存數據生產服務的開發與測試

spring boot整合kafka

項目地址參考:0. 【緩存高可用微服務實戰】資料總結
切換到相應分支:
在這裏插入圖片描述

編寫業務邏輯

  1. 不同維度兩種服務會發送來數據變更消息:商品信息服務商品店鋪信息服務,每個消息都包含服務名以及相應id
  2. 接收到消息之後,根據商品id到對應的服務拉取數據,這一步,我們採取簡化的模擬方式,就是在代碼裏面寫死,會獲取到什麼數據,不去實際再寫其他的服務去調用
  3. 商品信息:id,名稱,價格,圖片列表,商品規格,售後信息,顏色,尺寸
  4. 商品店鋪信息:其他維度,用這個維度模擬出來緩存數據維度化拆分,id,店鋪名稱,店鋪等級,店鋪好評率
  5. 分別拉取到了數據之後,將數據組織成json串,然後分別存儲到ehcacheredis緩存

測試業務邏輯

  1. 創建一個kafka topic
bin/kafka-topics.sh --zookeeper 192.168.0.106:2181,192.168.0.107:2181,192.168.0.108:2181 --topic cache-message --replication-factor 1 --partitions 1 --create
  1. 在命令行啓動一個kafka producer
bin/kafka-console-producer.sh --broker-list 192.168.0.106:9092,192.168.0.107:9092,192.168.0.108:9092 --topic cache-message
  1. 啓動系統Application.java,消費者開始監聽kafka topic

報錯,需映射虛擬機與本機hostsC:\Windows\System32\drivers\etc\hosts ip地址
在這裏插入圖片描述

# C:\Windows\System32\drivers\etc\hosts 修改文件添加以下映射
# eshop
192.168.0.106 eshop-cache01
192.168.0.107 eshop-cache02
192.168.0.108 eshop-cache03
  1. producer中,分別發送兩條消息,一個是商品信息服務的消息,一個是商品店鋪信息服務的消息
{"serviceId":"productInfoService","productId":1}

{"serviceId":"shopInfoService","shopId":1}
  1. 能否接收到兩條消息,並模擬拉取到兩條數據,同時將數據寫入ehcache中,並寫入redis緩存中

ehcache通過打印日誌方式來觀察,redis通過手工連接上去來查詢

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章