Java_分布式java应用:基础与实践
来源:互联网 发布:阿里云电话号码 编辑:程序博客网 时间:2024/05/20 23:55
1.1. 基于 Java 自身技术实现消息方式的系统间通讯
基于 java 自身包实现消息方式的系统间通讯的方式有:TCP/IP+BIO、TCP/IP+NIO、UDP/IP+BIO 以及 UDP/IP+NIO,分别看看基于 java 自身包如何实现这四种方式的系统间通讯。
BIO 方式使得整个处理过程和连接是绑定的,只要连接建立,无论客户端是否有消息发送,都要进行等待处理,一定程度上浪费了服务器端的硬件资源,因此就有了NIO 方式。
Java 对于 NIO 方式的支持是通过 Channel和 Selector 方式来实现,采用的方法为向 Channel注册感兴趣的事件,然后通过 Selector 来获取到发生了事件的 key,如发生了相应的事件,则进行相应的处理,否则则不做任何处理,是典型的Reactor 模式,按照这样的方式,就不用像 BIO 方式一样,即使在没有消息的情况下也需要占据一个线程来阻塞读取消息,从而提升服务器的使用效率, 为实现 TCP/IP+NIO 方式的系统间通讯, Java 提供了 SocketChannel和 ServerSocketChannel两个关键的类,网络 IO 的操作则改为通过ByteBuffer 来实现,具体的基于 java 实现TCP/IP+NIO 方式的通讯的方法如下所示。
Java 对 UDP/IP方式的网络数据传输同样采用Socket 机制的抽象,只是 UDP/IP下的 Socket没有了建立连接的要求,由于 UDP/IP为无连接的,因此无法进行双向的通讯,这也就要求如果要双向通讯的话,必须两端都成为 UDP Server。
首先是程序方面,必须保证编写的程序是高性能的,而要做到这一点,就必须对 Java
程序的运行环境,也就是 JVM 有充分的了解,包括 JVM 对内存的管理方式、JVM 对线程的调度机制、JVM 的运行机制等,只有在对 JVM 有充分的掌握的基础上,除了 JVM 外,还需要对常用的 JDK 包,所使用的JDK 框架的实现方法有充分的掌握,这样才能保证能够根据合适的场景使用相应的类,或相应的框架,对于分布式应用而言,还涉及到了通信协议、序列化、反射、多线程、并发控制等知识的掌握,本书对编写高性能分布式 Java 应用所需的技术进行了详细的阐述,在本书的第三章中对 JVM 的知识进行了分析,在第四章中对构建分布式 Java 应用常用到的 JDK 的包进行了分析,关于通信协议方面的知识在本书中并没有进行讲解,请读者们参阅相关的通信协议的书籍。
- Java_分布式java应用:基础与实践
- 分布式Java应用:基础与实践
- 分布式JAVA应用基础与实践买到了
- 《分布式Java应用:基础与实践》扩展阅读链接
- 《分布式java应用:基础与实践》笔记3
- 读书总结——《分布式java应用 基础与实践》
- 分布式java应用-基础与实践(林昊著)下载地址
- 分布式JAVA应用中设计到的知识点-转自《分布式JAVA应用:基础与实践》
- [课本划重点]分布式java应用基础和实践-第四章 分布式java应用与sun jdk类库(1)
- tcp nio 服务端、客户端例子--参考《分布式Java应用:基础与实践》
- 《分布式JAVA应用 基础与实践》 第六章 构建高可用的系统
- 《分布式JAVA应用 基础与实践》 第七章 构建可伸缩的系统
- 《分布式JAVA应用 基础与实践》 第七章 构建可伸缩的系统
- 《分布式JAVA应用 基础与实践》 第七章 构建可伸缩的系统
- 《分布式JAVA应用 基础与实践》 第六章 构建高可用的系统
- 《分布式JAVA应用 基础与实践》 第七章 构建可伸缩的系统
- 《分布式JAVA应用 基础与实践》 第六章 构建高可用的系统
- Java分布式应用基础
- 我的感受——努力学java
- Java_BIO/NIO/AIO
- C语言 多维指针注意问题
- C语言获取系统环境变量
- SourceForge PhpEclipse安装过程
- Java_分布式java应用:基础与实践
- java mail 实践(简介)
- Java_PicoContainer
- IP TCP UDP 结构
- Java_PicoContainer
- 53的电话簿快速查找界面
- two-factor authentication 和SecurID
- Ubutu10.10 安装SAMBA
- Android Building System 分析