原创 如何在Mahout中支持mongodb

目前,NOSQL運用越來越廣,大量的日誌數據都存儲到mongodb了。但是在mahout中對mongo的支持並不好,使用起來十分複雜 例如 mahout0.9 public final class MongoDBDataMode

原创 linux通用線程池設計I

Linux上開發時爲了提高程序的運行效率,經常需要使用的多線程,但是在Linux並沒有看到一套發行的線程池,至少筆者沒有看到。有人會說,用boost就搞定了呀。筆者沒有看過boost源碼,但是感覺過於龐大了,綜上,設計自己使用的線

原创 談談前後端分離

現狀與分歧 作爲一名前端開發人員,我們應該嘗試一些新穎的技術,完善每一個細節性的問題,不斷突破自我。雖然前後端分離已經算不上什麼新穎的技術或思路,但是目前很多後臺開發人員甚至前端開發人員都沒有接觸過。 據我個人的瞭解,如果在一個部

原创 Java Mysql Hive操作

package com.sys.store; import java.beans.Statement; import java.sql.Connection; import java.sql.DriverManager; impo

原创 Nginx架構分析

Nginx強勁的高性能表現來自其合理的軟件設計。傳統的web服務器和應用服務器架構設計上採用多進程或線程作爲其處理業務的基本單位,而Nginx更多的使用了事件驅動的架構。正是這種架構使得Nginx可以輕鬆支持數十萬的併發鏈接。【譯

原创 再談一致hash算法

consistent hashing 算法早在 1997 年就在論文 Consistent hashing and random trees 中被提出,目前在 cache 系統中應用越來越廣泛; 1 基本場景 比如你有 N 個

原创 秒殺系統的架構設計

秒殺系統,是典型的短時大量突發訪問類問題。對這類問題,有三種優化性能的思路: 寫入內存而不是寫入硬盤、異步處理而不是同步處理、分佈式處理 用上這三招,不論秒殺時負載多大,都能輕鬆應對。更好的是,Redis能夠滿足上述三點。因此,用

原创 Linux中如何限制一個進程的CPU佔用率?

在Linux後臺開發時,經常會有這樣一個需求,某個進程可能佔用過高的CPU,導致服務宕機,服務質量下降。 我們可以通過cgroup來控制一個進程的cpu使用率。 cd /cgroups cd cpu mkdir nano

原创 c++實現微妙級時間統計

/* * SYSstdTime.h * * Created on: 2016年11月15日 * Author: root */ #ifndef SYSSTDTIME_H_ #define SYSSTDTIM

原创 WR720N上實現基於opwnwrt的Upnp音樂播放器(DLNA-wifi音箱移植)

一、準備工作 硬件準備:WR720N(Ar9331芯片)無線路由開發板(400M主頻、64M RAM、8M spi-flash)(8M flash有些緊張,建議選擇16M flash比較富餘些) USB聲卡一個 耳機或音箱

原创 Restful的定義

越來越多的人開始意識到,網站即軟件,而且是一種新型的軟件。   這種”互聯網軟件”採用客戶端/服務器模式,建立在分佈式體系上,通過互聯網通信,具有高延時(high latency)、高併發等特點。   網站開發,完全可以採用軟

原创 動態庫和Linux調試技術

Linux支持共享庫已經有悠久的歷史了,不再是什麼新概念了。大家都知道如何編譯、連接以及動態加載(dlopen/dlsym/dlclose) 共享庫。但是,可能很多人,甚至包括一些高手,對共享庫相關的一些環境變量認識模糊。當然,不

原创 C++程序員如何寫Java(1)

package com.db.login; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import j

原创 Hadoop2.2集羣搭建(1)

1 事前準備 操作硬件平臺: vmware workstation 操作系統: Centos 6.8 64位 Apache hadoop版本:2.2 Java版本: jdk1.7 Mahout版本:0.9 Hive:

原创 高擴展軟件架構設計

從最簡單的水平來看,可伸縮性就是做更多的事情。更多的事情可以是響應更多的用戶請求,執行更多的工作,或處理更多的數據。設計軟件這件事本身是複雜的,而讓軟件做更多的工作也有其特有的問題。這篇文章針對構建可伸縮軟件系統提出了一些原則和方