堅信科學,分享技術

2018全新版本,未來在blog.54chen.com更新博客!

>>>嘗試更加利于閱讀的2014版科學院,以后都在新版上寫。

nz是地球上最棒的地方的59個理由

May 7, 2019 · 1 min read

目標管理和OKR實施

Apr 4, 2019 · 1 min read

54chen的2018總結和2019預測

Apr 4, 2019 · 1 min read

微服務架構的十個劣勢

Jun 4, 2018 · 1 min read

13件關于GDPR的事

May 31, 2018 · 1 min read

關于現代網絡負載均衡和代理

May 23, 2018 · 2 min read

Envoy線程模型

May 22, 2018 · 1 min read

小米架構技術峰會在北京成功舉辦 | 5月14日

May 15, 2018 · 1 min read

靠寫代碼學習什么是區塊鏈

Jan 18, 2018 · 6 min read

程序員鋼琴入門教程

Jan 10, 2018 · 1 min read
Older Posts →

54chen的2017總結和2018預測

北京生娃指北-采購篇

How to run GUI app in docker on osx

北京生娃指北

How to install caffe 1.0 with Anaconda python3 on centos7

優化器、激活函數、評價函數

利用深度學習解決直播支付風控

54chen的2016總結和2017預測

中國、印度、印尼在線支付接入、風控和靠譜度對比

小米大樹part3:產品進度之痛

disruptor thrift server連接參數與rps數值影響記錄

基礎環境 rmbp 8G MEM Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz 四核 八線程 oracle jdk 1.7.0_45 原理 如上圖,是類似tomcat的nio實現過程,不過將queue換成了高性能的disruptor,可能會得到更好的性能。可調整參數為numAcceptors,numSelectors,numWorkersPerSelector三個值。 測試的代碼位置在 https://github.com/54chen/disruptor_thrift_server 項目中的BenchmarkTest同時啟動一個server,同時對其進行壓測。 AbstractDisruptorTest.Service類中實現了server的邏輯,里面實際上是一個加減乘除的簡單方法,故意加了300ms的sleep以盡可能模擬真實的消費時間。 BenchmarkTest類中實現了client的壓力邏輯,固定了200個線程同時死循環地進行訪問,同時進行計數統計rps。 調整記錄 1.A(cceptors):4 S(electors):2 W(orkersPerSelector):2 處理接入的線程數:4 處理調用邏輯的線程數:2 推薦是cpu的核數以上 每個處理邏輯上的worker數量:2 結果: Rate: 16 req/s Rate: 12 req/s Rate: 12 req/s 無reset等異常。 2.A:40 S:2 W:2 結果: Rate: 16 req/s Rate: 12 req/s Rate: 12 req/

Continue reading

Posted in java | Tagged , | 2 Comments

Cassandra的thrift用法學習手記

__English Version__The notes about the usage of Thrift in Cassandra Cassandra在client訪問server cluster的時候使用了thrift,在cluster node間的通訊,依舊是自己實現的二進制協議。 先決條件 thrift 0.9.1 mac libthrift-0.9.1 Cassandra 2.0.3 本文所涉及的代碼:https://github.com/54chen/cassandra-thrift 看代碼 thrift的定義:server的邏輯實現代碼叫做Processor,創建的等待socket代碼里叫做Transport,最后啟動的進程叫做Server,大致就會有要啟動一個thrift server,需要有一個socket(Transport)和一堆邏輯(Processor)。 這里有一篇2011年寫的thrift入門手記:http://www.oomroa.icu/java-ee/thrift-quick-start.html 示例代碼中以TNonBlockingServer來舉例。TNonBlockingServer是采用libevent lib實現的一種thrift內置的server類型,理論上是最快的一種。 CustomTNonBlockingServer Cassandra并沒有默認使用這種類型的server,默認的是基于TServerTransport連接完成的CustomTThreadPoolServer(自行實現了連接池)。 以示例代碼為例: Cassa

Continue reading

Posted in java | Tagged , | 1 Comment

BLUNO試用手記

