《Java8开发指南》翻译邀请

6月并发网组织大家翻译《Java8开发指南》。有兴趣的同学可以通过评论领取,翻译完成之后再并发网直接提交审核。

一次领取一篇,翻译完成之后可以继续领取,领取文章后最好在一个星期内翻译完成,如果不能完成翻译请通过评论告知,以便于其他人可以继续翻译。

阅读全文

《Redis官方文档》发布和订阅

原文链接

发布/订阅(Pub/Sub)

SUBSCRIBE、UNSUBSCRIBE 和 PUBLISH 这三个命令实现了发布/订阅消息模式(引用自维基百科),发送者(发布者)并不是直接发送它们的消息给指定的接收者(订阅者),而是将消息发布到特定的消息通道,并且不需要知道订阅者(如果有的话)的任何信息。订阅者可以订阅一个或多个感兴趣的消息通道,同时也只会收到他们感兴趣通道的信息,而不用去关心是谁发布的。这种发布者与订阅者的解耦,使其具备更强的扩展性并得到一个更加动态的网络拓扑。

阅读全文

《Netty in Action》中文版—第五章 ByteBuf

本文翻译自《Netty in Action》第五章  

作者:Norman Maurer, Marvin Allen Wolfthal   译者:桃小胖

本章包含

  • ByteBuf—Netty的数据容器
  • API详情
  • 用例
  • 内存分配

正如我们前面提到的,网络数据的基础单位总是字节。Java NIO用ByteBuffer做它的字节容器,但是这个类使用起来过于复杂,有时候还非常麻烦。

Netty用ByteBuf替代了ByteBuffer,这个强大的实现突破了JDK API的限制,为网络开发者提供了更好的API。

在这一章我们会展现同ByteBuffer相比,ByteBuf的出色功能和灵活性。这也让你从大体上更好地理解Netty数据处理的方式,并且为第六章ChannelPipeline和ChannelHandler的讨论做好准备。
阅读全文

《Netty in Action》中文版—第四章 传输

本文翻译自《Netty in Action》第四章  

作者:Norman Maurer, Marvin Allen Wolfthal   译者:桃小胖

 

本章包含

  • OIO—阻塞传输
  • NIO—异步传输
  • 本地传输—JVM内部的异步通信
  • 嵌入式传输—测试你的ChannelHandler

经过一个网络的数据通常是同一种类型:字节。这些数据是如何移动的基本上取决于被我们称之为网络传输的概念,这个概念帮我们抽象了底层的数据传输机制。用户不关心细节,他们只关心他们的字节数据被可靠地传送和接收。

阅读全文

数据库必会必知 之 SQL四种语言:DDL DML DCL TCL

作者:泥瓦匠 原文链接:传送门
今天群里面讨论,DDL 还是 DML,我这种小白还是总结下他们的区别吧。

阅读全文

《Netty in Action》中文版—第三章 Netty的组件和设计

本文翻译自《Netty in Action》第三章  

作者:Norman Maurer, Marvin Allen Wolfthal   译者:桃小胖

本章包含

  • Netty的技术和架构方面
  • ChannelEventLoopChannelFuture
  • ChannelHandlerChannelPipeline
  • Bootstrapping

在第一章我们总结了Java高效能网络编程的历史和技术基础,这为概述Netty的核心概念和构造模块提供了一个背景。

在第二章我们把讨论范围扩展到应用开发。通过创建一个简单的客户端和服务器你学到了bootstrapping,获得了一些亲自实践核心ChannelHandler API的经验。与此同时,你也验证了你的开发工具是可以正常工作的。

以这些内容为基础,在本书剩下的部分,我们会从两个不同但是密切联系的角度来研究Netty:做为一个类库和做为一个框架。这两个方面对用如何Netty开发高效,可重用,可维护的代码都很关键。

从一个高层次的角度来看,Netty解决了两个相应领域的问题,我们可以大体上称其为技术上的(technical)和结构上的(architectural)。首先,它的异步和事件驱动基于Java NIO实现,在高负载下能保证最好的应用性能和可扩展性。第二,Netty包含了一系列用来解耦应用逻辑和网络层的设计模式,简化了开发的同时最大限度地提升了可测试性,模块化和可重用性。

随着我们更具体地学习Netty的单个组件,我们将会密切关注这些组件是如何配合来支持结构的最佳实践(best practices)。遵循同样的原则,我们就能收获Netty提供的所有好处。在这个目标的指引下,在这一章,我们会回顾下到目前为止我们已经介绍过的主要概念和组件。

3.1 ChannelEventLoopChannelFuture

下面几个小节会对我们讨论的ChannelEventLoopChannelFuture类增加一些细节,它们合起来可以被看成是Netty的网络抽象(Networking abstraction)

  • ChannelSockets
  • EventLoop—控制流,多线程,并发
  • ChannelFuture—异步通知

阅读全文

InterruptedException 和 interrupting threads 的一些说明

原文链接 作者:  译者:simonwang

如果InterruptedException没有检测到异常,可能没人会注意到它,这会导致很多bug不被发现。而检测到这个异常的人大多数都是草率地、不恰当地处理着它。

阅读全文

《React官方文档》之教程Tutorial

原文链接 译者:jella77

教程Tutorial

 我们建立一个简单但实际的评论框,Disqus, LiveFyre或Facebook可以提供实时评论,评论框可以放在一个博客中。

我们提供:

  • 可以看到所有评论的视图
  • 提交评论的表单
  • 通过Hooks可以自定义后端

阅读全文

事务必会必知

作者:泥瓦匠 原文链接:传送门

