公司服务器前端
CentOS 7
Nginx
tomcat
mysql or oracle
Redis(Codis) or Memcachedjava
建议使用:Redismysql
推荐理由:公司一直在使用、同事熟练程度高。git
MetaQ or kafka程序员
建议使用:kafkagithub
推荐理由:虽然MetaQ我一直在使用并无问题、可是因为做者基本不更新社区活跃程度低。反而Kafka社区活跃、各大网站有成熟的解决方案、提供可参考的应用实例多。web
一个简单的持续集成架构图以下: 如上持续集成能够实现开发、测试、生产自动化部署管控。方便调试。sql
略数据库
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,能够选择使用Spring的SpringMVC框架或集成其余MVC开发框架,如Struts1,Struts2等。apache
推荐使用理由:公司项目中一直在使用而且也是时下流行的技术框架。
熟练程度:熟练使用。
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,而且更名为MyBatis 。 2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。 iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
推荐使用理由:简单易用的配置能够直接经过SQL解决复杂的业务场景。学习成本不算高、替代hibernate。
熟练程度:熟练使用。
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson建立。简单来讲, Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。
推荐使用理由:公司项目中一直在使用而且也是时下流行的技术框架。
熟练程度:熟练
Dubbo是一个被国内不少互联网公司普遍使用的开源分布式服务框架,即便从国际视野来看应该也是一个很是全面的SOA基础框架。 做为一个重要的技术研究课题,在当当网咱们根据自身的需求,为Dubbo实现了一些新的功能,并将其命名为Dubbox(即Dubbo eXtensions)。
推荐使用理由:能够解决系统与系统之间复杂调用、能够实现面向服务SOA编程。简单实现系统服务化发布与治理。
熟练程度:熟练使用dubbo服务发布和服务治理。若是可能能够快速将单一系统重构为分布式服务架构系统。
freemarker:
Velocity:
Beetl:
beetl功能与Freemarker功能比较: http://javamonkey.iteye.com/blog/1573346
velocity freemarker比较: http://lishumingwm163-com.iteye.com/blog/933365
推荐使用理由:FreeMarker在公司系统中已经普遍使用、可是我的深深被beetl简单易用所吸引所以推荐使用。
熟练程度:熟练使用(由于相似FreeMarker、文档丰富、学习成本低)
推荐使用理由:若是长期考虑建议使用 disconf 。开发、测试、生产运维实现界面配置、后期扩展性高。若是单独一个子系统使用Commons Configuration足矣。
熟练程度:能够快速搭建disconf服务器并应用到项目中。
logback 和 slf4j 配合使用
推荐使用理由:公司项目中一直在使用而且也是时下流行的技术框架。
熟练程度:熟练使用。并能够结合logback搭建系统错误邮件报警提醒。
建议使用 FastJson。参考网址:https://github.com/alibaba/fastjson
推荐使用理由: 零依赖、性能高、强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)。业内普遍使用。
熟练程度:熟练使用
建议使用 druid 为监控而生的数据库链接池。参考网址:https://github.com/alibaba/druid
推荐使用理由:druid为监控而生、DruidDataSource 高效可管理的数据库链接池。替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库链接池
熟练程度:熟练使用。
以下图归纳系统数据访问流程: