(转载)服务端技术选型

原文地址:http://xielong.me/2015/04/17/%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%8A%80%E6%9C%AF%E9%80%89%E5%9E%8B/

感谢原文作者谢龙的分享

服务框架

MVC Framework:Rose 框架简单易用,并且我米内部服务和工具都优先支持 Rose 项目,默认使用 Rose 框架是很好的选择。文艺一点想做个异步化 web 服务,可以选择 Spring MVC 3.2 以上版本,并搭配高版本 Resin/Jetty 服务器,该方案已有线上服务使用,只是搭项目时会稍复杂些。

RPC:我们线上使用的是 Apache Thrift,是 0.5.0 版本。我们计划下一步升级并完善他。具体可以访问我们的 Thrift RoadMap 页面。

Javascript Library:随大流用 JQuery,也可以申请前端支持。

CSS Framework:用 Bootstrap。

Database

ORM Framwork:自然是 paoding-rose-jade,成熟好用,无论是简单的数据表操作,或者是“高大上”的分表分库都不在话下。更集成了 perfcouter 功能,可以实时查看和监控 MySQL 语句执行效率。

数据库连接池:jade 使用 Apache DBCP。Tomcat JDBC 声称更快更强,还没测试过,暂时还是继续 Apache DBCP 吧。

No SQL:Hadoop, Hive, HBase。

Cache:本地 cache 使用 Ehcache,Guava 的 cache 也可以使用。中央式缓存,用 Memcached。

传统数据库:MySQL。线上业务先和 DBA 确认服务器磁盘是否是 SSD。

Utilizes

General:Apache Commons 必备。必须使用 3.0 以上版本。Guava 是 Google 推出的产品,新鲜的功能更多一些。

JSONJackon功能强大。

XML:据说 JDK 自带的 JAXB 就很好。

Email:直接用 Spring 的封装。

Logging:Slf4j + Log4j + Scribe + Kafka。新同学掌握 Slf4j 和 Log4j 就好。

Schedule:使用 Spring 的 Schedule。Spring Cook Book 部分有演示代码。

时间日期:JodaTime。请看我们的代码示例自学。

io:简单的文件 io 用 apache commons 或者 google guava。zip 文件处理用 zip4j。

读取命令行参数JCommander是一个简单好用的命令行参数解析框架。

Test

Spring测试框架:Spring Test 配合 JUnit 非常顺畅,需要确认项目中使用 Spring 版本 3.0 以上版本。

Mock:Mockito 是现在最优雅简洁的 mock 框架了,强烈推荐使用。Mockito 搞不定的部分,比如static 函数,搭配 PowerMock。

数据库测试:使用 H2 Database 内存数据库。还是怕慢?用 maven-surefire-plugin 多线程执行测试任务。

功能测试:在 onebox 环境测试,一遍遍发布部署太麻烦,使用 jetty-maven-plugin,一键就可以把服务启动起来。

Performance/Stability Test:Jmeter 是成熟的工具。

Development Environment

JDK:线上大多数项目使用 JDK6,JDK8 版本会从离线服务开始用,Maven 编译的包需要保证 JDK6 源码与二进制兼容。

版本控制:用 Git,先阅读我们的 Git 文档。如果想深入了解Git,推荐阅读《Git权威指南》。

构建工具:用 Maven。需要熟练掌握以下技巧:1.使用 Maven 打包,比如 Jar、War、Jar with dependency、distribution 包;2.使用 Maven 发布包;3.熟知 Maven依赖管理原理。推荐阅读《Maven权威指南》。

应用服务器:Nginx + Resin,Nginx 作为反向代理,Resin 承担应用服务器和 Java 容器的角色。需要注意,线上服务记得要调优 JVM,线程数等参数。测试环境用 Jetty 插件就好。

原文地址:https://www.cnblogs.com/timlong/p/8175785.html

时间: 2024-10-13 01:50:53

(转载)服务端技术选型的相关文章

【问底】夏俊:深入站点服务端技术(一)——站点并发的问题

url=http%3A%2F%2Fwww.csdn.net%2Farticle%2F2015-03-16%2F2824221&type=3&count=&appkey=&title=%E6%9C%AC%E6%96%87%E6%9D%A5%E8%87%AA%E6%8B%A5%E6%9C%89%E5%8D%81%E5%B9%B4IT%E4%BB%8E%E4%B8%9A%E7%BB%8F%E9%AA%8C%E3%80%81%E6%93%85%E9%95%BF%E7%BD%91%E

【问底】夏俊:深入网站服务端技术(一)——网站并发的问题