事务,大家所熟悉的事务(Transaction),基本上会就往Spring事务靠。其实Spring事务管理基于底层数据库本身的事务处理机制。数据库事务的基础,是掌握Spring事务管理的基础。这篇总结下数据库事务。 阅读全文

我们的垃圾收集器

原文链接

(译者注:这篇博文发表在2008年,虽然年代有些久远,但是文中说到的垃圾收集器我们至今还在使用,作者也谈到了对于G1垃圾收集器的期望。)

最近我在白板上给客户化了一个图表,他们似乎对这个有点兴趣,所以我想我可以重画一遍来给你们消遣。

Collectors1

阅读全文

《Netty in Action》中文版—第二章 你的第一个Netty应用

本文翻译自《Netty in Action》第二章  

作者:Norman Maurer, Marvin Allen Wolfthal   译者:桃小胖

本章包含:

  • 创建开发环境
  • 编写一个Echo服务器和客户端
  • 编译测试应用

在这一章我们将会向你展示如何创建一个基于Netty的客户端和服务器。这两个应用很简单—客户端送消息到服务器,服务器再将该消息送回客户端—不过,基于两个原因,这个练习很重要。

首先,它提供了一个创建和验证开发工具及环境的试验台。如果你打算用书里的示例代码来准备你自己的开发,那么这一点很重要。

第二,你能积累一些亲手实践前一个章节提到的Netty关键部分的经验:用ChannelHandlers来创建应用逻辑。这能帮你为从第三章开始的Netty API深入学习做好准备。
阅读全文

哪个线程执行 CompletableFuture’s tasks 和 callbacks?

原文链接  作者:Tomasz Nurkiewicz   译者:simonwang

CompletableFuture尽管在2014年的三月随着Java8被提出来,但它现在仍然是一种相对较新潮的概念。但也许这个类不为人所熟知是好事,因为它很容易被滥用,特别是涉及到使用线程和线程池的时候。而这篇文章的目的就是要描述线程是怎样使用CompletableFuture的。

阅读全文

Java – 获取类中特定数据类型的字段

原文链接作者: 译者:王乐(2270134103@qq.com)

一些Java反射API的例子。

阅读全文

《React官方文档》之Getting Started

原文链接  译者:jella77

JSFiddle

开始React最简单的方法就是遵循JSFiddle的Hello World例子:

ExecutorService-10个要诀和技巧

原文链接 作者:Tomasz Nurkiewicz    译者:simonwang

ExecutorService抽象概念自Java5就已经提出来了,现在是2014年。顺便提醒一下:Java5和Java6都已不被支持,Java7在半年内也将会这样。我提出这个的原因是许多Java程序员仍然不能完全明白ExecutorService到底是怎样工作的。还有很多地方要去学习,今天我会分享一些很少人知道的特性和实践。然而这篇文章仍然是面向中等程序员的,没什么特别高级的地方。

阅读全文

《Netty in Action》中文版—第一章 Netty—异步和事件驱动

本文翻译自《Netty in Action》第一章  

作者:Norman Maurer, Marvin Allen Wolfthal   译者:桃小胖

本章包含

  • Java的网络编程
  • Netty初探
  • Netty的核心组件

假设你即将要为一个重要的大公司开发一个新的关键任务的应用程序。在第一次会议上,你了解到这个系统必须能无性能损耗地扩展到支持15万个并发用户。这时所有的人都看着你,你会说什么?
阅读全文

《Netty in Action》中文版 — 第一部分前言

本文翻译自《Netty in Action》第一部分前言 

作者:Norman Maurer, Marvin Allen Wolfthal    译者:桃小胖

Netty是一个用于创建高性能网络应用的成熟框架。在本书的第一部分,我们将深入探讨Netty的性能,同时展现以下三个要点:

  • 你不必成为一个网络专家,才能用Netty搭建应用
  • 使用Netty比直接使用底层的Java APIs要简单的多
  • Netty能促成良好的设计原则,比如说解耦你的应用层逻辑和网络层

阅读全文

《Netty in Action》中文版—目录

本文翻译自《Netty in Action》目录  作者:Norman Maurer, Marvin Allen Wolfthal  译者:桃小胖

第一部分 NETTY的概念和结构

阅读全文

《Spark官方文档》Spark Streaming编程指南

spark-1.6.1 [原文地址]

Spark Streaming编程指南

概览

 

Spark Streaming是对核心Spark API的一个扩展,它能够实现对实时数据流的流式处理,并具有很好的可扩展性、高吞吐量和容错性。Spark Streaming支持从多种数据源提取数据,如:Kafka、Flume、Twitter、ZeroMQ、Kinesis以及TCP套接字,并且可以提供一些高级API来表达复杂的处理算法,如:map、reduce、join和window等。最后,Spark Streaming支持将处理完的数据推送到文件系统、数据库或者实时仪表盘中展示。实际上,你完全可以将Spark的机器学习(machine learning) 和 图计算(graph processing)的算法应用于Spark Streaming的数据流当中。

spark streaming-arch 阅读全文

用SLF4J和Guidce记录日志

原文链接  作者:Michael Glauche

又一次对java.util.logger无语的时候,我在想如何用SLF4J logger取代它。尽管Guice针对java.util.logger提供一个非常好的内部绑定,slf4j提供一个更好的语法。永远是细节中的魔鬼…如果你想你的logger与当前类一起初始化,你不能简单地注入logger。但是,在Guice中有一个好教程(http://code.google.com/p/google-guice/wiki/CustomInjections):关于注入log4j looger。SLF4J也是这样工作的。

阅读全文

return top