Systems Programming at Twitter
http://monkey.org/~marius/talks/twittersystems/
主要围绕下面几个方面:
- Clean concurrent programming model: simple, safe, and modular programs; uniform programming model. #note: about scala.
- Message passing architecture: High concurrency, fault tolerant, performant. #note: about finagle.
- Protocol support: largely agnostic, support HTTP, thrift, memcache, redis, MySQL…
- Observability: for diagnostics, profiling, optimization 个人感觉在这方面做得不错值得借鉴和学习:
- 统计数据可以通过http接口访问到(ostrich),并且由viz展现出来。
- rpc交互追踪可以通过dapper的开源实现zipkin完成。
- profile数据同样可以通过http接口访问到,使用pprof来做分析。
- Tracing, cancellation, thread-biasing pools, etc. with zero user code change 并且这些功能不需要用户修改代码