準備工作 rmbp BLUNO ×1 Android 4.3+ Devices with BLE or IOS 7.0+ Devices Accessory Shield with Arduino ×1 Micro USB cable x1 http://freeware.the-meiers.org 下載安裝簡化串口調節工具CoolTerm。 通過AT指令配置BLUNO的藍牙屬性 1.把BLUNO上的AT開關,從NORMAL拔到AT 2.連接BLUNO到電腦,打開CoolTerm 3.CoolTerm -> Options -> baud rate -> 115200 -> ok 4. Connect 5. Connection -> send String 6.彈出來的框框可以輸入AT指令了 注意:Port要選擇USBmodem***,因為電腦有延遲,如果沒出來,可以拔了重新插入micro usb線,然后點下面的Re-scan。 7.(注意每個指令末尾要加回車)send之后,后面如果提示OK,表示發送成功,其他的提示或者沒有提示,回到3。 常見AT指令集 AT+NAME=? - 你叫啥名字 AT+NAME=54CHEN_110005 - 把你的名字改為54CHEN_110005 AT+MAC=? - 你的mac地址是多少 AT+RESTART -去死吧 AT+CONN_INTERVAL=? -多少秒搞一次嘗試連接? 設置好BLUNO Input : AT+ROLE=ROLE_PERIPHERAL Answer(Return):OK // 角色調整為周邊設備,

Continue reading

Posted in linux | Tagged | Leave a comment

java 1.6.0_38-b05 vm 20.13-b02優化手記

基礎: 業務代碼 rose框架(底層是spring) resin4 java 1.6.0_38-b05 centos 初始配置: 只修改了以下三個值 -Xmx5000M // max的heap的大小。 -Xms5000M // min的heap的大小,就是一初始給的大小,不夠先GC,還不夠再加,直到max。 -Xmn2000M //young區的大小,一般來講:heap=Y+O,P是額外的值。Sun推薦Y=heap*(3/8)。 gc情況解讀: # jstat -gcutil 20538 1000 100 S0 S1 E O P YGC YGCT FGC FGCT GCT 0.00 51.96 62.53 73.42 99.93 35830 1554.778 185 1089.488 2644.266 0.00 51.96 69.83 73.42 99.93 35830 1554.778 185 1089.488 2644.266 0.00 51.96 77.75 73.42 99.93 35830 1554.778 185 1089.488 2644.266 0.00 51.96 85.79 73.42 99.93 35830 1554.778 185 1089.488 2644.266 0.00 51.96 92.35 73.42 99.93 35830 1554.778 185 1089.488 2644.266 S0\S

Continue reading

Posted in java | Tagged | Leave a comment

《移動互聯網技術挑戰》-ssdc

以下是上周末在蘇州參加的活動使用的slide,http://softwaresuzhou.org。 看不到的同學請猛擊這里 ssdc-移動互聯網技術挑戰

Continue reading

Posted in 架構研究 | Tagged | Leave a comment

百人共用企業maven私服nexus遷移搭建手記

三年前,小米的第一個nexus(版本1.8.0)在一臺dell的辦公機上安裝完成。域名為http://www.a.com。 三年后,a.com時不時已經慢得不行了。特別一到周一,大家都在update snapshot的時候,完全陷入一種無盡的痛苦中。 然后弄來了一臺專業server做這事情,域名為http://www.b.com。版本到官網一看,已經2.64了。日新月異! 看升級文檔頓時沒了興趣考慮升級,全新從零安裝。 最后的辦法是,在新機器上安裝新的,把老的倉庫挑出來設置為proxy類型。然后啟用了ldap,同時保障大家都有deploy權限的同時,最大保障大家的密碼不明文出現,同時通過代理ngx來限制最大上傳的包,同時規定了snapshot的使用規則,防止在線上使用snapshot。以下是詳細記錄: 一、下載安裝nexus和配置nginx 找個磁盤分區不小的: wget http://sxrelease.n.miliao.com/nexus-2.6.4-02-bundle.zip unzip nexus-2.6.4-02-bundle.zip bin/nexus start 然后就能用了。http://www.a.com:8081已經啟動了。當然了,如果還不能訪問,應該是iptables在搗亂,試一下iptables -F。 [nginx安裝忽略] 然后再在此機器上配置一個nginx代理到8081端口上。只舉是為了:1.分擔jetty的訪問壓力,畢竟公司人已經越來越多了。2.好做后續更多的事情。 server { listen ? ? ? 80; server_name

Continue reading

Posted in 架構研究 | Tagged | Leave a comment

移動互聯網系統架構十大陷阱

