一張圖,一段代碼解釋RPC是怎么回事

RPC的代碼邏輯流程服務端服務端定義好RPC可以調用的函數A服務端注冊函數A(作用為聲明客戶端可調用)服務端完成可根據字符值“A”來調用函數A的邏輯代碼(反射機制)服務端有函數A正常執行所需的數據參數A(xx,yy),假如xx是一個list,yy是一個map,有參數類型即可運行網絡服務,監聽端口,接收請求———–客戶端客戶端定義好函數A需要的參數xx(list),yy(map)客戶端發起網絡請求,傳輸函數A的字符串[...]

繼續閱讀 ?

npx 是什么

最近我在更新npm5.2.0的時候發現會買一送一,自動安裝了npx。一個月后npx就是前端必會的知識,相信我;)npx是什么根據zkat/npx的描述,npx會幫你執行依賴包里的二進制文件。舉例來說,之前我們可能會寫這樣的命令:npmi-Dwebpack./node_modules/.bin/webpack-v如果你對bash比較熟,可能會寫成這樣npmi-Dwebpacknpmbin/webpack-v有了npx,你只需要這樣npmi-Dwebpacknpxwebpack-v[...]

繼續閱讀 ?

與碎片交戰:《深度工作》摘記

與碎片交戰:《深度工作》摘記-二向箔https://blog.dingkewz.com/post/books/deep_work/簡單的說,少看手機,多看書。片段一:我等采石之人當心懷大教堂之愿景。……在一個項目的整體結構之內,總有空間展示個性和匠心……百年之后,我們的技藝或許如今日的土建工程看待中世紀大教堂建造者使用的技法一樣陳舊,但是我們的匠心卻會得到尊重。片段二:極樂機極樂機(EudaimoniaMachine),是一座建筑,其目的在于,創造一種環境,讓使用這身處其中時可以達到深度人體繁榮狀態,即實現個人能力極限的成果。<[...]

繼續閱讀 ?

BSON與JSON的區別

BSON是由10gen開發的一個數據格式,目前主要用于MongoDB中,是MongoDB的數據存儲格式。BSON基于JSON格式,選擇JSON進行改造的原因主要是JSON的通用性及JSON的schemaless的特性。BSON主要會實現以下三點目標:1.更快的遍歷速度對JSON格式來說,太大的JSON結構會導致數據遍歷非常慢。在JSON中,要跳過一個文檔進行數據讀取,需要對此文檔進行掃描才行,需要進行麻煩的數據結構匹配,比如括號的匹配,而BSON對JSON的一大改進就是,它會將JSON的每一個元素的長度存在元素的頭部,這樣你只需要讀取到元素長度就能直接seek到指定的點上進行讀取了。2.操作更簡易對JSON來說,數據存儲是無類型的,比如你要修改基本一個值,從9到10,由于從一個字符變成了兩個,所以可能其后面的所有內容都需要往[...]

繼續閱讀 ?

理解 Go Context 機制

原文地址http://lanlingzi.cn/post/technical/2016/0802_go_context/1什么是Context最近在公司分析gRPC源碼,proto文件生成的代碼,接口函數第一個參數統一是ctxcontext.Context接口,公司不少同事都不了解這樣設計的出發點是什么,其實我也不了解其背后的原理。今天趁著妮妲臺風妹子正面登陸深圳,全市停工、停課、停業,在家休息找了一些資料研究把玩一把。Context通常被譯[...]

繼續閱讀 ?

解釋pykafka參數最詳細的記錄

Kafka  1.簡介    Kafka是一種分布式的、分區的、多副本的基于發布/訂閱的消息系統。它是通過zookeeper進行協調,常見可以用于web/nginx日志、訪問日志、消息服務等。主要應用場景為:日志收集系統和消息系統。    Kafka的主要設計目標如下:      1.以時間復雜度為O(1)的方式提供持久化能力,即使對TB級別以上的數據也能保證常數時間的訪問性能。      2.高吞吐率,即使在十分廉價的機器上也能實現單機支持每秒100K條消息的傳輸。      3.支持KafkaServer(即Kafka集群的服務器)間的消息分區,及分布式消費,同時保證每個partition內的消息順[...]

繼續閱讀 ?

golang的log包一般的使用范例

packagemainimport("log""os""io/ioutil""fmt")funcmain(){f,err:=os.OpenFile("logfile.log",os.O_RDWR|os.O_CREATE|os.O_APPEND,0666)iferr!=nil{log.Fatalf("fileopenerror:%v",err)}deferf.Close()//log.SetOutput(f)//log.Fatal("fataltest")//F[...]

繼續閱讀 ?

go語言int類型轉化成string類型的方式

go語言中int類型和string類型都是屬于基本數據類型兩種類型的轉化都非常簡單下面為大家提供兩種int類型轉化成string類型的方法!go語言的類型轉化都在strconvpackage里面,詳情請參考:http://golang.org/pkg/strconv下面附上轉化代碼:packagemainimport(“fmt”“strconv”)variint=10funcmain(){//通過Itoa方[...]

繼續閱讀 ?

“-Xmx1024m -Xms1024m -Xmn512m -Xss256k”——Java運行參數(轉)

JVM的堆的內存,是通過下面面兩個參數控制的-Xms最小堆的大小,也就是當你的虛擬機啟動后,就會分配這么大的堆內存給你-Xmx是最大堆的大小當最小堆占滿后,會嘗試進行GC,如果GC之后還不能得到足夠的內存(GC未必會收集到所有當前可用內存),分配新的對象,那么就會擴展堆,如果-Xmx設置的太小,擴展堆就會失敗,導致OutOfMemoryError錯誤提示。實際上,細節不止于此,堆還會被分成幾個不同的區域,分別應用不同的GC算法google到了一篇博文,貼出來,漫漫看:http://unixboy.javaeye.com/blog/174173JV[...]

繼續閱讀 ?

go 等待一組協程結束的實現方式

go提供了sync包和channel來解決協程同步和通訊。方式1:sync.WaitGroup是等待一組協程結束,sync.WaitGroup只有3個方法,Add()添加一個計數,Done()減去一個計數,Wait()阻塞直到所有任務完成。packagemainimport("fmt""sync""time")varwgsync.WaitGroup//定義一個同步等待的組functask(iint){fmt.Println("task...",i)//耗時操作任務,網絡請求,讀取文件time.Sleep(time.Seco[...]

繼續閱讀 ?

toto足球指数