从一个IT菜鸟到一个互联网老菜鸟,从一个国内电商巨头到一个创业型公司。技术也由微软阵营转型到JAVA阵营。算不上最佳实践,也是从中也有一些认识及感悟,但愿各路兄弟一块儿探讨学习。html
如下对当下互联网一些流行的技术及解决方案所需的框架作一个总结吧,主要都是一些JAVA及开源方面的技术框架组件。缓存
这里废话一段题外话,我的没有任何的技术偏见,只是由于时下微软阵营被边缘化,至于为啥我以为不是语言的问题,仍是由于openSource社区或者技术版权免费问题吧(微软最近固然也有很大的动做,仍是很看好微软的^_^)。服务器
应用层相关:框架
表现层通常仍是MVC框架 SpringMVC or Struts2 或许还有Struts 这里LZ 只稍稍改过一点Struts的东西,光配置文件跟SpringMVC 比仍是好麻烦的说。异步
应用层通常仍是Mybatis(IBatis)+Spring。分布式
持久层这里会说到关系型及非关系型,关系型;关系型通常仍是以MySQL为主导,LZ也用过SQL SERVER,有钱的公司还会用Oracle,固然三者越日后价格越高费心越少。学习
非关系型:大数据大字段考虑使用MongoDB,Redis等;大数据
缓存:除了富客户端的本地缓存,固然不得不说还有各类开源缓存中间件,Redis,Memcached还有淘宝的Tair。spa
异步:说到异步解决方案,确定会想到异步任务的调度,常规的有Quartz 还有就是taobao Schedule ,Quartz的有点方便快捷可是对分布式支持的不是很好,LZ曾经设法经过官网上的方式及网友们的推荐方案去改写,可是最终发现须要生产的DB脚本里的Tables有不少外键,这种表维护也很麻烦,上线DBA确定也不建议,这里若是介意单点想用分布式调度的话仍是考虑配合用缓存或者用taobao Schedule 比较好,后续LZ也会分享下分布式的Solution。设计
这里还有一个进阶技术解决方案:状态机。也就是工做流的简化版本,这个通常能够自行设计,后续LZ考虑分享出当时的一个简单粗暴的方案。
消息中间件:一个不得不说的神器,就是Active MQ 最成熟最流行普遍,还有就是淘宝的Rocket MQ(Meta Q前身),这个也很不错,只是相关文档少了点,Kafka ,RabbitMQ 这些LZ也只是耳闻,具体没用过。
RPC:时下最出名最牛的也算是Dubbo了,固然我的感受通常中小型不必哈,Dubbo 的文档也是最最给力的;还有内部服务器之间的调用能够是Hession ,Restful或者SOAP,由于数据交换的格式不同,Hession也是效率高的,Restful是最实用最方便的,SOAP相比前二者趋于繁琐累赘。
项目管理:固然不得不说下互联网项目管理,互联网的项目就一个字:快! 是的,你不快竞争对手快,文档都是扯淡的,兄弟们有没有同感 ~~~,因此怎么样又快又好,Scrum 敏捷开发也是互联网里最流行的,在这LZ推荐一个性价比高趣味性高的方案:看板管理,这个也是LZ比较看好的一种。
以上粗略的说了一些泛泛而谈的东西框架,但愿后续LZ可以坚持对每个可以衍生分享出来。