過去的三年,54chen一直奮斗在中國移動互聯網一線,歷經各種坑爹的情況。以下特做記錄。 Top 1.時不我待 連通性 cmwap cmnet這樣的詞語以后應該都會消失在人世間。三年前,經常性地有移不動聯不通手機連不上服務器機房的情況。兩年前,這種情況要好了一些。一年前,改善很多。現在還存在。相信未來會越來越好,時代在召喚!解法,花錢找有“背景”的機房。 Top 2.生不逢時 HTML5 在去年的網絡情況下,HTML5依舊不適合用來做優秀的app。前幾年的時候,網速各種爛的情況下,2G下的html5應用基本上完全不能用。現在好一點,開始有閑人把html5全部封裝好native的調用,使其只做view的顯示部分,但是,性能也是個大問題。當然了,同樣地,相信未來會越來越好,同樣是時代在召喚!解法,過幾年再用。 Top 3.環境惡劣 DNS DNS解析也有失敗的情況下,app做得再漂亮,請求也不可達。IP要比域名靠譜一些,卻有別的問題。解法就是在客戶端多留下點域名和ip,一個不能用換下一個。 Top 4.車匪路霸 http攔截 天朝運營商,可以干得出你想不到的事情。各種小廣告帖你家防盜門上。所以你最好還是在header里聲明好了:畜生,這個不是html,這是json,不要加廣告! Top 5.五花八門 app添加按鈕一定要克制 特別是android app,完全沒有限制,或者統一標準,什么樣的App都有,做一個大氣的App,最重要的一點,看看能不能打開就是主要功能,手指點一下就能到重要功能。 Top 6.逆流而上 完全不要在傳統web上有所期待 除了新浪微博、QQ空間這種從傳統

Continue reading

Posted in 架構研究 | Tagged , | Leave a comment

又拍云cdn試用體驗

十一之前,又拍云存儲(upyun.com)市場部的謝靜同學郵件我,讓我試用又拍云的功能。之前在infoq或者是之類的技術講座上有看到過又拍云的報道和技術架構講解,印象還是不錯的,本著支持創業提升期企業的態度,特寫此文寫下全部試用感受。 用法 我的用法比較簡單,因為diahosting給我提供的vps在國外,流量是個大問題,所以寫博客時,基本都不上傳大圖片。遇到要上傳的圖片,之前基本都是兩個地方,一是淘寶(嘿嘿,提醒淘寶的兄弟不要把那個上傳的口關了哈,淘寶的cdn崗崗的!),二是新浪微博。 上述兩個老辦法的壞處:淘寶的話,每次上傳打開步驟都老麻煩了,又是密碼又是選上架之類的。微博呢,又老有那個水印。二者圖片質量都不行,老是壓縮得不行了。 申請了又拍云存儲之后,直接使用它的ftp功能,無壓縮,cdn速度也崗崗的。http://www.oomroa.icu/architecture/how-to-document-code.html 此文中第一個圖即為又拍云提供。 使用記錄(mac下純ftp命令記錄): localhost:~ chenzhen$ mkdir -p 54chen-pic/1008 localhost:~ chenzhen$ cd 54chen-pic/1008 localhost:1008 chenzhen$ cp ~/Downloads/wallpaper_1282030786.jpg . localhost:1008 chenzhen$ ls wallpaper_1282030786.jpg localhost:1008 chenzhen$ ftp v2.ft

Continue reading

Posted in WEB相關 | Tagged | 2 Comments

如何寫一手好文檔(好代碼)?

