公司的一個系統需要在兩台 EC2 之間傳輸資料,假設稱他們為 A 與 B,資料由 A 傳向 B,而這些傳輸偶爾會因資料庫連線時的身分驗證失敗。
公司的一個系統需要在兩台 EC2 之間傳輸資料,假設稱他們為 A 與 B,資料由 A 傳向 B,而這些傳輸偶爾會因資料庫連線時的身分驗證失敗。
事情是這樣的:
前陣子工作上開發的 API 上線後,在當天的數千次 request 中,發生 5 次不明原因的錯誤(從 CloudWatch Dashboard 看到 API Gateway 的 5XX Error 出現大於零的數字)。
後來為了重現錯誤,用 K6 做了 soak test。在 30 分鐘內也的確出現數次錯誤。
不過 API Gateway 在 response payload 之中只給出「Internal Server Error」的訊息,為了進一步了解錯誤的原因,要參考 $context Variables for access logging only 章節在 Access Log 之中加入額外的資訊。比如說:
$context.authorize.error
$context.authorizer.error
$context.authenticate.error
$context.integration.error
$context.waf.error
在我踩到坑、並找到解法之後,才發現這個很基礎
但踩到了就踩到了,還是紀錄一下🙈
根據 khiav223577 大大的「MySQL 編碼挑選與差異比較」分享,
一般常使用的「ci」字集,其意思是 case-insensitive,也就是大小寫不敏感。
這種設定相當適合用在文章網站、新聞網站的搜尋功能,因為無論使用者輸入大寫的「APPLE」或小寫的「apple」,都能找到所有帶有「Apple」關鍵字的資料。
但當你需要做如 ID 比對、token 比對、短網址代碼比對,可能都需要改成 case-sensitive 字集,
或者在 WHERE 條件中使用 binary 達成目的。
最近常常用 PHP / Laravel 寫匯入資料的程式。為了效率起見,通常一開始就會使用 csv 格式,但這格式並不是萬能的,當資料量從 1 筆提升到 30000 筆,需要不斷調整程式才能妥善處理。
不過還是在開發之前就先抓好資料量是最好的啦🥲
我的新電腦用 Ubuntu 22.04,使用 ib…
Computer | Dell Inspiron 5425 |
CPU | AMD Ryzen 5625U (Barcelo) |
RAM | 16GB |
SWAP | 20GB |
SSD | SK Hynix 512GB BC711 (firmware: 41002131) |
BIOS | 1.2.1 |
OS | Ubuntu 22.04 |
Linux Kernel | 5.15.0-40-generic |
這本書為軟體工程師在專業技能以外的方方面面提供指引,比如說
最近在物色一台安裝Ubuntu後不太會出現相容性問題的筆電
挑出中意的型號後,可以先到這些網站查查相容性:
Laravel 提供簡單好用的 API,
比如它的 ORM 讓你能用 paginate() 拿到 LengthAwarePaginator
它的 links() 能直接 render 出分頁功能的 HTML
專案上線 N 年後,資料量大了,可能會遇到分頁越來越慢的狀況,
這篇文章會描述一下我考慮解決方法的思路