Java_分布式java应用:基础与实践

来源:互联网 发布:阿里云电话号码 编辑:程序博客网 时间:2024/05/20 23:55

1.1.  基于 Java 自身技术实现消息方式的系统间通讯

基于 java 自身包实现消息方式的系统间通讯的方式有:TCP/IP+BIOTCP/IP+NIOUDP/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 的包进行了分析,关于通信协议方面的知识在本书中并没有进行讲解,请读者们参阅相关的通信协议的书籍。

原创粉丝点击