好久沒見。 中秋去了一趟草原,放空了大腦,回來靈感突發,對文檔、代碼寫法這方面的感悟多了些,特記錄一下。 一、什么樣的文檔(代碼)叫做“好”? 任何一篇文檔,目標都是給別人看懂。 任何一段代碼,首先也都是別人能看爽了才是目標。 以上述“世界觀”為準,很容易得到文檔(代碼)好不好的結論。 以80后小時候讀的連環畫為例,它就是優秀文檔的典范。 像連環畫這樣優秀的文檔,主要具備以下幾個特點: 1.長篇被分成小節。 2.小節中關鍵頁有圖。 3.描述言簡意賅。 4.頁數固定不多。 典型地,如果在寫文檔(代碼)時,能夠做到上述四點,都是優秀的。 比如: PHP文檔造福了多少PHP程序員,讓PHP這門語言流芳百世、追隨者眾多。在PHP文檔中,每一小節都進行了特別歸類; 在關鍵位置還有不少例子代碼; 每個方法的作用也是言簡意賅; 每一小節的數量都不是很多。 再來看nginx代碼,完全是一個大型服務端軟件構建的一個范例。只看src目錄中的源碼,從一開始就分成了core、event、http、mail、misc、os,這樣相當清晰明了的層級結構和定義,讓后續很多事情方便擴展; 每一部分的代碼都能夠讓讀者一眼看明白是做什么的; 每個細節的方法長度也不是特別長; 每個分類里的內容也相對是固定的,后續的改進都是在plugin上比較多。 二、幾種實際的土辦法提高文檔(代碼)能力 在上述建立好了對好文檔(好代碼)的世界觀之后,下面再分享一些總結出來的套路,如果前面世界觀沒理解透,只把這里的土辦法理解了,也能寫出來容易讀的文檔(代碼)。 辦法一、寫文檔先寫段落標題,寫代碼先建分類目錄(java叫做pa

Continue reading

Posted in 架構研究 | Tagged | Leave a comment

記最近的事情-有關小米

最近小米好事連連,許多事情大家都知道了,這里只是純粹的以個人視角把遇到的一些照片整理出來。按常規,只代表個人觀點,與所就職公司沒有半毛錢關系。還有很重要的一點,沒有F碼! 以下,按照記敘文的過程進行一一記錄。 2013年08月30日,據紐約時報當天的報道,“智能手機制造商小米公司在周四宣布,該公司已從谷歌公司(Google)挖來一名高管,出任拓展其國際業務計劃的帶頭人,這是中國手機行業出口雄心勃勃的一個跡象”。出處見:http://cn.nytimes.com/technology/20130830/c30xiaomi/ --你有可能打不開,別問原因,可以問候方校長。 沒錯,Hugo Barra,前Google全球副總裁,android的老大,加入了小米。以下是當天虎哥來我米報道的情形: 請自行忽略穿工作服的保安哥,他老是讓我出示工牌。 2013年09月04日,HBase的頭號帶頭大哥Michael Stack來到小米,給MITC進行了一場為時2小時的技術交流活動。以下是海報, 然后進入到現場: 當然了,他此行的原因有一部分是想來看一看這家為國際開源項目做出貢獻的中國公司是什么樣的,這主要是依靠我們優秀的小伙伴們。 還有這一張照片要附一下,多少是個心意: 2013年09月05日,秋了,還沒有樹的葉子飄然而落,沒有凄涼地在空中打著旋兒。天空不是灰色的,空氣有一點冷冷的。偶爾飛過一只麻雀,傳來的也是愉快的叫聲,仿佛知道當天要在國家會議中心發生什么…… 我相信,我所知道所有的細節你都知道,直接上圖算了。 場子的外面,才到的時候,沒門票進不去的。 米聊的易拉寶。 最后

Continue reading

Posted in 生活備份 | Tagged | 1 Comment
Page 1 of 5112345102030...Last »
嘗試與54chen交流:
Twitter sina微博V GMAIL GitHub

 

54chen,真名:陳臻。
2010年加入小米科技。
關鍵詞:
rose,riak,rabbitmq,zookeeper,thrift,nuclear,
senseidb,hadoop,hive,dynamo,
php extension,nginx module

天下風云出我輩,一入江湖歲月催.
鴻圖霸業談笑中,不勝人生一場醉.
提劍跨騎揮鬼域,白骨如山鳥驚飛.
塵世如潮人如水,只嘆江湖幾人回.

過去的經歷:
人人網分布式研究人員(nuclear系統開發者)
雅虎、淘寶搜索開發工程師
金山詞霸開發工程師
曾用代號有:cc0cc、零蛋。

SEARCH

接受捐贈

Comments

  • tangzuopeng: ErrorHandler無法捕捉到RuntimeExcepition類...
  • mr_雷: 陳老師好,for循環插入SQL可以給一個...
  • Weapon Lin: 陳老師好,項目使用rose作為web層框架...
  • TerryCat: 前輩好!上傳通過MultipartFile,那么下...
  • chenjinbo: 請問大神,spring事務目前支持了...
  • 李東: 請問你的問題解決了嗎?我也是這個...
  • 袁鵬: 同求,事物該如何處理,快速的互聯網...
  • 別說我out: 請問這個問題在tomcat7上解決了嗎...
  • xiongxu: 我的項目controllers下有子包,paoding-ros...
  • xuchen: paoding rose 支持POST請求的重定向么?...

2018香港马会资枓大全146 2019年黄大仙一肖必中特