文档章节

服务端技术选型

北天_
 北天_
发布于 2016/07/05 10:52
字数 805
阅读 36
收藏 0

服务框架

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 插件就好。

© 著作权归作者所有

北天_
粉丝 1
博文 16
码字总数 22071
作品 0
大连
后端工程师
私信 提问
360 的开源软件使用以及开源文化构建经验

奇虎360企业安全从2011年到2015年,经历了几次服务端架构的变迁。从一开始的软件自研到最后的全部使用开源软件,360企业安全部真切体会到了开源软件带来的好处。另外,360也通过各种各样的方...

lateron
2015/07/02
1K
8
基于Electron + nodejs + 小程序 实现弹幕小工具(开篇)

前言 弹幕(barrage),中文流行词语,指的是在网络上观看视频时弹出的评论性字幕。类似小说中行间彰显的夹批,视频中屏间飘过的评点叫做弹幕,原意指用大量或少量火炮提供密集炮击。而弹幕,...

黑金团队
2018/11/22
0
0
某系统单点登录性能测试诊断分析优化过程

某系统单点登录性能测试诊断分析优化过程 原因说明 下面描述的是前段时间协助本地一家上市IT公司做产品技术选型时对他们的技术框架进行性能测试与优化过程记录,因测试过程中涉及数据库选型和...

郭柏雅
2018/07/02
0
0
16家调研,60天测试,选型客服工单系统有“一套”

【引子:当下,客服工单系统林林总总,企业如何选型一款心仪的?服务千万级客户群的掌心宝贝,选型经验分享:选产品,更要选背后的团队。那他们在选型的过程经历了哪些坑?让畅享网的记者告诉...

玄学酱
2018/03/05
0
0
最近准备离职,全职做Linux运维支持。有需要的联系我。

个人做了15年的Unix/Linux系统运维。曾经在网通,TOM,Ku6,盛大创新院,大街网,第一视频,ireader等互联网公司担任技术主管,系统管理高级研究员和高级运维经理。曾负责500-1500台服务器的运维...

fei
2014/05/06
7.5K
36

没有更多内容

加载失败,请刷新页面

加载更多

Hadoop集群搭建-05安装配置YARN

Hadoop集群搭建-04安装配置HDFS Hadoop集群搭建-03编译安装hadoop Hadoop集群搭建-02安装配置Zookeeper Hadoop集群搭建-01前期准备 先保证集群5台虚拟机, nn1 nn2 s1 s2 s3 hadoop 是 是 是 ...

虚拟世界的懒猫
27分钟前
1
0
聊聊spring cloud的ConsulServiceRegistry

序 本文主要研究一下spring cloud的ConsulServiceRegistry ServiceRegistry spring-cloud-commons-2.1.2.RELEASE-sources.jar!/org/springframework/cloud/client/serviceregistry/ServiceR......

go4it
昨天
3
0
Nextjs 学习 —— hooks

22

lemos
昨天
1
0
如何在spring mvc restful接口中定制化类型转换和格式化

1.痛点 最近小胖哥搞了个小程序,有几个spring mvc 接口传递了时间,时间用java 8 time 相关的api 来直接接收: 当使用根据ISO 8601格式化的参数向任何这些方法发送POST请求时,报出了如下异...

码农小胖哥
昨天
13
0
docker日志监控

日志处理机制 我们先来了解一下docker日志处理的机制,当启动一个容器的时候,它其实是docker daemon的一个子进程,docker daemon可以拿到你容器里面进程的标准输出,拿到标准输出后,它会通...

爱宝贝丶
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部