Matsurigoto

熱門文章 (Popular Post)

[旅遊][苗栗] 功維敘隧道 (苗栗隧道)

By : Duran Hsieh

前言

功維敘隧道為台鐵舊有單線鐵路隧道,原名為苗栗隧道,因日治時期兒玉源太郎曾在此題字功維敘而被稱為功維敘隧道。隨著鐵路線改建與苗栗市公所整理後開放民眾參觀,現在苗栗著名景點。功維敘隧道為於苗栗市貓裏山公園內,除了隧道外,公園內還有丘蒼海紀念碑與賴氏節孝訪等景點可以拜訪,是苗栗人閒暇之餘散步的好地方。
(參考資料:wiki-苗栗隧道)

關鍵字:菜園隧道霓虹燈火車頭折返點

功維敘隧道一景

[C#][Visual Studio] 類別與物件 (class and object)

By : Duran Hsieh

前言

前面幾個章節,我們逐一介紹 C# 程式語言基礎內容,在這一個章節將要介紹類別 (class)。對於當時是初學者的我來說,雖然會建構與使用類別,但如何正確命名、使用並區分類別卻是一個很大困擾,直到累積了一些工作經驗與看了許多書,才大概知道怎麼撰寫程式比較合理。在這一篇,我們將簡單介紹類別,若有錯誤或任何建議,請各位先進不吝指教。

關鍵字存取修飾詞建構函式、屬性與欄位DTO方法在 Visual Studio 加入類別


介紹

類別 (class) 像是一張設計圖,你可以在類別內規劃你的程式。您能夠過關鍵字 class 建構類別,如下圖所示:

[C#][Visual Studio] 例外處理 (Exception)

By : Duran Hsieh

前言

在完成撰寫程式後進行運作,偶爾會出現非預期的問題導致系統無法正常運作。無論是撰寫失誤所造成的,或是系統運作期間所產生錯誤,例外處理能幫住我們處理這些情況。當然,我們也能依據情境建立例外狀況物件,表示程式上運作錯誤。透過擲出與建立例外處理,我們能妥善的處理錯誤情境、列出問題點並維持系統正常的運作。
本篇文章將簡單介紹例外處理並介紹 try/catch/finally/throw 使用方法,若有錯誤或任何建議請各位先進不吝指教。

Exception

[C#][Visual Studio] 陣列、集合與列舉 (Array, Collection, and Enum)

By : Duran Hsieh

前言

本篇文章將簡單介紹陣列、集合與列舉使用方法:
列舉 (Enum) 是我相當喜愛的資料結構之一,學生時期的我,其實不太能理解列舉的用途。而隨著工作年資增長後,漸漸地喜愛使用列舉。列舉能增加程式的可讀性,加速工程師對程式碼的理解;這篇文章所介紹的 陣列 (Array) 集合 (Collection) 也非常重要,您能透過它們對於大量物件進行操作與邏輯運算,是高階程式語言的基礎之一。每種高階語言都有類似的資料結構,而只是使用上有所差異。若您有相當的程式經驗,您可以略過這部分的介紹。
本篇文章若有錯誤或任何建議,請各位先進不吝指教,謝謝。


目錄:

1.陣列
2.集合
   2.1 簡單集合使用方法
   2.2 Dictionary 使用方法
   2.3 Stack & Quene 使用方法
3.列舉


介紹

陣列
陣列是建立物件群集的方法之一,其主要限制在於只能固定數量強型別物件,也是我們學習程式語言必須知道的基礎之一。下面是陣列宣告方式:

[2017 Study4TW .NET Conf] ASP.NET Core 實務實戰教學 - 網頁開發範例與 windows 服務

By : Duran Hsieh

前言

本篇內容為 2017 Study4TW .NET Conf  - ASP.NET Core 實務實戰教學 -  網頁開發範例,所有開發範例,希望與會者能透過一步步的操作,ASP.NET Core網頁開發有更進一步的了解。本篇文章若有錯誤或任何建議,希望各位先進不吝指出,謝謝。


其他課程資源請參考:http://study4.tw/Activity/Details/9

[市集][台中] 金典綠園道商場 - 第六市場

By : Duran Hsieh

前言

因為個人健身的地點在金典綠園道商場5樓,偶爾運動結束後會逛逛商場。近期無意間發現 3樓正在規劃新的商場 - 第六市場,似乎在試營運期間有許多抽獎、購物金贈送的活動,假日健身結束後,就與家人逛逛這個新市集。

資訊提供參考:
經典綠園道商場 - 第六市場
地址:臺灣臺中市西區健行路 1049 號 (金典酒店 3樓)  地圖點我
營業時間:早上 10:00 - 晚上 20:00 (週一公休)
官方網站:https://parklanes.com.tw/sixth-market/


介紹

地點

金典綠園道商場與金典酒店為同一棟大樓,商場位於低樓層(1-4樓)。新開幕的第六市場位於3樓,若搭乘電梯,一出門口即可以看見第六市場。


第六市場位於3樓
Tag : , , ,

[C#][Visual Studio] 方法 Method

By : Duran Hsieh

前言

上一篇我們簡單介紹控制流程,而在這一章節我們將簡單介紹方法。在程式開發過程中,我們能執行一個子程式區塊,完成一個動作,我們簡單稱之方法(method)。方法能有效提升程式可用性與可讀性:將常用的程式區塊抽出,避免相同的程式重複出現;好的命名可以讓工程師快速了解這個子程式區塊的目的,提升開發效能。本篇文章若有錯誤或任何建議,請各位先進不吝指教。

關鍵字:方法多載選擇性參數擴增方法ret 與 out



介紹

方法的命名方式為動詞,用來描述一個動作或行為,下面為一些常見的命名範例:
GetWalletById
CreateOrUpdatePlayer
IsPlayerTokenExpired

下面為方法的主體:(存取修飾詞我們會在類別這章節介紹)

[C#][Visual Studio] 控制流程 Control Flow

By : Duran Hsieh

前言

上一篇文章我們簡單介紹了基本的資料型別與建構子,而這一篇控制流程也屬於較基礎的文章,若您已經有高階程式開發經驗,只需要看看語法上的差異。控制流程主要介紹 if, switch 判斷、 for, foreach, while 迴圈與breank, continue 跳躍指令,若不考慮可讀性、可維護性、物件導向...等,您可以透過這些語法完成大部分的程式,但這篇文章,仍會告知您如何使用比較佳。本篇文章若有錯誤或任何建議,請各位先進不吝指教,謝謝。


[OpenSSL][Windows] 憑證格式轉換 - 將 crt 與 key 轉換 pfx

By : Duran Hsieh

前言

最近想要透過 HTTPS 方式存取 Team City,接觸了一些有關憑證的相關知識與流程,也遇到了憑證格式轉換的問題。我們擁有 .crt 與 .key 兩個檔案,但必須轉換成為 pfx 格式後,才能提供於 Team City 使用(設定於 server.xml),TeamCity 設定方式可以參考此篇文章
而本篇文章只簡單描述如何將 .crt 與 .key轉換成為pfx,本篇文章若有錯誤或任何建議,請各為先進不吝提出。


介紹

Step 1. 首先我們先到 OpenSSL for Windows - GnuWin32 (http://gnuwin32.sourceforge.net/packages/openssl.htm) 下載 openssl 安裝檔案,並執行安裝程序

[C#][Visual Studio] 資料型態與運算子

By : Duran Hsieh

前言

上一篇我們簡單介紹 C# 語言特色與發展史,在這一篇文章,我們簡單介紹資料型態與運算子。若您先前有高階語言(如 Java) 的基礎,對於這一篇應該會有基本的認識。本篇文章若有錯誤或任何建議,請各位先進不另指教。


介紹

簡介

資料型態與運算子為程式語言的基礎,你可以指定變數的資料型態,並透過運算子進行不同的運算。如下範例:int整數資料型態, a變數名稱= 運算子1數字,而每一行程式結束的時候都需要一個 ""

[C#][Visual Studio] C# 語言簡介

By : Duran Hsieh

前言

這一系列文章是過去學習 C# 所留下筆記與參考 Study4TW 內部教學文件改寫而成,除了讓未來自己參考使用,也提供有需要的學弟妹與朋友參考。 C# 可提到內容非常的廣泛,這裡的文章會以比較基礎內容為主,並提供簡單範例,更進階的應用就不在此贅述。
本篇文章將簡單介紹 C# ,並且透過第一個程式範例 - Hello world,簡單介紹 Visual Studio 基本操作。文章內容若有錯誤或任何建議,請各位先進不吝提出,謝謝。

註:本系列文章使用 Visual Studio 2017 Community 進行範例,如下圖:

[Powershell] Call Restful Web API via Powershell

By : Duran Hsieh
Yesterday I would like to create a new  build script on TeamCity. This build script is for calling restful web api after performance test has been done. I don't want to install any plugins on project TeamCity server, so I decide to call restful web api via powershell.


We can use "Invoke-RestMethod" to  call restful web api as below:

GET:

$header = @{
     "Authorization"="Bearer iamtokenhahaha0123456789"
}

Invoke-RestMethod -Method Get -Uri "http://localhost/api/getDate" -Header $header

[日本][大阪] 梅田空中展望台夜景

By : Duran Hsieh

前言

說到了大阪想要看夜景,就一定要來梅田藍天大樓的空中展望台。這個空中展望台由兩棟大樓連結而成,室內可以360度全景觀看城市風景,可以點一杯飲料坐在這,悠閒的放空,度過美好的下午。頂樓為一個室外圓形空中步道,許多遊客、觀光客皆拿著手機與相機到頂樓爭相拍照,是來到大阪極力推薦的景點。

關鍵字:梅田藍天大樓夕陽夜景



[Azure] 透過 Azure blob storage 建立靜態網頁

By : Duran Hsieh

前言

依據過去工作的經驗,許多的測試、掃描工具皆會產生 HTML 類型的報表,方便相關人員閱讀,但想要分享資訊給團隊成員,透過通訊軟體或寄送電子郵件的方式相當不好管理,常常找不到過去的報表。部分公司會將這類型的報表透過 FTP 方式上傳網站伺服器,除了讓團隊成員隨時隨地可以查閱,管理上也方便不少。
以個人來說,當公司或專案沒有網頁伺服器可以使用的時候,比較喜好將這些報表傳送至 Azure Blob Stroage,依據測試報告類型與時間分類,隨時可以透過連結給團隊成員檢視過去報表,相當方便。本篇文章將簡單分享如何設定 Azure Blob Stroage 與上傳靜態網頁的流程,若有錯誤或任何建議,請各位先進不吝指教。
注1:Azure Blob Stroage 無法幫您導向首頁 (index.html),意味著你需要完整網址
注2:純粹分享 Azure Blob Stroage 不同的應用,若有網站開發需求,建議您還是透過網站伺服器,會有更完整的支援
注3:在使用這個方法前,請先確認您有 Azure 帳戶




介紹

設定 Azure Blob Stroage 與上傳檔案

Step 1. 前往 Azure ,選擇 Azure 入口網站
Tag : ,

[健身] Duran 的健身日記 1

By : Duran Hsieh

前言

這系列的文章想記錄自己這些年的健身心路歷程,將當下的心得一一記錄下來,原先這滿一年就要開始撰寫,拖到健身滿兩年才開始撰寫,後續會持續更新。若有本文章有任何錯誤或建議,請各位健身的前輩、同好不吝指教。

健身滿兩年

Tag : ,

[ASP.NET Core] 使用 ASP.NET Core 實作 windows 服務 (Implement windows service with ASP.NET Core)

By : Duran Hsieh

前言

今年初因為專案因素,有機會了解如何製作一個 WebAPI  (MVC架構) 的 Windows Services,加上近幾年幾乎都在開發 ASP.NET C# MVC 相關程式,對於這種簡易服務製作印象相當深刻。最近無意間發現 ASP.NET Core 也能製作這種類型的服務,且有別於原先 topshelf + console app 的方式,ASP.NET Core 本身架構與特色使開發過程更加輕鬆與簡便。本篇內容如下:

建立 Windows Services
    建立 ASP.NET Core Web 應用程式(.Net Framework)
    透過 Nuget 安裝 Microsoft.AspNetCore.Hosting.WindowsServices
    修改應用程式執行路徑與執行方式
    發佈專案至資料夾
    透過 SC 指令建立 Windows Services
進階說明
    偵錯與除錯
    優點
    修改 URL

本篇文章參考官方文件並簡單介紹個人實作過程,若有任何建議或錯誤請各位先進不吝指教,謝謝。



介紹

建立 ASP.NET Core Web 應用程式(.Net Framework) 

1. 開啟 Visual Studio Community 2017 -> 檔案 -> 新增 ->專案

[.NET][C#][Powershell] 使用 C# 遠端背景執行 powershell 命令 (Run remote powershell command in background with C#)

By : Duran Hsieh

前言

這兩個月的工作是不斷地對系統進行壓力/效能測試與調校,漸漸開始有自動化壓力測試的需求。由於我們採取方式 Remote Testing,每一次進行測試前需要啟動每一台 JMeter Sever,才能開始執行測試腳本。為了能執行遠端伺服器 JMeter Sever ,我們在服務內撰寫執行 remote powershell 的方法,藉此達到目的。本篇文章簡單介紹:

1. C# 執行 Powershell Scripts
2. 執行遠端 Powersehll Command
3. 背景執行 Powershell Scripts
4. 如何背景執行 Powershell Scripts 時取得 output 與 status

若有任何錯誤或建議,請各位先進不吝指教。

本篇執行環境:
Visual Studio 2017
.Net Core with .Net Framework

範例下載:
https://github.com/matsurigoto/powershell_with_csharp_example



介紹

 C# 執行 powershell Scripts

當您想要使用 C# 撰寫 Powersehll 指令,必須將 System.Management.Automation.dll 加入參考,而這個 dll 位置是在:
C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\3.0

[日本][京都][自由行] 錦市場 與 鴨川

By : Duran Hsieh

前言

京都是一個充滿日本傳統文化的都市,您在此可以看見許多穿著和服的人們逛街、欣賞充滿歷史的古城與進入神社虔誠的參拜。對於第一次跟旅行團或自主自由行到日本旅遊的您,京都是非常不錯的選擇。本篇文章主要介紹的地點為京都四条附近的景點 - 錦市場鴨川,並分享錦市場部分美食心得,歡迎大家一起交流交流 ( ^ω^)

註:錦市場的營業時間為10:00-18:00,但多數店家在17:00、甚至更早就收攤了,要前往的朋友需要注意一下時間。

關鍵字錦市場木村鮮魚Snoopy 茶屋丸龜天婦羅章魚蛋錦天滿宮鴨川川床


川床

[日本][京都][自由行] 伏見稻荷大社

By : Duran Hsieh

前言

伏見稻荷大社是京都香火鼎盛的神社之一,供奉著稻荷大神,為掌管食物、穀物神祇的總稱。過去日本將狐狸視為稻荷神的使者,故在整個神社內可以看見許許多多的狐狸像,佇立在樓梯、走道的兩旁;另外一提,在日本各地都有伏見稻荷神社,數量位居日本之冠,而位於京都為總社。來到京都,伏見稻荷大社視為必來的景點,若能搭上神事、慶典活動,更能體驗日本宗教之美。

關鍵字伏見稻荷狐狸千本鳥居街頭美食紀念品

伏見稻荷大社一景

[Stress Test] JMeter Remote Test 遠端測試

By : Duran Hsieh

前言

在某些案例需求,可能需要不同區域主機對伺服器進行壓力測試;又或者是需要更嚴苛、更大的壓力測試案例,本身發出 Request 主機資源不足情況下,就非常需要遠端測試。

主要內容如下:
1. 基本介紹
2. GUI mode 遠端測試
3. Command line Mode (Non-GUI mode) 遠端測試
這篇文章將簡單說明如何使用JMeter 遠端控制數台 JMeter Server 同時對於目標伺服器進行測試,若有錯誤或任何建議,請各位先進不吝指教。


介紹

基本介紹

下圖為執行Remote test 示意圖,需要 1台 client 與數台 remote server,而這幾台電腦都必須安裝 JMeter。我們從 client 執行測試命令,而由數台 remote server 對目標伺服器進行測試。若你的遠端主機各執行500 thread,若有5台遠端主機,就是執行2500 thread。

[Stress Test] JMeter Command line mode and report dashboard 指令操作模式與報表儀表板

By : Duran Hsieh

前言

在過去製作許多小型專案或小型形象網站,通常部會持續高流量一段時間,做壓力測試往往不需要太過於嚴苛,透過圖形化介面的JMeter很快就能完成任務。近年來接觸到大型產品專案,需要測試服務負載極限,無法於圖形化介面執行測試案例(會當掉),而官網也強調:
Don't run load test using GUI mode !
此外,最近也持續在研究持續整合,嘗試將JMeter納入其中一環,命令執行是必要的,因此特別做一份筆記簡單紀錄 JMeter 命令執行的方法。本篇文章若有錯誤或任何建議,請各位先進不吝指教。


介紹

首先我們先介紹每個指令所代表意義:
-n:  讓 JMeter 於非圖形介面模式(non-gui mode)執行
-t:  執行計畫(plan)名稱,副檔名為JMX
-l:  執行結果(result)儲存名稱,副檔名為JTL,
-j:  執行紀錄(log)儲存名稱
-r:  執行遠端測試 (依據 JMeter prorerty "remote_hosts" 設定)
-R:  執行遠端測試 (特定主機,需要於命令給予伺服器清單)
-g:  產生報表儀表板,CSV檔案(儲存路徑)
-e:  負載測試後產生報表儀表板
-o:  輸出資料夾名稱,輸出資料為負載測試後產生報表儀表板 (這個資料夾不存在或內容必須為空)

我們測試案例如下圖:
執行計畫(test plan)

[Stress Test] JMeter Preprocessor and Postprocessor 前置處理器與後製處理器

By : Duran Hsieh

前言

前面幾篇我們介紹 JMeter 一些基本的知識與操作方式,這一篇我們將簡單介紹前置處理器(Pre Processor) 與後置處理器 (Post Processor),內容包含:
1. 基本介紹
2. 前置處理器
3. 後置處理器

前置處理器後置處理器在 JMeter 是非常方便的設定,可以應付多數情境需求,若熟悉這兩個設定,寫起腳本會更加得心應手,而在後置處理器部分 - XPath Extractor部分,我們使用Debug Sample方式印出所有資料,方便您除錯。本篇文章若有錯誤或任何建議,請各位先進不吝指教。

介紹

基本介紹

在許多壓力測試情境,我們常常需要在發出 HTTP Request 前後進行一些特別的處理,如下圖所示:

[Stress Test] JMeter BeanShell 介紹與撰寫

By : Duran Hsieh

前言

Beanshell 為一個輕量級 Java interpreter,可以完整 Java 語法動態執行、片段代碼執行。JMeter 功能已經相當齊全,但我們仍能透過 Beanshell 撰寫各種客製的前處理、取樣與後置處理,製作符合各種情境的腳本。如同撰寫 Java 應用程式,在JMeter內能匯入各種套件使用,我們也將介紹如何匯入 jar 檔,在Beanshell 撰寫進行簡易的 json 解析。本篇主要內容為:
1. BeanShell 取樣
2. JAR 匯入與使用
本篇文章若有錯誤或任何建議,請各位先進不吝指教,謝謝。



介紹

BeanShell 取樣

在 JMeter,我們能增加三種有關Beanshell 的操作,分別是 Beanshell 前置處理器、後置處理器與取樣。

在第三篇隨機資料的範例中,我們簡單介紹 Beanshell 內接收 variable 與 property,並且列印出結果。使用方式方別為:
Step 1. 於執行緒群組點選右鍵,新增 BeanShell 取樣


[Stress Test] JMeter Wait, Loop, and Random 等待、迴圈與隨機數

By : Duran Hsieh

前言

撰寫壓力測試腳本如同撰寫程式一樣,經常面臨對於某些測試行為進行延遲重複處理,也有機會遇到需要隨機數產生資料進行測試的情境。在這篇,我們將介紹如何於 JMeter 中撰寫 Wait, Loop, 與 Random 腳本,與前一篇 variable 與 property 結合,撰寫腳本將更得心應手。本篇文章若有任何錯誤或建議,請各位先進不吝指導,謝謝。


介紹

Wait :延遲

延遲部分可以分成 計時器(Timer)測試動作(Test Action),有不同的設定方法。

1. Timer (計時器):
在談計時器 (Timer) 之前,我們必須詳細閱讀官網說明,個人過去有過看到 Timer 很開心直接拿來用,最後壓測結果頗詭異,很久才發現有問題。
Note that timers are processed before each sampler in the scope in which they are found; if there are several timers in the same scope, all the timers will be processed before each sampler.
Timers are only processed in conjunction with a sampler. A timer which is not in the same scope as a sampler will not be processed at all.
To apply a timer to a single sampler, add the timer as a child element of the sampler. The timer will be applied before the sampler is executed. To apply a timer after a sampler, either add it to the next sampler, or add it as the child of a Test Action Sampler.
主要重點如下:
1. Timer 的執行會在取樣前執行,無論放在同一層,或當作 child 放在某個取樣底下。如下範例,雖然計時器放在 Step1 後面,執行結果仍是 停2秒 > 執行Step 1

[Stress Test] JMeter Function, Variables and Properties 變數與性質

By : Duran Hsieh

前言

前一篇我們簡單介紹 JMeter 操作作方式與設定一個腳本測試 ASP.NET Core 範例網站。在這一篇,要介紹幾個簡單卻在撰寫腳本過程中非常重要的元素 - Function, User Defined Variables, User ParametersProperties。如同寫程式方式,可以設定使用者變數提供後續測試工作(如 Http Request, Header, PreProcessor, 與PostProcessor)..等使用,理所當然,這些變數可以傳遞參數但也受到 scope 與 thread 影響。此外,在撰寫/修改腳本期間,使用這些自訂的變數,可以讓您不需要進入各個測試行為內一個一個修改,並增加腳本可讀性,相當實用。本篇文章若有任何錯誤或建議,請各位先進不吝指導,謝謝。


介紹

Function
JMeter 定義一些變數方便我們使用,個人常用到像是:
1. threadNum : 取得目前 thread 編號
2. machineIP : 取得本地執行機器 IP address
3. machineName : 取得本地執行機器名稱
4. time: 取得時間

而使用方法非常的簡單,無論在測試工作或者BeanShell,只需要${__RefName}即可使用:
${__threadNum}
${__machineIP}
其他變數請參考: http://jmeter.apache.org/usermanual/functions.html#functions

[Stress Test] JMeter Introduction 介紹與基本操作

By : Duran Hsieh

介紹

JMeter是一套 Java-based、開源的測試工具,能對於您的網站進行功能與壓力測試。支援豐富的通訊協定、前(後)置處理、腳本撰寫、報表呈現與使用者變數功能,讓測試人員能夠撰寫符合產品測試的情境,達到有效的測試。JMeter 操作介面容易,也提供錄製腳本的功能與結果報表,功能相當強大。本系列文章若有任何錯誤或建議,請各位先進不吝指導,謝謝。
本系列文章目錄如下(暫定,會更改):
  1. JMeter Introduction 介紹與基本操作
  2. JMeter Variables and Properties 變數與性質
  3. JMeter Wait, Loop, and Random 等待、迴圈與隨機數
  4. JMeter BeanShell 介紹與撰寫
  5. JMeter Preprocessor and  Postprocessor 前置處理器與後製處理器
  6. JMeter Command line mode and report dashboard 指令操作模式與報表儀表板
  7. JMeter Remote Test 遠端測試
  8. 附錄: JMeter Recording Controller 進階操作 錄製控制器
  9. 附錄: [IIS] Performance tunning for WebAPI

在這一篇,我們將簡單介紹如何使用JMeter,內容如下:
  1. 下載與安裝
  2. 第一個網站壓力測試腳本
  3. 設定報表
  4. 測試
本篇文章原為 2013年3月1日 JMeter 基本操作,於第八屆 IT邦幫忙鐵人賽重新撰寫,於2017年5月改寫作為 JMeter 系列文章內容之一。

下載與安裝

JMeter網站,點選 JMeter.zip 下載,並且解壓縮。

[IIS] Performance tunning for WebAPI

By : Duran Hsieh

前言

最近這幾週的工作內容就是不斷對 WebAPI 進行壓力測試。與過去最大不同的是,這次有強大硬體設備讓我做更嚴格測試案例。這篇文章簡單紀錄整個測試過程,但並非所有調整都有顯著效能提升,這裡僅作為個人筆記與提供有興趣的人參考。


測試與紀錄

1. Queue Length

 IIS 會限制 application pool requests 最大值,若超過這個數值,使用者會收到 503 - Service Unavailable 錯誤訊息,Queue length 預設值為1000。官方建議值應為使用者 x 1.5 ,若使用者為2000人,Queue length 應為 3000。

設定位置在  IIS 內 Application pools > Advanced Settings... > Queue length
Quque Length

[Elasticsearch] Configuring the cluster

By : Duran Hsieh

前言

本篇文章將簡單介紹如何建立 Elasticsearch Cluster(叢集)。 Cluster 包含了許多 Elasticsearch Node(節點),每個節點負責不同的工作,包含統整控制、資料同步、資料寫入與搜尋...等工作。藉由建立叢集架構,我們可以提高 Elasticsearch的可用性與。理所當然,單一 cluster 的能力有限,另在備援與災害防護考量下,大型系統可能會有多個 Cluster 互相支援。本篇文章將簡單介紹如何在 Windows 作業系統環境下建立 Elasticsearch cluster,若有錯誤或建議也請各位先進不吝提出。



介紹

本章節主要分成三個主要內容:
  1. Node 類型
  2. Cluster 實作
  3. Elasticsearch-head 使用


Node 類型

Master
用於判斷建立與刪除索引、追蹤群集內的node、確認shards在哪一個node,在群集中扮演相當重要的角色。雖然master node也能進行索引與搜尋,但為了維持群集的穩定性,官方不建議master進行此類型工作。設定方法如下:
node.master: true
node.data: false
node.ingest: false

Data
用於儲存資料的節點,主要進行 CRUD、搜尋與 aggregations 等操作。對於data node來說,其I/O、記憶體、CPU等資源相當重要,若資源不足必須加入額外的data node。設定方法如下:
node.master: false
node.data: true
node.ingest: false

Ingest
5.0版新功能節點,可以pipeline方式處理大量資料接收。設定方法如下:

node.master: false
node.data: false
node.ingest: true

Coordinating only nodes
主要能夠進行route requests, handle the search reduce phase, and distribute bulk indexing等工作。過多的coordinating only nodes可能造成cluster負擔。設定方法如下:
node.master: false
node.data: false
node.ingest: false



Cluster 實作

我們所設計的 Cluster 架構如下圖:(4個 data node、1個ingest node與 3個master node)

[Elasticsearch] Elasticsearch installation on windows

By : Duran Hsieh

前言

Elasticsearch 是以 Lucene 為基礎的搜尋引擎,無固定 schema、JSON 文件方式儲存資料(與 Monog database 相似,No SQL Database),並以 HTTP 請求方式提供使用者操作。本篇文章將簡單介紹:
  1. 如何在 windows 作業系統下,安裝 Elasticsearch註冊 windows 服務方法
  2. 在Windows作業系統下,使用 docker 啟動Elasticsearch
若有錯誤或任何建議,也煩請各位先進不吝指教。


介紹

Windows
Step 1.前置作業  - JRE安裝
           Preparation - JRE installation

- Copyright © Duran Hsieh @ Matsurigoto - Date A Live - Powered by Blogger - Designed by Johanes Djogan -