博客 / 列表

amc - 騰訊 tRPC-Go 教學——(1)搭建服務

2023 年底騰訊統一的 RPC 框架 tRPC 正式開源。遍觀全網,似乎大部份是對 tRPC 概念上的宣傳、架構上的設計,而如何開發、如何部署的文章鳳毛麟角。於是筆者小試牛刀撰此文,或許會成為一系列,希望能拋磚引玉。 系列文章 騰訊 tRPC-Go 教學——(1)搭建服務 騰訊 tRPC-Go 教學——(2)trpc HTTP 能力 騰訊 tRPC-Go 教學——(3)微服務間調用 騰

grpc , 騰訊 , HTTP , rpc , go

amc - 騰訊 tRPC-Go 教學——(2)trpc HTTP 能力

上一篇文章 中我們快速搭建了一個 http API 服務,並且我們可以看到,對外提供了 URL query 和 application/json 兩種服務模式。那麼實際上,我們到底實現了什麼、並且能夠做些什麼?讀者可能還是沒有直觀的感受,因此必要先來簡單 review 一下。就讓我們先放下敲代碼的小手,一起看看剛剛寫出來的都是些什麼玩意兒吧。 系列文章 騰訊 tRPC-Go 教學——(1)搭建

騰訊 , HTTP , rpc , go

amc - 騰訊 tRPC-Go 教學——(3)微服務間調用

前兩篇文章(1、2),我構建了一個簡單的 HTTP 服務。 HTTP 服務是前後端分離架構中,後端最靠近前端的業務服務。不過純後台 RPC 之間,出於效率、性能、韻味等等考慮,HTTP 不是我們的首選。本文我們就來看看騰訊是怎麼使用 tRPG-Go 構建後台微服務集羣的。 本文我們將開始涉及 tRPC 的核心關鍵點之一: tRPC 服務之間如何互相調用 系列文章 騰訊 tRPC-Go 教

騰訊 , HTTP , rpc , go

amc - 騰訊 tRPC-Go 教學——(4)tRPC 組件生態和使用

之前我花了三篇文章來介紹 tRPC 怎麼用。而 tRPC 給開發者帶來的便利, 在整整三篇文章中,我也只是介紹了它可以方便服務在 HTTP、trpc、grpc 三種協議之間靈活切換。誠然, tRPC 作為能夠統一騰訊內開發框架的一個生態級產品,它的能力顯然不止這些。這一篇文章,咱們來一起初窺 tRPC 的周邊生態有哪些, 以及其中的第三方組件使用方法。 系列文章 騰訊 tRPC-Go 教學—

騰訊 , HTTP , rpc , go

amc - 騰訊 tRPC-Go 教學——(5)filter、context 和日誌組件

本文咱們來介紹一下在 tRPC 中的 filter 機制、context 用法,以及在相關機制上可以實現的 tracing log 能力。 説實話,這一部份是我個人最不喜歡的 tRPC 的實現模式,不過這不妨礙咱們使用它——只要把它封裝成讓人更為舒服的模式也未嘗不可。 系列文章 騰訊 tRPC-Go 教學——(1)搭建服務 騰訊 tRPC-Go 教學——(2)trpc HTTP 能力 騰

騰訊 , HTTP , rpc , go

amc - 騰訊 tRPC-Go 教學——(6)服務發現

距離上一篇文章居然已經過去兩個月了,畢竟苦逼打工人忙得一點空都沒有…… 本文我們來講一講對於微服務架構來説,最重要的一個點了:服務發現及其對應的名字服務功能。 系列文章 騰訊 tRPC-Go 教學——(1)搭建服務 騰訊 tRPC-Go 教學——(2)trpc HTTP 能力 騰訊 tRPC-Go 教學——(3)微服務間調用 騰訊 tRPC-Go 教學——(4)tRPC 組件生態和使用

騰訊 , HTTP , rpc , go , 後端

amc - 騰訊 tRPC-Go 教學——(7)服務配置和指標上報

系列文章 騰訊 tRPC-Go 教學——(1)搭建服務 騰訊 tRPC-Go 教學——(2)trpc HTTP 能力 騰訊 tRPC-Go 教學——(3)微服務間調用 騰訊 tRPC-Go 教學——(4)tRPC 組件生態和使用 騰訊 tRPC-Go 教學——(5)filter、context 和日誌組件 騰訊 tRPC-Go 教學——(6)服務發現 騰訊 tRPC-Go 教學——

騰訊 , HTTP , rpc , go , 後端

amc - 騰訊 tRPC-Go 教學——(8)通過泛 HTTP 能力實現和觀測 MCP 服務

