用C++做後臺開發(文章待續...)


後臺開發的範圍十分廣泛:服務器開發,網站後端,高性能網絡框架,安全等等。
我做的是服務器開發,平時寫業務比較多,linux、網絡這些不是特別常用,但是是基本功。平時用到的一些知識:linux的相關知識是必須的,C++語言的一些特性,多線程,設計模式……

項目用到的:
1. OpenSSL
OpenSSL是一個安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程序供測試或其它目的使用。
下載地址: https://www.openssl.org/source/

2.TinyXML
簡單,高效,靈活的一套操作XML文件的開源庫。
下載地址: http://www.grinninglizard.com/tinyxml2/
http://www.grinninglizard.com/tinyxml/

3. JsonCPP
下載地址: https://sourceforge.net/projects/jsoncpp/http://www.json.org/

4. Protobuf
下載地址:https://developers.google.com/protocol-buffers/docs/downloads

5. Libevent
下載地址: http://libevent.org/

自行搭建單線程epoll服務器、多線程epoll服務器、基於libevent搭建高併發TCP服務器、基於google的grpc搭建後臺服務框架

基於thrift搭建後臺服務框架、

( linux下高併發必用,libev,libevent和boost的asio,redis的網絡部分也是epoll實現的)

6. tcmalloc
(google-perftools)是用於優化C++寫的多線程應用,比glibc 2.3的malloc快。這個模塊可以用來讓MySQL在高併發下內存佔用更加穩定。
下載地址:https://github.com/gperftools/gperftools
文檔:https://dirtysalt.github.io/tcmalloc.html

語言工具: c++、go(主) python (瞭解)javascript(瞭解)

數據交互格式:json、xml和protobuffer、MQTT,通常前端後後端交互會採用json,而後端各個模塊的交互:對於HTTP協議的交互,常用的是json;對於tcp協議,常用的是protobuffer。

網絡:
熟悉HTTP協議,深入理解TCP/IP協議
精通至少一種操作系統和網絡方面分析調試工具,如:systemtap、perf、tcpdump等。
熟練使用相關工具進行網絡故障診斷,熟悉iptables,vpn等網絡工具;

運維:

瞭解一家公有云產品,如:AWS,阿里雲,騰訊雲,微軟雲,青雲等

實戰docker(嘗試以下任一開源項目 docker/ containerd/ distribution/ etcd 有二次開發經驗)

實戰kubernetes

直播:

看看FFMPEG、live555、easydarwin等開源項目

 

如果需要對文件進行一次性編譯,可以嘗試編寫makefile。在後續的開發與調試中需要學會如何追bug,以及如何打印日誌,這樣一出問題了你就能夠快速定位問題的所在。

單純用C++一種語言來開發後端對於現在而言並非是最佳的選擇,但如果能夠配合Python做腳本,那麼對後臺的開發效率會大大增強,畢竟做好一個包之後用Python直接調用即可。(nginx + uWSGI + python 開發棧)

(電商業務主流技術棧,如:LVS/Nginx/Haproxy/DNS/Redis/Zookeeper/Ceph/Kafka/RocketMQ/MySQL)

 

互聯網架構師:

自定義高性能組件:線程池、內存池、請求池、消息隊列、內部數據緩存結構

開源組件開發:Nginx模塊開發

消息隊列:ZeroMQ、kafka

集羣存儲:(主要是MySQL、Redis的設計、開發和優化(熟悉存儲引擎、索引、數據分庫分表等技術))
    A持久存儲:MySQL(MyISAM、InnoDB)、MongoDB 
    B服務端緩存:Memcached、Redis(其實redis的源碼很少的喲)
    C文件系統:fastdfs、TFS、Ceph
    D大數據:ElasticSearch/Storm(瞭解)

服務協調:zookeeper

負載均衡:物理機F5、LVS、HAProxy、Nginx

集羣監控:Nagios、Zabbix

分佈式系統測試:jmeter、LoadRunner、tsung、

linux系統開發:內核優化、驅動調試、協程的實現、用戶態協議棧、用戶態文件系統fuse、內核虛擬化KVM、用戶態虛擬化Docker

完成解決方案:
    單臺服務器百萬級併發
    即時通訊架構
    去中心化的架構
    物聯網定位技術
    Udp協議的實現
    塊數據傳輸
    多處理的TCP協議棧定製
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章