yue-fang-readfog

feeds.twtxt.net

No description provided.

Recent twts from yue-fang-readfog

gnet:基於 Go 語言的高性能網絡框架
gnet 是一個基於 Go 語言的事件驅動型網絡框架,其設計宗旨是實現高性能和輕量級。gnet 在底層採用了 epoll 和 kqueue 機制,相較於 Go 語言標準庫 net 在特定場景下有着更好的性能和更低的內存消耗。雖然 gnet 並非旨在取代 Go 語言的 net 庫,但它提供了另一種在 Go 生態系統中構建性能敏感型網絡服務的選擇。通過實現應用層的協議(如 HTTP、RPC、WebSo ⌘ Read more

⤋ Read More

go-money 實現貨幣運算的金標準
在進行金融領域的軟件開發時,貨幣值的精確表示和操作至關重要。由於浮點數帶來的精度問題,傳統的處理方式經常導致數值上的細微誤差。針對這一問題,go-money包提供了基於 Go 語言的解決方案,實現了 Fowler 的貨幣模式。本文將深入解析go-money包,演示其具體的使用方式,並通過豐富的示例讓您掌握如何在 Go 項目中實現精確的貨幣計算。起步:安裝 go-money————- ⌘ Read more

⤋ Read More

Sentinel 如何持久化數據到 Nacos?
默認情況下 Sentinel 只能接收到 Nacos 推送的消息,但不能將自己控制檯修改的信息同步給 Nacos,如下圖所示:但是在生成環境下,我們爲了更方便的操作,是需要將 Sentinel 控制檯修改的規則也同步到 Nacos 的,所以在這種情況下我們就需要修改 Sentinel 的源碼,讓其可以實現和 Nacos 的雙向通訊,如下圖所示:改造之後的交互流程如下圖所示:Sentinel 同步規 ⌘ Read more

⤋ Read More

騰訊文檔 AI 助手技術實踐
作者:tensorchen 本文從技術應用架構以及 AI 大模型賦能角度介紹騰訊文檔 AI 智能助手的探索和實踐之路。作爲一款集多功能爲一體的 AI 產品,騰訊文檔全品類與 AI 進行了深度融合,全面提升用戶生活和辦公中的效率。通過騰訊文檔 AI,你腦海中靈光一現的 Idea 可以快速轉化爲詳細的內容,在各種類型的文檔中同源流轉。同時,面對紛繁複雜的信息,騰訊文檔 AI 也可以加以分析處理,幫助 ⌘ Read more

⤋ Read More

上層應用的基石:分佈式協議
故障模式—-故障發生和檢測的方式對於許多算法都很重要。以下是最常用的:故障停止故障停止意味着如果節點出現問題,每個人都能知道並檢測到它,並能從穩定的存儲中恢復狀態。這在理論和協議上都是簡單的模式,但在實踐中卻很難實現(在某些情況下甚至是不可能的)崩潰故障崩潰故障意味着,如果節點或代理出現問題,它就會崩潰,然後再也不會回來。你要麼永遠正確,要麼永遠遲到。這在理論上比故障停止更容易設計(但操作起來 ⌘ Read more

⤋ Read More

不可思議!億級數據竟然如此輕鬆同步至 ES!
1 這是一個背景——–最近接了一個需求,要提供一個隨意組合多個條件來查詢訂單數據的功能,看着數據庫裏過億的訂單量,頭髮不爭氣的又脫落了兩根代表這個需求不簡單脫落的兩根頭髮,不是技術實現上很難,其實技術實現上清晰明瞭,就是通過數據異構,將數據同步到 ES,利用 ES 的倒排索引、緩存等能力,提供多條件複雜查詢的能力,而 ES 集羣我們已經有了但有些數據,在目前的 ES 索引中是不存在的,也 ⌘ Read more

⤋ Read More

喫透 Redis 系列:高可用的哨兵模式
一哨兵模式介紹 哨兵模式(Sentinel)是 Redis 提供的高可用解決方案,作爲一個分佈式系統,它包含了多個 Sentinel 節點和 Redis 節點,這些 Sentinel 節點會監控 Redis 節點的狀態(通常爲主從複製),如果發現 master 節點不可用時,會自動將其中一個 slave 節點提升爲 master 節點,從而實現了自動故障轉移。總體來講,哨兵模式的主要功能有如下幾 ⌘ Read more

⤋ Read More

Rust 挑戰 - 動手實現 HashMap 2
Rust 挑戰 - 動手實現 HashMap 1讓我們從上一篇文章結束的地方繼續。我們要實現 getmut() 方法,這應該與 get() 方法一樣,但編譯器不會讓我們簡單地將不可變變量更新爲可變變量。解決方案是通過迭代器循環遍歷 entry,而不是老式的索引計數。由於我們需要從給定的索引開始,循環遍歷整個數組,以 index-1 結束,這本身有點棘手,但可以使用 Iterator::splita ⌘ Read more

⤋ Read More

如何設計安全可靠的 API ?
如何設計安全可靠的 API ?下圖列出了 12 條原則。01 使用 HTTPS 數據加密:HTTPS 對客戶端和服務器之間傳輸的數據進行加密。它使用 TLS 或其前身 SSL 對通信進行加密。這種加密可確保用戶數據、身份驗證等敏感信息在傳輸過程中保持安全。如果沒有 HTTPS,這些信息可能會被數據包嗅探等技術截獲。 合規要求:許多監管標準,如 GDPR 和 PCI DSS,都要求使用 HT ⌘ Read more

⤋ Read More

Webcodecs 音視頻編解碼與封裝技術探索
背景—–在 web 端處理音視頻是一個複雜而又重要的課題,市場上主流的視頻編輯通常採用服務端進行渲染導出,因爲專用的服務器對音視頻的編解碼能力更強,所以服務端渲染導出的速度很不錯;少數編輯器在瀏覽器本地對視頻進行處理,一方面對服務器成本非常友好,另一方面可以不需要註冊等流程,在小型視頻的渲染上用戶體驗更好。但是瀏覽器本地渲染對用戶設備有一定要求,對瀏覽器的兼容性等等也有要求。而經典的在瀏覽器 ⌘ Read more

⤋ Read More

JavaScript 可視化:Promise 執行徹底搞懂
JavaScript 中的 Promise 一開始可能會讓人感到有些難以理解,但是如果我們能夠理解其內部的工作原理,就會發現它們其實是非常易於掌握的。在這篇博客文章中,我們將深入探討 Promise 的一些內部機制,並探索它們是如何使得 JavaScript 能夠執行非阻塞的異步任務。一種創建 Promise 的方式是使用 new Promise 構造函數,它接收一個執行函數,該函數帶有 reso ⌘ Read more

⤋ Read More

使用 GitHub Actions 構建 Golang PGO
今年 2 月,我宣佈 Dolt 版本現已構建爲配置文件引導優化 (pgo) 二進制文件,利用 Golang 1.20 的強大功能將 Dolt 的讀取性能提高 5.3%。在我宣佈這一消息之前,我們的一位常駐 Golang 專家 Zach 試驗並測試了 Golang 的 pgo 功能,並寫下了他在使用 Dolt 構建後觀察到的性能提升,該配置文件首先針對 Dolt 運行我們的 Sysbench 基準測 ⌘ Read more

⤋ Read More

LLM 安全 - 大語言模型應用安全入門
一、背景—-2023 年以來,LLM 變成了相當炙手可熱的話題,以 ChatGPT 爲代表的 LLM 的出現,讓人們看到了無限的可能性。ChatGPT 能寫作,能翻譯,能創作詩歌和故事,甚至能一定程度上做一些高度專業化的工作,比如法律服務和醫療診斷諮詢。然而,正如任何新技術一樣,LLM 也帶來了新的挑戰和問題。我們如何確保它們的安全性,如何防止它們被用於不良目的?這些都是亟待解決的問題。在本文 ⌘ Read more

⤋ Read More

SpringBoot - 事務鉤子函數,打造高效支付系統!
作者:avengerEug 來源:juejin.cn/post/6984574787511123999前言–經過前面對 Spring AOP、事務的總結,我們已經對它們有了一個比較感性的認知了。今天,我繼續安利一個獨門絕技:Spring 事務的鉤子函數。單純的講技術可能比較枯燥乏味。接下來,我將以一個實際的案例來描述 Spring 事務鉤子函數的正確使用姿勢。一、案例背景——拿 ⌘ Read more

⤋ Read More

Template Method 模版方法模式
Intent 意圖———模板方法是一種行爲設計模式,它定義超類中算法的骨架,但允許子類在不改變其結構的情況下覆蓋算法的特定步驟。template-method-headerProblem 問題———-假設您正在創建一個用於分析公司文檔的數據挖掘應用程序。用戶以各種格式(PDF、DOC、CSV)嚮應用程序提供文檔,並嘗試以統一格式從這些文檔中提取有意義的數據。該應用程序的第一 ⌘ Read more

⤋ Read More

如何設計一個安全的系統架構?
如何設計安全的系統?我們總結了 12 條原則供架構師們參考。設計安全的系統非常重要,原因有很多,從保護敏感信息到確保基礎設施的穩定性和可靠性,不一而足。作爲開發人員,我們應該設計和實施這些默認的安全準則。下圖是一份實用的小抄,包含使用場景和關鍵設計要點。01 身份驗證——-設計要點:實施多因素身份驗證 (MFA)、使用強密碼策略並考慮生物識別選項。 使用場景:網絡應用程序的用戶登錄、 ⌘ Read more

⤋ Read More

可視化 - 多人協同技術原理和案例分享
前言–hi,大家好,我是徐小夕,之前和大家分享了很多可視化低代碼的技術實踐,最近也做了一款非常有意思的文檔搭建引擎——Nocode/Doc:也做了一些分享:Nocode/Doc,可視化 + 零代碼打造下一代文件編輯器 爆肝 1000 小時, Dooring 零代碼搭建平臺 3.5 正式上線 接下來和大家分享另一個比較有意思的話題——多人協同技術。文章大綱—-多人協同技術方案探討 ⌘ Read more

⤋ Read More

C 語言字符串處理函數
字符串是一種重要的數據類型,編寫的任何應用程序,只要使用文本數據、或者與用戶進行交互,都離不開對字符串的處理。C 語言提供了一組字符串操作函數,方便開發者對字符串進行操作,函數原型在標準函數庫 string.h 文件內。獲取字符串的長度用於獲取字符串的長度,即字符串包含的有效字符個數(不包含結束符‘\0’),函數原型爲:unsigned int strlen(char s);函數返回字符數組 s ⌘ Read more

⤋ Read More

使用 Go 語言中的 Buffer 實現高性能處理字節和字符串
在 Go 語言標準庫中,bytes包提供了對 byte slice ([]byte) 的便捷操作,其中Buffer是一個實現了io.Reader和io.Writer接口的可變大小的字節緩衝。我們通常使用Buffer來讀寫數據、處理字符串和字節的過程中實現高性能的操作。Buffer 的使用場景————Buffer在以下場景中特別有用:當需要一個字節緩衝時 進行字符串的高效拼接 ⌘ Read more

⤋ Read More

Linux 文件鎖的原理、實現和應用
文件鎖簡介———在多數 unix 系統中,當多個進程 / 線程同時編輯一個文件時,該文件的最後狀態取決於最後一個寫該文件的進程。但對於有些應用程序,如數據庫,各個進程需要保證它正在單獨地寫一個文件,這時就要用到文件鎖。文件鎖(也叫記錄鎖)的作用是,當一個進程讀寫文件的某部分時,其他進程就無法修改同一文件區域。更合適的術語可能是字節範圍鎖,應爲它鎖定的是一個文件中的一個區域(也可以是整個 ⌘ Read more

⤋ Read More

Rust 中 Trait 的關聯類型和自動實現
在這篇文章中,我們將深入瞭解 Rust 中 Trait 的關聯類型和自動實現。我們將使用標準庫中的示例來闡明這些概念,並演示它們在 API 設計中的重要性。Iterator Trait讓我們從探索 Iterator Trait 開始,它是 Rust 標準庫的一個基本組件。Iterator Trait 允許你通過遍歷集合的元素來處理集合。以下是它的基本定義:trait Iterator {    t ⌘ Read more

⤋ Read More

Golang - Jaeger 實現分佈式鏈路追蹤
什麼是分佈式鏈路追蹤(Distributed Tracing?)?分佈式追蹤是軟件開發和性能監控中使用的一種技術,用於跟蹤和分析請求在分佈式系統的各個組件中的流動。在現代軟件應用中,不同的服務和微服務通常一起工作來滿足用戶請求。這些服務可能分佈在多臺服務器、容器或地理位置上。瞭解這些服務之間的交互並識別瓶頸或性能問題可能是具有挑戰性的。不同服務生成的跨度被收集併發送到一個稱爲追蹤系統的集中式存儲庫 ⌘ Read more

⤋ Read More

Golang 異步編程方式和技巧
Golang 基於多線程、協程實現,與生俱來適合異步編程,當我們遇到那種需要批量處理且耗時的操作時,傳統的線性執行就顯得喫力,這時就會想到異步並行處理。下面介紹一些異步編程方式和技巧。作者:zvalhu一、使用方式1.1、最簡單的最常用的方式:使用 go 關鍵詞func main() { go func() {  fmt.Println(“hello world1”) }() go func( ⌘ Read more

⤋ Read More

實例解讀 boost 庫中優秀的網絡庫 asio
一、須知——–開發大型項目,肯定需要使用一些框架,這些框架可以由你自己親自手工實現,也可以直接引用第三方庫。1、自己實現框架優點:程序的所有細節都能非常清楚的掌握。缺點:工作量大、難度高。2、引用第三方庫優點:選擇一個穩定、靠譜的第三方框架,將很大程度降低工作量、提高開發效率,將精力重點放在業務邏輯。缺點:庫本身有功能和性能問題。因此,請儘量使用優秀的第三方庫,避免重複造輪子(自己造的輪 ⌘ Read more

⤋ Read More

Rust 挑戰 - 動手實現 HashMap 1
讓我們在 Rust 中實現一個哈希表數據結構,由於哈希表的效率和通用性,它在數據結構中非常重要。通過從頭開始實現它,我們可以深入瞭解所涉及的底層算法和數據結構。同時還還會提高我們的 Rust 技能。說到算法,我們將實現線性探測開放尋址哈希表。我們將採用自頂向下的方法,從較高級別的抽象開始,然後逐步向下到較低級別的抽象和實現。讓我們從最頂層的抽象開始:API,我們不支持 Rust 標準庫 std:: ⌘ Read more

⤋ Read More

Java 斷言 Assert 使用教程與最佳實踐
2024.04.20 合肥岸上草原 作爲一個 Java 開發者,如果要問你 Java 中有哪些關鍵字,你可能會隨口說出一串,如果問你 Java 有哪些最不常使用的關鍵字,或許你還能說出幾個。但是 assert 關鍵字一定算是其中之一,或者,Java 寫了幾年,還沒有用過 Java 的 assert 關鍵字。這篇文章介紹 Java assert 的用法、最佳實踐、特殊用法以及替代工具。Java A ⌘ Read more

⤋ Read More

ShardingSphere 的分佈式數據庫負載均衡架構
Apache ShardingSphere 是一個分佈式數據庫生態系統, 可將任何數據庫轉換爲分佈式數據庫, 併爲其提供數據分片、彈性擴展、加密等功能。在本文中, 我演示瞭如何基於 ShardingSphere 構建分佈式數據庫負載均衡架構, 並探討了引入負載均衡的影響。架構–ShardingSphere 分佈式數據庫負載均衡架構由兩個產品組成: ShardingSphere-JDBC 和 Sh ⌘ Read more

⤋ Read More

注意:Kafka 的這 6 個場景會丟失消息!
大家好,我是君哥。我們使用 Kafka 的時候,怎樣能保證不丟失消息呢?今天來聊一聊這個話題。首先我們看一下 Kafka 的架構圖,場景一:異步發送——–Producer 異步發送是丟失消息比較多的場景,Kafka 異步發送的代碼如下:ProducerRecordbyte],byte[] record = new ProducerRecordbyte[],byte[;RecordMeta ⌘ Read more

⤋ Read More