說點廢話:
如今RPC框架有很多種,你使用他的時候并不需要了解他的實現方式,甚至當我第一次用RPC框架的時候我連TCP和HTTP都分不清楚。但用了就得知道怎么回事,還是來了解一下RPC框架的原理是什么樣的,最好是去自己實現一下。
那么最開始的思路是這樣:RPC可以基于TCP、HTTP、UDP,基于TCP是通過socket鏈接進行傳輸,通過傳輸定義的方法名和類型,再在client端進行動態代理(golang是通過反射[1])去調用相關方法。
https://github.com/SmarkSeven/socket
大佬寫的很好,可以去看一下。
對于HTTP也有不一樣的好處,如鑒權,代理,和普及的廣泛性,
https://blog.csdn.net/hengyunabc/article/details/81120904
這邊是一篇對于gRPC為什么基于HTTP2的思考
UDP…
總體來說各有利弊,那么對于自己實現來說還是先從TCP來考慮。
先說對于每一個服務端的邏輯
node/main.go
func main() {
//1.注冊service
server := server.NewRPCService(server.RPCServiceMap{"stest": ""})
//2.加密方式
//3.服務初始化
server.InitRPCServer(":8081")
//4.啟動服務
server.Run()
//5.長連接注冊
//6.查找注冊鏈接的節點,并進行通訊
}