EasyProxy,簡單易用的tcp代理

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

EasyProxy,簡單易用的tcp代理

最近工作中遇到了golang的項目,稍稍對其產生了點興趣,打算認真學習下,正巧在搭建mysql主備環境的時候發現如果用一個代理程式的話自己測試會方便很多(主要還是為了造輪子),於是這個基於golang的tcp proxy項目就產生了

需求

  1. 由於是為了學習golang,所以要在實現代理基礎功能的前提下儘可能的用到golang的各種基礎知識

  2. 不可能真單純的為了玩,學一個東西除了為充實大腦,更為了能有實際用途,所以有必要工程化

  3. 程式不要太繁雜,畢竟這是我的第一個golang工程,來日方長

設計

結構圖如下:

+----------+                           +------------+|  client  |<----+                     |            |+----------+     +--->+-----+<-------->|   server   |                      |     |          |            |+----------+          |     |          +------------+|  client  |<-------->|     |+----------+          |     |                      |     |          +------------++----------+          |  L  |          |            ||  client  |<-------->|  B  |<-------->|   server   |+----------+          |  S  |          |            |                      |     |          +------------++----------+          |     ||  client  |<-------->|     |+----------+          |     |          +------------+                      |     |          |            |+----------+     +--->+-----+<-------->|   server   ||  client  |<----+                     |            |+----------+                           +------------+            

最常見的負載平衡模式,但有幾個點需要支援:

  1. 支援不同的調度策略,如:輪訓,隨機等

  2. 要有心跳檢查機制,及時將有問題的後端server剔除,但也要在server恢複的時候恢複過來

  3. 有簡單的監控,便於查看後端server的代理情況及用戶端的串連情況

  4. 有簡單的設定檔,便於修改

  5. ...後續再加...

實現

github:EasyProxy

其他

如有問題,歡迎其他喜歡golang的小夥伴聯絡:xsank#foxmmail.com

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.