Wetts's blog

Stay Hungry, Stay Foolish.

0%

转自:http://ifeve.com/java-nio-channel-to-channel/

Java NIO系列教程(五) 通道之间的数据传输

在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel。

transferFrom()

FileChannel的transferFrom()方法可以将数据从源通道传输到FileChannel中(译者注:这个方法在JDK文档中的解释为将字节从给定的可读取字节通道传输到此通道的文件中)。下面是一个简单的例子:

阅读全文 »

转自:http://ifeve.com/java-nio-scattergather/

Java NIO系列教程(四) Scatter/Gather

Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作。

  • 分散(scatter)从Channel中读取是指在读操作时将读取的数据写入多个buffer中。因此,Channel将从Channel中读取的数据“分散(scatter)”到多个Buffer中。
阅读全文 »

转自:http://ifeve.com/buffers/

Java NIO系列教程(三) Buffer

Java NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。

缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。

阅读全文 »

转自:http://ifeve.com/channels/

Java NIO系列教程(二) Channel

Java NIO的通道类似流,但又有些不同:

  • 既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。
  • 通道可以异步地读写。
  • 通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。
阅读全文 »

  • BeanFactory:Spring的Bean容器最顶层的接口,定义了Ioc容器的基本规范。实现这个接口的Ioc容器都会持有一些BeanDefinition和一个唯一的字符串形式的名字。
  • HierarchicalBeanFactory:HierarchicalBeanFactory继承BeanFactory并扩展使其支持层级结构。getParentBeanFactory()方法或者父级BeanFactory,containsLocalBean(String name)方法查看当前BeanFactory是否包含给定名字的Bean,不会递归想父级查找。
阅读全文 »

对于每个服务而言:

  • 最低限度要跟踪请求响应时间。做好之后,可用开始跟踪错误率及应用程序级的指标。
  • 最低限度要跟踪所有下游服务的健康状态,包括下游调用的响应时间,最好能够跟踪错误率。
  • 标准化如何收集指标以及储存指标。
  • 如果可能的话,以标准的格式将日志记录到一个标准的位置。如果每个服务各自使用不同的方式,聚合会非常痛苦。
阅读全文 »

Cohn在他的原始模型中把自动化测试划分为单元测试、服务测试和用户界面测试三层。

很早之前,就有关于“每台机器(machine)应该有多少个服务”的讨论。在我们继续之前,应该找一个比”机器”更好的术语。在前虚拟化时代,每个运行操作系统的主机与底层物理基础设施之间的映射形式有很多种。因此,我倾向于使用“主机”(host)这个词来做通用的隔离单元,也就是能够运行服务的一个操作系统。如果你直接在物理机上部署,那么一台物理机映射到一台主机。如果你使用了虚拟化,单个物理机会映射到多个独立的主机,并且每个都可用包含一个或者多个服务。

阅读全文 »

数据库分离

跨服务事务

如果一个订单的创建失败了,我们可以捕获失败操作放在一个队列或者日志文件中,之后再尝试对其进行触发。

另一个选择就是拒绝整个操作。在这种情况下,我们需要把系统重置到某种一致的状态。

阅读全文 »