原创 ejabberd聊天記錄

ejabberd默認是不保存聊天記錄的, 項目需要保存聊天記錄。於是查資料研究折騰了半天, 終於搞定。 下面把過程記錄下來,供大家參考: ejabberd的版本:16.09。  目前的ejabberd版本自帶的mod_mam模塊,已經實

原创 tornado連接mysql

Tornado參考鏈接:http://demo.pythoner.com/itt2zh/index.html 環境:centos 6.7, tornado 4.4.2,python 3.5.1 1、 MySQLdb Python 2.x

原创 ejabberd離線消息

接前面blog "說說ejabberd 離線消息的坑", 採用將離線消息存儲在mysql中來解決。  ejabberd版本:16.09 1、修改ejabberd配置文件/etc/ejabberd/ejabberd.yml 配置mod_of

原创 不會搭建大數據平臺,我被老闆優化了

【51CTO.com原創稿件】隨着業務的飛速發展,信息化作爲業務的支撐,各個企業都建立了自己的信息化系統。 圖片來自 Pexels 在業務增漲過程中,每個企業不知不覺積累積累了一些數據。無論數據是多是少,企業都希望讓“數據說話”,通過對

原创 分佈式系統之CAP理論

任老師第一節主要講了分佈式系統實現時候面臨的八個問題,佈置的作業就是這個,查詢CAP理論。 筆者初次接觸分佈式,所以本文主要是一個彙總。 一.CAP起源   CAP原本是一個猜想,2000年PODC大會的時候大牛Brewer提出的,他認

原创 RabbitMQ與AMQP協議詳解

1. 消息隊列的歷史 瞭解一件事情的來龍去脈,將不會對它感到神祕。讓我們來看看消息隊列(Message Queue)這項技術的發展歷史。 Message Queue的需求由來已久,80年代最早在金融交易中,高盛等公司採用Teknekr

原创 golang延遲函數defer

golang的defer優雅又簡潔, 是golang的亮點之一。defer在聲明時不會立即執行,而是在函數return後,再按照先進後出的原則依次執行每個defer,一般用於釋放資源、清理數據、記錄日誌、異常處理等。 下面舉個例子: pa

原创 nginx搭建文件上傳下載服務器

最近要搭建文件一個服務器, 準備使用python的web框架tornado來做。發現了這篇blog,準備使用nginx來實現文件上傳和下載的功能。下面把實現步驟記錄下來,中間有很多坑。 系統環境:centos6.8 1、下載nginx w

原创 nginx搭建文件服務器獲取上傳進度

接上篇blog,主要講講獲取上傳進度的實現。 參考地址:https://github.com/masterzen/nginx-upload-progress-module 按照其中的說明配置nginx,將其中的例子存成test.html文

原创 iperf局域網測速

最近在搭建文件傳輸server, 發現傳輸速度很慢。所以想測試一下是網絡問題,還是server本身的問題。 環境:文件傳輸server  centos6.8.1  client:windows7。 使用iperf工具進行測試 1、wind

原创 pyinstaller+python3.6搭建windows客戶端的服務(一)

背景   本人遇到一個項目,需求是實現一個客戶端界面,該客戶端可讀取攝像頭、讀卡器這些本地設備,同時也需要訪問雲服務器的公共服務,安裝程序包儘量小,且安裝簡單。   針對這種需求,當然會有很多種解決方法,比如使用c#、VB、Java等開發

原创 redis 寫入帶寬報警問題解決

    項目中一直使用celery來做異步任務的執行, broker使用的是redis。 最近每天都會有幾次redis(帶寬10M)寫入帶寬超過80%報警, 報警的時候查看redis log 沒有發現大量數據寫入。經過仔細查看發現大量下面

原创 Linux內核OOM機制的詳細分析

Linux內核根據應用程序的要求分配內存,通常來說應用程序分配了內存但是並沒有實際全部使用,爲了提高性能,這部分沒用的內存可以留作它用,這部分內存是屬於每個進程的,內核直接回收利用的話比較麻煩,所以內核採用一種過度分配內存(over-co

原创 從 python2.7 遷移到 python3.6

python2.7 會在 2020 年停止維護, 很多第三方包也在去掉對 python2.7 的支持, 最近終於完成了內部代碼向 python3 的遷移, 整個過程挺繁瑣的, 記錄一下. 總共需要遷移的代碼大概有 50w 行(cloc 計

原创 服務器升級帶來的問題

系統環境: CentOS release 6.8    8核16G 使用的服務:nginx+uwsgi+celery+redis+mysql+mongo 由於業務的需要,升級到16核32G, 升級後啓動服務報錯:can't start n