原创 關於推送系統設計的一些總結與思考(一)

消息與通知 本文中的消息是指交給推送系統的待發送字符串;通知是指推送系統內部,通過長連接服務發送給客戶端的通知字符串,它只在推送系統內部使用,對於使用推送系統的上層應用無法感知其存在; 一、 安全性 在推送系統中,安全性最受關注的是長連接

原创 幾種TCP連接中出現RST的情況

應該沒有人會質疑,現在是一個網絡時代了。應該不少程序員在編程中需要考慮多機、局域網、廣域網的各種問題。所以網絡知識也是避免不了學習的。而且筆者一直覺得TCP/IP網絡知識在一個程序員知識體系中必需佔有一席之地的。 在TCP協議中RST表示

原创 關於推送系統設計的一些總結與思考(二)

三、 消息推送的工作模式 **  常見的消息推送系統的工作模式有:推模式、拉模式以及推拉混合模式三種,在很多推送系統中,採用在線消息直接推送下去,離線消息讓客戶端拉取,這種方式很容易造成漏消息的問題。本節將介紹幾種“特殊定義“的推送模式的

原创 linux下的常用時間函數總結

1、Unix系統一直使用兩種不同的時間值:“日曆時間”和“進程時間” 1.1、日曆時間,日曆時間是從國際標準時間公元1970年1月1日00:00:00到現在所經歷的秒數;此時間精度爲秒。     系統用time_t保存這種時間值,如果時間

原创 linux下判斷網絡是否連接

本文改寫自網上的一個程序,原始程序中爲阻塞式調用,而且有進程創建的過程,非常不利於集成到自己程序中,因此對原始程序進行改造,使其可以完成發送一個imcp包的方式來判斷網絡連通,只需要調用改進後的  bool NetIsOK() 函數即可,

原创 關於推送系統設計的一些總結與思考(三)

四、 推送系統的集羣化 ** 4.1長連接集羣 推送系統作爲一項基礎服務,它需要承載全部在線用戶量,對於移動互聯網行業,在設計之初的期望目標用戶量就非常大,並且用戶未來一段時間的增長量通常難以預估,因此要求在設計推送系統時,都要求能夠集羣

原创 程序員的自我修養——讀《軟技能-代碼之外的生存指南》筆記

我記得曾經讀過俞甲子的《程序員的自我修養——鏈接、加載和庫》,當時就覺得這個書名起的不太合適,有點不合主題,因爲這本書主要講述鏈接庫的事情,我認爲這個是編譯器的一部分,是作爲程序員要掌握的一項基本技能,而不修養的事情,更談不上基本修養(但

原创 客戶端網絡庫實現真的很簡單嗎?

(注:本文所講的網絡協議只針對TCP協議) 背景:開發一個C/S的應用勢必需要服務端和客戶端的適配,包括網絡協議、數據傳輸格式、業務處理的適配。由於服務端承載着大量的客戶端,需要高併發、高性能、高可靠性,在我們的認知裏往往認爲服務端的網絡

原创 MYSQL性能優化的最佳20+條經驗

今天,數據庫的操作越來越成爲整個應用的性能瓶頸了,這點對於Web應用尤其明顯。關於數據庫的性能,這並不只是DBA才需要擔心的事,而這更是我們程序員需要去關注的事情。當我們去設計數據庫表結構,對操作數據庫時(尤其是查表時的SQL語句),我們

原创 性能調優攻略

關於性能優化這是一個比較大的話題,在《由12306.cn談談網站性能技術》中我從業務和設計上說過一些可用的技術以及那些技術的優缺點,今天,想從一些技術細節上談談性能優化,主要是一些代碼級別的技術和方法。本文的東西是我的一些經驗和知識,並不

原创 網絡編程釋疑之:TCP連接拔掉網線後會發生什麼

背景:前些天團隊在進行終端設備和服務器端長連接業務的測試時,發現了這麼一個情況:在拔掉設備端的網線後,再插上網線,有時可以繼續正常的進行長接連請求,而且用的還是拔掉網線之前的那個長連接。但是有時卻不能繼續正常的長連接請求,需要重新建立一個

原创 QT操作Word,插入表格

最近在做QT導出word報表,發現網上的資源不是很多,也浪費了很多時間,我自己做了一份demo,將會詳細講述如何做出需要樣式的報表。在網上很容易查到java或者其他語言操作word的接口函數,但是QT能操作word的,不是很多,而且還不太

原创 MySQL索引原理及慢查詢優化

MySQL憑藉着出色的性能、低廉的成本、豐富的資源,已經成爲絕大多數互聯網公司的首選關係型數據庫。雖然性能出色,但所謂“好馬配好鞍”,如何能夠更好的使用它,已經成爲開發工程師的必修課,我們經常會從職位描述上看到諸如“精通MySQL”、“S

原创 值得推薦的C/C++框架和庫 (真的很強大)

值得學習的C語言開源項目- 1. WebbenchWebbench是一個在linux下使用的非常簡單的網站壓測工具。它使用fork()模擬多個客戶端同時訪問我們設定的URL,測試網站在壓力下工作的性能,最多可以模擬3萬個併發連接去測試網站

原创 工作中如何做好技術積累

引言古人云:“活到老,學到老。”互聯網算是最辛苦的行業之一,“加班”對工程師來說已是“家常便飯”,同時互聯網技術又日新月異,很多工程師都疲於應付,叫苦不堪。以至於長期以來流傳一個很廣的誤解:35歲是程序員工作的終點。如何在繁忙的工作中做好