本站原创 ’ 目录归档

Apache Velocity开发者指南–导读

原文链接   译者:小村长

Velocity–导读

本项目是 Apache Velocity官方文档的中文翻译版,Velocity类似与Jsp,是一种基于Java的模板引擎。它可以在web页面中引用java代码定义的数据和对象,而Velocity的作用就是Web视图和java代码进行组装在一起。本次翻译主要针对对Velocity感兴趣和工作中使用到Velocity的开发人员提供有价值的中文资料,希望能够对大家的工作和学习有所帮助。

由于我也是第一次接触Velocity,还不是很深入,翻译的时候也查看了一些博客以及其他网上资料。以及也测试者去了解它和Jsp方面的差别以及优缺点,同时也去了解了下他和其他Java引擎模板的区别,比如freemaker的区别,等等。但是还是因为能力见识有限,翻译过程中难免出现个人的主观或者客观原因导致与官方文档有差异。在此,我还是建议有能力的童鞋能够自己去Velocity官方看看。

阅读全文

Hortonworks(HDP)开发者认证-考试大纲

原文链接   译者:小村长

本项目是 Hortonworks开发者认证官方文档的中文翻译版,Hortonworks致力于打造一个全新的大数据处理平台来满足大数据处理和分析的各个使用场景,它组合了大数据平台使用的各个组件, 比如Hadoop、Hbase、Hive、Spark等等一些列的组件, 它安装方便使用便捷, 而且已经在2000节点以上的节点上商用. 本次翻译主要针对对Hortonworks感兴趣和致力于从事大数据方法开发的人员提供有价值的中文资料,希望能够对大家的工作和学习有所帮助。

由于我公司鼓励大家考Hortonworks认证(呵呵,公司出费用),于是今天简单的看了下官方考试大纲,感觉还不错,故翻译了下供大家参考学习,本次翻译并没有咬文嚼字, 而是根据我个人的理解进行翻译, 由于本人能力有限难免有些地方翻译不到位,还希望大家谅解,同时也鼓励大家去看官方文档。

阅读全文

Java 8 新特性

原文链接   译者:小村长

这篇文章是一篇介绍Java8新特性英文博客的中文翻译,Java8发布有些时日,但是大家对它的了解和认识还不够,大部分企业和用户还停留在之前的版本中,本次翻译主要针对对Java8感兴趣和致力于从事Java开发的人员提供有价值的中文资料,希望能够对大家的工作和学习有所帮助。Java8的中文资料相对匮乏,这是我看过介绍Java8新特性最好的一篇文章,作者通过实例和理论相结合的方式,通俗易懂的阐述了Java8的一些新特性,今天让小村长为你揭开Java8的神秘面纱,一同走进码农的精神世界。注释 : 由于本人翻译水平有限,文中难免出现错误或者翻译不合理的地方,还希望大家多多指导。

阅读全文

阿里感悟(十四)-如何带新员工

Teacher and Students. Dude X12 the students and Teacher in class作者:方腾飞  本文首发于并发网

引言

在阿里,每一位新员工进来之后都会有一位导师,导师一般都是团队中非常优秀的员工。有些部门可能不叫导师了,而是叫师兄,可能更亲切,但是我觉得导师更贴切。

导师指导新员工的过程,我觉得应该是一个PDCA的过程,即计划,执行,检查和总结。

阅读全文

JSON数据乱码问题

背景
程序员一提到编码应该都不陌生,像gbk、utf-8、ascii等这些编码更是经常在用,但时不时也会出个乱码问题,解决这个问题的方法大部分都是先google和baidu一下,最后可能在某个犄角旮旯里找到一点信息,然后就机械的按部就班的模仿下来,结果问题可能真就迎刃而解了,然后就草草了事,下回遇到相似的问题,可能又是重复上面的过程。很少有人有耐心去花精力弄明白这写问题的根本原因,以及解决这些问题的原理是什么。这篇文章就是通过一个实际案例,试着去讲清楚什么是编码,乱码又是怎么产生的,以及如何解决。该案例是从lua_cjson.c这个库开始的,对这个库不熟悉也没关系,也不需要熟悉它,我们只是借用它来说明乱码问题,只需要跟着文章的思路走就可以。

阅读全文

容错技术介绍

常见的增强鲁棒性机制的介绍一起其他比较有效地系统检测缺陷方法。下载本文PDF文档
容错的目标是降低或者最小化故障对系统可用性、可靠性、安全性、持续性等得影响。在软件容错中,常常使用fault(缺陷),error(错误),failure(故障)来表示系统异常的由来。系统缺陷在某种特定环境下被激活,到至系统产生错误,系统错误运行是的是的系统发生某种故障阅读全文

《Java并发编程从入门到精通》显示锁Lock和ReentrantLock

javaC作者:张振华    购买链接:天猫商城  JD商城  当当书店

 

显示锁Lock和ReentrantLock

Lock是一个接口提供了无条件的、可轮询的、定时的、可中断的锁获取操作,所有加锁和解锁的方法都是显式的。包路径是:java.util.concurrent.locks.Lock。核心方法是lock(),unlock(),tryLock(),实现类有ReentrantLock, ReentrantReadWriteLock.ReadLock, ReentrantReadWriteLock.WriteLock。

阅读全文

Java8中CAS的增强

几天前,我偶然地将之前写的用来测试AtomicInteger和synchronized的自增性能的代码跑了一下,意外地发现AtomicInteger的性能比synchronized更好了,经过一番原因查找,有了如下发现:

在jdk1.7中,AtomicInteger的getAndIncrement是这样的:

阅读全文

并发网2014.11月阅读量Top10

ICON4又到了月末,并发网11月Top10的阅读量的文章送到,希望各位客官笑纳!有任何意见和建议,欢迎告诉我们,我们在努力!~

  • Top1 JAVA面试700问(一)

    Java环境中的字节码是什么?由Java 编译器生成的一种代码。由JVM生成的一种代码,Java源文件(Java Source File)的别名,一种写在类的实例方法中的代码,答案……(1502人阅读)

阅读全文

Java锁的种类以及辨析(三):阻塞锁

下载作者:山鸡

锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及。本系列文章将分析JAVA下常见的锁名称以及特性,为大家答疑解惑。

阅读全文

Java锁的种类以及辨析(二):自旋锁的其他种类

下载

作者:山鸡

锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及。本系列文章将分析JAVA下常见的锁名称以及特性,为大家答疑解惑。

阅读全文

Tomcat-connector的微调(3): processorCache与socket.processorCache

tomcat在处理每个连接时,Acceptor角色负责将socket上下文封装为一个任务SocketProcessor然后提交给线程池处理。在BIO和APR模式下,每次有新请求时,会创建一个新的SocketProcessor实例(在之前的tomcat对keep-alive的实现逻辑里也介绍过可以简单的通过SocketProcessorSocketWrapper实例数对比socket的复用情况);而在NIO里,为了追求性能,对SocketProcessor也做了cache,用完后将对象状态清空然后放入cache,下次有新的请求过来先从cache里获取对象,获取不到再创建一个新的。

这个cache是一个ConcurrentLinkedQueue,默认最多可缓存500个对象(见SocketProperties)。可以通过socket.processorCache来设置这个缓存的大小,注意这个参数是NIO特有的。

接下来在SocketProcessor执行过程中,真正的业务逻辑是通过一个org.apache.coyote.Processor的接口来封装的,默认这个Processor的实现是org.apache.coyote.http11.Http11Processor。我们看一下SocketProcessor.process(...)方法的大致逻辑:

阅读全文

Tomcat-connector的微调(2): maxConnections, maxThreads

1) 最大连接数

tomcat的最大连接数参数是maxConnections,这个值表示最多可以有多少个socket连接到tomcat上。BIO模式下默认最大连接数是它的最大线程数(缺省是200),NIO模式下默认是10000,APR模式则是8192(windows上则是低于或等于maxConnections的1024的倍数)。如果设置为-1则表示不限制。

在tomcat里通过一个计数器来控制最大连接,比如在Endpoint的Acceptor里大致逻辑如下:

阅读全文

Tomcat-connector的微调(1): acceptCount参数

对于acceptCount这个参数,含义跟字面意思并不是特别一致(个人感觉),容易跟maxConnections,maxThreads等参数混淆;实际上这个参数在tomcat里会被映射成backlog:

static {
    replacements.put("acceptCount", "backlog");
    replacements.put("connectionLinger", "soLinger");
    replacements.put("connectionTimeout", "soTimeout");
    replacements.put("rootFile", "rootfile");
}

backlog表示积压待处理的事物,是socket的参数,在bind的时候传入的,比如在Endpoint里的bind方法里:

阅读全文

云架构和openstack的思考

作者:罗立树

最近在负责公司内部私有云的建设,一直在思考怎么搞云计算,怎么才能够把云架构设计得好一些。

本文章主要内容:

1. 行业生态

2. 从需求角度看云

3. 云计算概述

4. 云建设的关键问题

5. 私有云架构规划
阅读全文

return top