关于开源软件
开源之殇 中提到
使用开源有风险
前提:这里的开源产品,特指业务关联度高的中间件产品(比如分布式文件系统,消息队列中间件,即时通讯服务器,任务调度中间件,检索系统等)。
最大的风险来自两方面:
- 使用过程中发现后续需求不满足
- 线上遇到BUG或者问题
- 使用过程中发现后续需求不满足
选择开源要谨慎
基本使用开源中间件的公司在产品做到一定规模一定会遇到上面提到的风险和问题,大多数公司的选择也是一样,推倒重来,重新开发适合自己的中间件。比如淘宝,比如新浪,比如TWITER。相同的功能大家做了又做,不是炫耀自己有多牛,而是逼不得己。
但并不是所有的开源都是洪水猛兽似的,通用性工具类的,特别是经过了大公司长时间验证过的通用性工具,是可以选用的,比如MYSQL, ZOOKEEPER, NGINX, HAPROXY, OPENFIRE, SOLR, KEEPALIVED, LIBEVENT, MINA, NETTY, TOMCAT, APACHE, LUCENE, REDIS, MONGODB, MEMCACHED 等等等等,是可以放心去选用的,前提是要对这些产品的配置和优化有充分的理解。
使用的开源软件
- NGiNX + Tomcat 作为 web server
- Spring, SpringMVC
- Zookeeper 来做注册服务中心的管理者
- Netty 与 Mina 师出同源,但前者的网络性能更佳、API接口更规范
- 简单的队列系统使用 Redis