Lynn Study Notes

.NET Developer, Open Source Enthusiast

使用docker部屬ElasticSearch Cluster

一直以來對ElasticSearch的使用都是拿來查詢Log、存放訂單資料來提供查詢等等,沒有特別深入的研究他,對於效能上的調教也都還沒實際碰到過,想說在自己Lab裡面架一台ElasticSearch來玩看看,因為Elastic Search Cloud太貴,免費又只能玩30天,雖然有辦法做到無限免費仔,但實在太花本了,就直接架在地端吧!


使用FileStreamResult進行大檔案傳輸

來還技術債啦!!!

剛入職時接到的第一份工作是要匯出一個API回傳的資料,並處理成CSV的格式匯出讓使用者下載,因為格式單純所以那時也沒有使用任何CSV的套件,就單純回傳一個組好的物件。

那時資料量不多,所以也安安穩穩的度過了一年的時間,直到最近資料量暴增,於是發生了OOM 😆

但目前很可惜要處理這問題的人並不是我,所以想說直接來練練手好了


Hello Rust

Rust是一種偏向系統級的程式語言。主要目的是為了高效能和安全的應用程序而設計,於2010年在Mozilla研究所發表,並於2015年達到穩定版本。
詳細內容就看Wiki吧
https://zh.wikipedia.org/wiki/Rust

對這語言好奇的原因是因為連Window的Kernel都準備用Rust來取代C++了,單論效能Rust在具有額外安全保證的程式碼會比C++慢一些,但假設C++也做了一些手工檢查,兩者的效能其實是相似的。


使用TcpClient和TcpListener搭配WireShark來抓取TCP傳輸

常常聽到TCP、UDP等等ProtocolType,但這些東西都被封裝得好好的,實在是沒自己特別寫過,基於好玩想說來測試看看,.NET 自己有實作了TcpClientTcpListener,實現方式也很簡單,不過官網明確說明了建議進階使用者使用Socket Class,因為TcpClientTcpListener建立在System.Net.Sockets.Socket 之上,不過今天是想抓抓看傳輸內容,所以就直接用TcpClientTcpListener吧,Socket Class就等下篇文章了。


Boxing and Unboxing

這兩段程式碼看起來有差嗎?

var count = 0;
//1
Console.WriteLine($"Hello World {count}");
//2
Console.WriteLine($"Hello World {count.ToString()}");