Java WebSocket教程

翻译自 masterthebossWebSockets tutorial on Wildfly 8,同时在翻译的过程中增加了很多的背景知识。

WebSocket 是web客户端和服务器之间新的通讯方式, 依然架构在HTTP协议之上。使用WebSocket连接, web应用程序可以执行实时的交互, 而不是以前的poll方式。

WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议,可以用来创建快速的更大规模的健壮的高性能实时的web应用程序。WebSocket通信协议于2011年被IETF定为标准RFC 6455,WebSocketAPI被W3C定为标准。
在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

阅读全文

Material Design 风格的设置页面

设置页面是 Android 开发 APP 几乎必须的一个页面。

Google 在发布 Material Design 的一些兼容包的时候,一直没有解决的一个大问题就是设置页面。让device-2015-02-20-132630人很蛋疼的是,如果你继承 PreferenceActivity 来做设置页面的话,会导致你的这个页面 ActionBar 丢失,完全显示不出来,丑,而且官方貌似一直没有解决,真不知怎么想的。所以一般我们的解决办法就是使用 Activity + Fragment 来保留 ActionBar 又能使用简易的 PreferenceFragment。

阅读全文

Java Servlet完全教程

Servlet 是一些遵从Java Servlet API的Java类,这些Java类可以响应请求。尽管Servlet可以响应任意类型的请求,但是它们使用最广泛的是响应web方面的请求。 Servlet必须部署在Java servlet容器才能使用。虽然很多开发者都使用Java Server Pages(JSP)和Java Server Faces(JSF)等Servlet框架,但是这些技术都要在幕后通过Servlet容器把页面编译为Java Servlet。也就是说,了解Java Servlet技术的基础知识对任何Java web开发者来说是很有用的。

在这个教程里,我们将会通过下面的专题来全面了解Java Servlet技术。

让我们一起来一步步地学习Servlet。

阅读全文

key为null时Kafka会将消息发送给哪个分区?

当你编写kafka Producer时, 会生成KeyedMessage对象。

1
KeyedMessage<K, V> keyedMessage = new KeyedMessage<>(topicName, key, message)

这里的key值可以为空,在这种情况下, kafka会将这个消息发送到哪个分区上呢?依据Kafka官方的文档, 默认的分区类会随机挑选一个分区:

The third property "partitioner.class" defines what class to use to determine which Partition in the Topic the message is to be sent to. This is optional, but for any non-trivial implementation you are going to want to implement a partitioning scheme. More about the implementation of this class later. If you include a value for the key but haven't defined a partitioner.class Kafka will use the default partitioner. If the key is null, then the Producer will assign the message to a random Partition.

但是这句话相当的误导人。

阅读全文

如何做一位与项目团队合作良好的产品经理

原文(繁体中文): 如何做一位與工程團隊合作良好的產品經理, 作者: ihower 台湾。
本文很好的描述了对产品经理的五个误区。

产品经理(Product Manager)是任何创新产品的关键角色,他定义了产品的需求规范,找出产品的价值所在。而一个成功的产品代表结合了好的产品需求规范,以及能够依据这个需求规范实现出来的项目团队。我们说产品经理负责 Building The Right Product,而项目队负责 Building The Product Right,两者缺一不可。由此可知产品经理与项目团队之间的关係有多么重要。

以下是几点是我认为可以帮助产品经理与项目团队的合作,一起打造更好的产品:

阅读全文

如何为ZooKeeper, Kafka 和 Spark 应用编写单元测试

ZooKeeper, Kafka和Spark是当下流行的大数据平台工具之一。这两年得到飞速的发展,国内厂商也越来越多的使用它们。
本站有多篇文章介绍了它们的开发指南, 如:

官方网站提供了很多的代码例子,互联网上也有很多的开发例子,你可以很容易的学习如果编写基于这些平台框架的技术。
但是如何为这些应用编写单元测试呢? 本文提供了几种编写单元测试的技术。

阅读全文