iT邦幫忙

鐵人檔案

2024 iThome 鐵人賽
回列表
Software Development

從零開始構建能理解語義的 Linebot 架構 系列

本系列文章將介紹如何從零開始構建一個能理解語義的 Linebot,涵蓋多項後端技術。這是我在業餘時間的實踐經驗與不斷修正錯誤後的成果紀錄。內容包括:Linebot 的基本運作原理與部署,利用 NodeJS 及 AWS Lambda 開發 Serverless 架構的訊息接收器,使用 Spring Boot 開發後端訊息處理模組,Kafka 來實現跨系統訊息傳遞,以及整合 OpenAI 和 MongoDB 提供語義理解與資料儲存能力。
透過簡化每個環節所需的技術知識,我希望幫助讀者去除雜訊,快速掌握開發過程中的關鍵技術,減少不必要的困擾,並在短時間內建立解決問題的基礎,最終實現自己的開發目標。

鐵人鍊成 | 共 30 篇文章 | 8 人訂閱 訂閱系列文 RSS系列文
DAY 11

Kafka 概念介紹及部署: 主要角色及基本觀念

概述 Kafka是由三個主要角色組成的分散式事件流平台: Producer(生產者), Consumer(消費者), 以及Broker(中介)。 根據不同的需...

2024-09-25 ‧ 由 cancerpio 分享
DAY 12

Kafka 概念介紹及部署: Topic 及 Producer

Topic 在Kafka中,每筆資料都是事件(Event),而 Topic 就是這些事件的儲存空間。 你可以大致將Topic理解為資料庫中的Table,而Ev...

2024-09-26 ‧ 由 cancerpio 分享
DAY 13

Kafka 概念介紹及部署: Consumer、Partition 及 Offset 管理

概述 合理的分配Consumer及Partition可以使效能和資源利用最大化: 一個Consumer Group中,理想的Instance數目 = 該Gro...

2024-09-27 ‧ 由 cancerpio 分享
DAY 14

Kafka 概念介紹及部署: Rebalance機制

Rebalance Rebalance是一個動態分配Partition給不同 Consumer Instance的過程。 什麼是 Rebalance? Reb...

2024-09-28 ‧ 由 cancerpio 分享
DAY 15

Kafka 概念介紹及部署: 以 Line Bot 專案為例圖解Rebalance

Rebalance情境 現在我們已經知道,當某些情況發生變化時,Kafka會自動重新分配 Partition的Consumer,這個過程被稱為 Rebala...

2024-09-29 ‧ 由 cancerpio 分享
DAY 16

Kafka 概念介紹及部署: 在AWS EC2使用Docker部署Kafka及設定遠端連線

概述 可以使用官方提供的Docker image,使用docker-compose執行kafka。 必須設定好Listner及Advertised Liste...

2024-09-30 ‧ 由 cancerpio 分享
DAY 17

Kafka 概念介紹及部署: 補充說明: Kafka Connect

概述 Kafka Connect是官方提供的資料搬運工具,本文以一個類似本專案的場景,說明將Kafka Topic的資料匯入MongoDB的設定及執行流程。 K...

2024-10-01 ‧ 由 cancerpio 分享
DAY 18

執行環境設定: AWS EC2 設定指南

概述 本專案的服務除了Serverless的AWS Lambda外,其他包括Kafka、BotServer、及MongoDB等,都是部署在AWS EC2上。這個...

2024-10-02 ‧ 由 cancerpio 分享
DAY 19

執行環境設定: 背景執行與記憶體監控指令

概述 本專案的BotServer和其他外部系統都在同一台EC2上運行,因此記憶體監控顯得格外重要,畢竟經費有限。而在上一篇的描述中我們可以知道,影響成本最大的除...

2024-10-03 ‧ 由 cancerpio 分享
DAY 20

使用 Spring Boot 開發 Backend Bot Server: 從 IoC 容器到 DI 實踐

使用 Spring Boot 開發 Backend Bot Server 前面說明了訊息前處理的部分,包括如何使用AWS Lambda接收及解析LINE Pl...

2024-10-04 ‧ 由 cancerpio 分享