仙人掌世界
learn - innovate - share
May 10, 2012
Finagle 概述
Finagle
是基於JVM的網路框架/堆疊,開發者能在之上使用Java,Scala或任何基於JVM程式語言來開發非同步運算的RPC Client/Server,其專案是 Twitter 總結了實務上遇到的問題,所設計的分散式系統方案,並在2011的7月開放源始碼,目前功能如下表
Protocols
HTTP
Streaming HTTP (Comet)
Thrift
Memcached/Kestrel
More to come!
Server Support
Backpressure (to defend against abusive clients)
Service Registration (e.g., via Zookeeper)
Native OpenSSL bindings
Client Support
Connection Pooling
Load Balancing
Failure Detection
Failover/Retry
Distributed Tracing (a la
Dapper
)
Service Discovery (e.g., via
Zookeeper
)
Rich Statistics
Native OpenSSL bindings
Sharding
Read more »
Apr 7, 2012
ScalaSTM 試用
STM(
software transactional memory
)是種
concurrency control
機制,相對於用 locking 進行同步化,更安全與簡單,以下使用帳戶轉帳的例子實作比較locking與STM
帳號轉帳案例
多組帳號同時以隨機金額進行轉帳,轉帳過程要保證沒有 race condition 與避免 deadlock
Read more »
Mar 18, 2012
Random / Math.random() / ThreadLocalRandom
java.util.Random
java.util.Random 亂數演算法會依賴 seed 數值產生亂數,並在產生亂數後重新產生 seed,
在 Multi-thread 下為了保證在各Thread取到不同的亂數, java.util.Random 在實作上使用 optimistic locking 來同步更換 seed ,問題是若所有Thread都使用同個Random物件產生亂數,在大量競爭下會造成不斷的loop計算,進而產生效能問題
Read more »
Feb 17, 2012
TOTP authentication demo 開發工具與佈署環境(Heroku)
延續前篇
使用 TOTP 與 Google Authenticator 實作 Two-Factor authentication
,此篇說明使用到的工具與相關心得
Application
Back-end
Java
slf4j
Apache commons-codec
Spring framework 3.1
嘗試了些新版的功能
1. Java-based configuration 覺得一般使用沒比 XML schema-based 好用,做框架設計的時候會比較實用,動態組裝、設定樣版、模組化,不知道還能怎麼運用
2.
Environment API
在啟動時依系統參數來區分"開發"或"佈署環境"的Profile,用於載入不同的 bean definition,若沒指定啟動參數則為 default 的 profile
e.g. JAVA_OPTS => -Dspring.profiles.active=heroku
Zxing
Google 的 QRCode library,在這用來產生 QRCode image 傳遞 secret key
Jedis
Redis Client 端的 Java Library
AspectJ
在這用來做 redis 的連線控制,避免階層操作下佔用多組連線
TOTP Algorithm
基於
RFC6238:TOTP: Time-Based One-Time Password Algorithm
附錄程式並做了些簡化
Front-end
Spring MVC
試用 Servlet 3.0 免宣告 web.xml 的功能,但從 Tomcat 搬到 Jetty 遇到些問題,在 Jetty 的根目錄(/) 會被 DefaultServlet 覆蓋, 導不到 spring mvc的DispatcherServlet,不想多加 Filter 只好換回 web.xml
Jackson Json
JQuery
Bootstap
Twitter 開發的前端工具庫
Read more »
Jan 22, 2012
[Java Performance]Chapter 3:JVM Overview
這篇談JVM的概觀與各元件用途與描述HotSpot VM在各元件上的優化技術
HotSpot VM High Level Architecture
JVM 有三個主要元件:
VM Runtime
JIT Compiler
Memory manager
Read more »
Newer Posts
Older Posts
Home
Subscribe to:
Posts (Atom)