最近 MCP 大火,其實 tRPC 也可以提供泛 HTTP 接入的能力。內網其實已經對 mcp-go 進行了封裝並支持,但是相關代碼還沒有同步到開源版上。 不過實際上,在 tRPC 框架也是可以接入各種泛 HTTP 能力的。本文就以 mcp-go 和 tRPC 結合作為引子,也介紹一下在 Cursor 等 AI 生產力工具中如何開發和使用 MCP 能力吧。 系列文章 騰訊 tRPC-Go 教學

llm , 騰訊 , cursor , rpc , go

amc - AI 寫文章系列——Ubuntu 24.04 pipx install 解決 ModuleNotFoundError 問題

概述 自從轉 Go 之後,好久沒寫 Python 了。最近在 Ubuntu 24.04 中使用 pipx 安裝了一個工具之後,運行報依賴錯誤。把上下文餵給 DeepSeek 之後,最終解決了問題。 我讓 DeepSeek 回顧問答的上下文,整理了一篇文章出來——不過相比上一篇,這次我人工介入修改的內容多得多。 問題提出 最近需要扣一個圖,把我的證件照背景顏色換一換。搜了一下,在 Github 上

llm , python3.x , php , deepseek , Python

amc - 每天學點 Go 規範 - 代碼不能寫太寬,那麼函數該怎麼換行呢?

公司內部的 Go 代碼規範中限制了每一行代碼的寬度。為了滿足這個規範,那些太寬的代碼行就不可避免地需要換行。換行不是普通的回車就行,如何在換行的同時,保持代碼優秀的可讀性,筆者根據日常 code review 中看到的各種模式,提出一些建議。 上一篇文章:每天學點 Go 規範 - 函數傳參時,struct 應該傳值還是引用 規範和原因 公司的 Go 規範統一要求每一行 Go 代碼不能超過 1

規範化 , 代碼規範 , go

amc - 逆微服務潮流?基於騰訊 tRPC-Go 單體化改造怎麼節省上萬核 CPU

微服務一直以來是服務治理的基本盤之一,落地到雲原生上,往往是每個 K8s pods 部署一個服務,獨立迭代、獨立運維。 但是在快速部署的時候,有時候,我們可能需要一些宏服務的優勢。有沒有一種方法,能夠 “既要又要” 呢?本文基於 tRPC-Go 服務,提出並最終實踐了一種經驗證可行的方法。 本文原文發佈在騰訊內網,隨着騰訊 tRPC 框架 正式開源, 筆者決定將敏感信息脱敏後發佈至外網,也助力 t

grpc , 微服務 , rpc , challenge , go

amc - 三分鐘, 讓你學會 Go 泛型

Go 自從 1.18 版本正式推出泛型之後至今也超過半年了,但是筆者發現在實際業務開發中,大家沒有如想象中那麼廣泛地使用泛型。於是決定簡單撰一文,儘可能簡單地講解 Go 的泛型代碼的寫法。 Go 泛型的作用 Go 語言在推出之後,要求支持泛型的呼聲就一直不絕於耳。Go 在 1.17 版實驗性地推出,並且在 1.18 正式發佈。泛型要解決的問題以及適用的場景是所謂的 ”DRY“(Don't Repe

泛型 , go

amc - JSON 這麼可愛,讓我們用千字短文吃透它吧!

JSON,一個偉大的協議,前端工程師的卓越發明!相信 99% 的程序員都認識 JSON,它作為前後端交互的熱門協議,因其易理解、簡單、靈活和超強的可讀性,得到了互聯網的廣泛歡迎,甚至很多微服務之間的傳輸協議中也得到應用。 但是筆者在開發一個 Go 的 JSON 編解碼庫的過程中,除了自己趟過各種奇奇怪怪的問題之外,也認識到廣大程序員們對 JSON 各種奇奇怪怪的用法和使用姿勢。在處理解決這些問題之

utf-8 , JAVA , unicode , go , Json

amc - Unicode 顏文字(emoji)格式和 Go 代碼處理

前幾天時間測試同學在我們的前端輸入了顏文字,之後軟件就出 bug 了。借修 bug 機會我花了點時間學習了一下 Unicode 顏文字(emoji)的一些知識。本文記錄我對 emoji 的一些認識,並且簡單介紹一下我為此而做的一個 Go 語言顏文字提取庫的用法。 Unicode 背景簡介 我們大家都知道,為了標準化全世界所有文字的編碼,誕生了 unicode。最早 unicode 的設計者們採用的

emoji , unicode , go