golang rabbitmq實踐(囉嗦)

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

 

1:背景簡介

  我是一個.net一線開發,今年6月份離開帝都來到魔都,後入職於莫江互連網線上教育公司。現剛剛轉正,在這短短的三個月的時間,莫江給我的是職業路上顛覆性變化。

   .net技術迷 => nodejs/java/golang

  在此之前,我認為我會在.net平台堅定不移的走下,因為我是如此的喜歡C#語言,認為它是那麼優美簡介,vs ide號稱宇宙神器,coding如此happy,but 當我們每周技術討論例會上,我才真正的認識到我自己原來就是井底之蛙

2:C#和其他我所接觸的語言對比

  網上關於C#和java的大戰從未停止,我也經常想起大約6年前我上大學的時候,某些無良的培訓機構去我們系招人的時候,大量的貶低C#的時候,我在據理力爭。然而時間在變,以我這3月多月接觸其他語言的同時,也在反思,c#/.net真的有如此之好嗎?

  以下僅代表個人觀點,如有不對歡迎來噴。

  C#的優勢: 神一般的IDE,大量的文法糖,強型別語言支援var聲明,良好的錯誤輸出和debug,天生的windows平台支援,相容性良好的第三方或微軟架構,代碼提示、跳轉、可閱讀...

  劣勢:開源架構太少,跨平台費勁,文法冗餘,依賴.net framework,執行效率堪憂

3:淺談java

  java語言本身和C#語言80%類型,學起來很輕鬆,可真的去寫java代碼的時候,就會感覺完全從天堂掉進了地獄。

  ide難用,不管是eclipse 還是 IntelliJ IDEA ,太痛苦了

  代碼提示功能能用,但不強大,調試功能一般,寫屬性不習慣,沒有C#文法糖,依賴jvm

  這些都不足以讓人感覺在地獄行走,最難的是。。。。 使用架構。 由於是自學,沒人教,視頻、貼吧、blog 跟著別人做依然搞不通,架構太多,相容性卻不怎麼好。一度懷疑自己懷疑人生

  可是雖然java的架構我不會配置,但我不會否定,java就是那麼牛逼,只是我笨,不會用,如山如海的開源項目,讓任何一個.net程式員目瞪口呆。

4:再試nodejs

  nodejs呢也是在我們架構會上才知道的(以前的知識面好淺薄。。。),不看不知道,一看嚇一跳啊,沒想到JavaScript語言也能做後端了,還可以達到這麼高的並發。ok  then  學習之~

  nodejs學習簡單(web開發人員都會把~),配置簡單(npm),依賴少,架構非常非常多,編寫web伺服器簡單,執行效率不錯,高並發處理很好...

  最直觀的,搞一個web網站,秒刷有木有,按著F5不放刷刷的有木有。好吧原諒我沒見過世面,和asp.net 對比一下,覺得弱爆了有木有,不需要經過asp.net管道,不需要asp.net頁面生命週期,不需要mvc控制流程程。。。不需要,所有都自己寫,想怎麼寫怎麼寫

  非同步回調,單線程處理,很吊很新穎。缺點也很明顯,同步執行困難,代碼檢錯麻煩,調試不友好,單線程,做cpu運算可能會造成非同步無法回調...

5:go  go

  學習golang語言是如此的痛苦,類C的文法,不完全的物件導向,每次要檢查的錯誤機制,指標(進階語言裡面沒有用過),環境配置死麻煩,初學很難理解文法。。。

  我曾發過一句牢騷,寫半個小時的golang簡直比寫一上午的C#都累

  然而並不能打消我的激情,因為它的優勢太明顯了, 比C文法簡單卻有堪比C的效能,去除了物件導向複雜的文法和限制,使用指標可以根據自己需要操作記憶體或引用,優美的協程,不需要鎖...

 

6:再囉嗦

  寫了這麼多,或許有很多地方是不對的是片面的,我也會慢慢完善自己

  

7;為什麼是rabbitmq

  最近準備開發一個訊息型項目,預計的是一天的訊息量達到百萬層級,近即時的到達率,最後確定下來確定為採用rabbitmq做訊息中轉,確保api到sql層資料並發量控制以及防丟失。 本來說打算用windows server來做,可是呢windows server有個缺陷卻無法處理,就是它會假死,而且很難去監控,so 我想能不能這層使用golang 來寫服務。 結果技術評審下來,因有較大的風險,暫時不採用,可以做一個輔助進程來跑。 我也希望我手裡的現有項目能使用go來處理,比如apppush

  這些項目都是用的rabbitmq做訊息分發,之前的分發用戶端是用C#寫的,那個人已經離職,所以我決定用go寫一個

 

8:時間

  因沒有用過rabbitmq,也不知道會有什麼的結果,花多少精力。因非工作內容,也不會佔用工作的時間,so 完成時間也是不確定的。部落格園我應該是一周回更新一次或兩次進度,僅做為此次行程的記錄

9:目標

  我希望我寫完的項目,能提供一套完整的穩定的rabbitmq 調度系統的 golang驅動

begin!~~~~~

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.