0%

hi all, 小弟最近在讀本書,叫做原子習慣,那這本書主要在講如何透過建立習慣,來達到自己的目標,這篇文章主要會用來記錄這本書的內容,預防針打一下,不一定是每個知識點都會紀錄。

所有的筆記都會紀錄在這一篇,所以這是一篇連載筆記?

閱讀全文 »

How to apply APM to .NetCore

Some referred from FeloSearch

Certainly! Setting up Elastic APM with your .NET application involves several steps, which I’ll outline in detail below. We will cover installation, configuration, and deployment, ensuring you’ll be able to monitor your .NET application effectively.

1. Prerequisites

  • Elastic Stack: Ensure you have an Elastic Stack (Elasticsearch, Kibana, and APM Server) set up. You can do this locally, but it is often deployed as part of an Elastic Cloud setup.
  • .NET SDK: Ensure you have the .NET SDK installed.
  • NuGet Package Manager: This is needed for installing necessary dependencies.
閱讀全文 »

接續上篇,書中有一個小篇章在講述狀態這件事情,並講述到 STM 這個防併發的做法,覺得蠻有趣的故作個筆記。

What’s Software Transaction Memory

簡單來說,它是個限制存取資源的機制,STM 透過把一組 (讀取, 寫入) 封裝在一個 transaction 中,來實現所謂的操作原子性,其中最主要的目的在於避免資源競爭、Dead-Lock 的情況發生。

以下是 STM 的一些特性:

閱讀全文 »

有天心血來潮去天瓏書局逛逛,看到了一本由 UncleBob 撰寫的 Functional Design。乍聽之下感覺還不錯,就當給自己的 2025 年新年禮物回家讀,所以才會有這篇筆記。

什麼是 Functional Design

簡單來說,就是以 function 的方式撰寫程式碼(我知道這樣有講跟沒講一樣…)。

以下是 Uncle Bob 的回答:

Programming without assignment statements.

以下是我結合書上列出來的觀點及一些自身的想法所列出來的 Functional Design 的幾個特色:

  1. Always f(x)=yf(x)=y
  2. Function 內不會有變數上的變動
閱讀全文 »

到底怎麼切微服務這是個蠻好發起的問題,以下是我跟我的前同事 丁丁 在吃晚餐時隨口聊的,覺得蠻有趣的所以寫寫文章。

為什麼要切微服務

  • 當一個組織想做一些架構重構的時候,首先要想的並不是服務怎麼切,應該要想為什麼要切。

對於一個對技術有相對熱忱的工程師來說,我知道遇到問題不去想解法是件很難的事情。但就自己在經歷了前公司的微服務後,加上前前後後看到的一些架構後,回頭反思一下,得到了一個啟發:

閱讀全文 »

ECS Log Standard

ECS(Elastic Common Schema)是一個開放的標準,用於統一和簡化不同來源的日誌資料。以下是一些關於ECS log standard的重要資訊:

為什麼使用ECS?

ECS 提供了一個統一的結構,使得來自不同來源的日誌資料可以更容易地被解析和分析。這有助於提高日誌資料的可用性和可理解性。

ECS 的主要特點

  • 一致性:ECS 定義了一組標準欄位,使得不同來源的日誌資料可以使用相同的欄位名稱。
  • 擴展性:ECS 允許使用者根據需要擴展欄位。
  • 相容性:ECS 與多種日誌管理工具和函式庫相容。
閱讀全文 »

Hi all, 因為工作上的關係接觸到了所謂的 AOP 框架, 覺得挺有趣的故藉此文章分享。

Introduce

AOP(面向方面程式設計/Aspect-Oriented Programming), 他是一種寫程式的方法,簡單來說就是把一些常常要用到,但是跟主要業務邏輯無關的功能抽出來統一處理。
舉個例子, 假設我們在寫一個購物網站然後建立交易的流程如下:

閱讀全文 »

這是一個使用 ChatGpt 來教我怎麼認識及部屬 Kafka的筆記,在下對於kafka的認知程度大概是只知道這是啥但沒碰過,如果有跟我一樣程度的大大們也能參考這篇筆記。

Kafka 是一個由 Apache 開發的分散式事件流平台,廣泛用於即時資料流處理和高效能的資料傳輸。以下是 Kafka 的核心概念和特性:

  • 消息系統:Kafka 是一種分散式的消息系統,支持發布(publish)和訂閱(subscribe)消息,常用於數據的即時流處理。
  • 分區(Partition)和容錯性:消息被分成多個分區儲存,允許橫向擴展來處理大規模資料。分區複製增加了容錯性,即便某個節點失效,其他複製節點仍可提供資料。
  • 高效能:Kafka 使用順序寫入和磁碟存儲結構來提供高吞吐量,適合高頻交易和資料流的大數據處理。
  • 消費者群組(Consumer Group):多個消費者可以組成群組,共享讀取相同主題的不同分區的訊息,使得訊息能夠被平行處理,達到橫向擴展的效果。
  • 持久性:Kafka 可以將消息持久儲存在磁碟上,用戶可以配置消息的保留時間,因此即使消費者延遲也不會丟失消息。
  • 流處理(Stream Processing):Kafka 提供 Kafka Streams API,支持將數據流作為實時的可持久查詢的數據源,允許進行資料的過濾、聚合和轉換。
閱讀全文 »

Hi all, 在理解2PC 理論前,我們需要先知道這個理論她要解決的問題是甚麼。

多文件一致性問題

首先給個情境,今天有個服務它的運作流程是先更新cache 再更新 database,由於兩邊的更新都需要使用到網路進行訊息傳遞,我們也不能保證說兩次的網路使用都會沒問題,那我們該怎麼確保兩邊資料上都要確保一致呢?

閱讀全文 »