摘要:本文来自拥有十年IT从业经验.擅长网站架构设计.Web前端技术以及Java企业级开发的夏俊,此文也是<关于大型网站技术演进的思考>系列文章的最新出炉内容,首发于CSDN,各位技术人员不容错过. 注:本文首发于CSDN,转载请标明出处. [编者按] 本文来自拥有十年IT从业经验.擅长网站架构设计.Web前端技术以及Java企业级开发的夏俊,此文也是<关于大型网站技术演进的思考>系列文章的最新出炉内容,首发于CSDN,各位技术人员不容错过. 以下为正文: 一. 引子 <关于

客户端技术:Cookie 服务端技术:HttpSession

客户端技术:Cookie 服务端技术:HttpSession 07. 五 / android基础 / 没有评论 一.会话技术1.什么是会话:客户打开浏览器访问一个网站,访问完毕之后,关闭浏览器.这个过程称之为一个会话.就如同打电话.2.会话在编程中主要解决的问题是:保存各个用户的数据信息.3.保存用户各自数据的主要技术:客户端技术:Cookie服务端技术:HttpSession 二.Cookie1.获取Cookie采用request.getCookies()2.设置Cookie采用respons

0002-前端技术选型

利用Node.js的NPM进行功能的扩展 Grunt实现一些自动化,例如文件压缩,错误检查,Bower实现一些包的管理以及包之间依赖的管理. 利用Angular Js作为主要框架,并引入BootStrap,IONIC,D3等相关“工具”. 在此之前请先学习Angular Js后再阅读

服务端开发入门与进阶指南

建议:尽量用 google 查找技术资料.有问题在 stackoverflow 找找,大部分都已经有人回答.多看官方的技术文档.ibm developerworkers 的文章质量整体上有保障.平时花一些时间在 github 上阅读优秀项目源码.入门(1-2 个月)目标:参与简单的项目开发.技能:掌握 Java.经典的<Java 核心技术:卷1 基础知识>(或者<Java 编程思想>)必看,跳过其中的图形和 applet 章节.习惯查阅 Java API Doc.为了保证代码的质量

(转).net项目技术选型总结

原文作者:mcgrady 原文地址:.net项目技术选型总结 做.net开发已经几年了,也参与开发了很多大大小小的项目,所以现在希望总结出一套开发.net项目的常用技术,也为以后做项目技术选型的时候作为参考. 数据库 小型项目:SQLite 中大型项目:MS SQL Server(国内) / Mysql(国外) 数据访问技术 SqlHelper(ADO.NET) 轻型ORM:Dapper / PetaPoco 大型ORM:EF / NHibernet 服务端技术 ASP.NET MVC WCF

互联网服务端技术——如何学(中)

boys & girls,我们的中场休息结束了哈,赶紧搬板凳继续听老王扯技术的淡~ (悄悄的广播一下:如果没有看过上一篇的同学,请关注老王的微信simplemain,或者拉到本文末尾扫描/识别二维码) 上一篇,我们谈到了互联网服务端技术的整体蓝图.同时顺着这个蓝图中,介绍了语言.算法和数据结构.框架具体有哪些要求以及怎么样去学习他们.接下来,老王准备介绍另外几个比较基础,又在工程中大量使用的技术.具体是什么呢?我们接着往下看.首先我们还是把那幅蓝图摆出来(开始装B啦~). 聪明的同学一定已经发现

.net项目技术选型总结

数据库 小型项目:SQLite 中大型项目:MS SQL Server(国内) / Mysql(国外) 数据访问技术 SqlHelper(ADO.NET) 轻型ORM:Dapper / PetaPoco 大型ORM:EF / NHibernet 服务端技术 ASP.NET MVC WCF ASP.NET WebAPI 前端技术 JavaScript jQuery+jQuery UI 前端框架:Easy UI(轻型),ExtJs(大型),BootStrap 图表:FushionCharts,Hig

微服务架构技术栈选型手册&#182;

微服务架构技术栈选型手册 2014~2018,微服务经过三年的发展,现状如何?这是一份为让你更好使用微服务的技术站选型手册.除此之外,你还可以按需选用配套的微服务架构视频内容. 一.前言 2014 年可以认为是微服务 1.0 的元年,当年有几个标志性事件,一是 Martin Fowler 在其博客上发表了"Microservices"一文,正式提出微服务架构风格:二是 Netflix 微服务架构经过多年大规模生产验证,最终抽象落地形成一整套开源的微服务基础组件,统称 NetflixOS