原创 Google Custom Search API使用詳解

      最近工作不是很忙,利用業餘時間學習了google的文檔。Google對外提供的API功能十分強大,由於篇幅有限,這裏僅說一下Google Custom Search API。這個api提供了搜索的功能,可以搜索圖片和文字

原创 OGNL使用詳解一:原理與常用語法方式

                                 OGNL使用詳解一:原理與常用語法方式          OGNL:Object-Graph Navigation Language,一種功能強大的表達式語言(Expres

原创 Timer定時任務與其缺陷

一、簡介 在java中,一個完整定時任務需要由Timer、TimerTask兩個類來配合完成。 Timer:一種工具,線程用其安排以後在後臺線程中執行的任務。可安排任務執行一次,或者定期重複執行。 TimerTask:Timer 安

原创 Sitemesh框架總結

       最近剛剛去了一家新公司,由於不熟悉代碼結構,導致我找一個jsp文件都十分費勁,後來經過了一系列的找啊找,終於發現了一個jsp的拼裝框架Sitemesh,這個框架非常精巧,僅用於jsp的拼裝,使得view層的代碼很整潔,接下

原创 全文檢索框架Lucene——架構

Lucene總的來說是: 一個高效的,可擴展的,全文檢索庫。全部用Java實現,無須配置。僅支持純文本文件的索引(Indexing)和搜索(Search)。不負責由其他格式的文件抽取純文本文件,或從網絡中抓取文件的過程。 在Lucene

原创 分佈式系統中的ID生成策略

一、需求緣起 幾乎所有的業務系統,都有生成一個記錄標識的需求,例如: (1)消息標識:message-id (2)訂單標識:order-id (3)帖子標識:tiezi-id 這個記錄標識往往就是數據庫中的唯一主鍵,數據庫

原创 Mysql Table Partition (表分區)

當遇到mysql的數據量大的時候,我們會想到很多解決方案:分庫分表(垂直切分,水平切分),讀寫分離,加redis分佈式緩存,部分大數據遷移到mongodb等等。但是這些都是大的改動,改動量很大,風險也很大,effort也很大。如果m

原创 Rest API Design

本人最近負責Zuora Rest API的設計工作,總結了一下Restful設計的規範。 1. 給API加上版本 API版本應該是必備的。這樣API不會隨時間過時。一種方法是把版本放到URL裏(/api/v1...) 另一個巧妙的花招

原创 全文檢索框架Lucene——原理

一、總論 根據 http://lucene.apache.org/java/docs/index.html 定義: Lucene 是一個高效的,基於Java 的全文檢索庫。 所以在瞭解Lucene之前要費一番工夫瞭解一下全文檢索。

原创 Java併發:Lock

                                                                  Java併發:Lock 一.synchronized的缺陷         synchronized是ja

原创 Java併發:synchronized

                                     Java併發:synchronized的使用 一.線程安全           在單線程中不會出現線程安全問題,而在多線程編程中,有可能會出現同時訪問同一個資源的情

原创 淺析Tomcat、JBOSS、WebSphere、WebLogic、Apache

          做任何web項目,都離不開服務器,有錢的公司用WebSphere、WebLogic,沒錢公司用nginx+tomcat,不要小瞧nginx+tomcat麻雀雖小,五臟俱全。       服務器的知識,在筆試、面試中會

原创 全文檢索框架Lucene——Demo應用

前面兩篇博文介紹了Lucene的原理思想和架構,這篇博文就寫一下實際開發中如何使用Lucene,下面先用一個最簡單的例子描述一下。 1. 建立索引 爲了簡單起見,我們下面爲一些字符串創建內存索引: StandardAnalyzer

原创 傳統Active MQ與大數據下的分佈式Kafka

本人在Zuora工作的時候,幾乎所有的異步業務邏輯都使用ActiveMQ,對AMQ也算頗爲熟悉。現如今每天和Kafka打交道,對kafka也算駕馭的不錯。現在基於這兩者做個小比較。 首先,Active MQ與Kafka的相同點只有一

原创 OGNL使用詳解二:Struts2的OGNL應用

                                OGNL使用詳解二:Struts2的OGNL應用         在上一篇的博文基礎上,現在來看一下OGNL在Struts2中的應用。         在上一篇文章中,我提