《Java分布式学习资料:分布复习大纲.docx》由会员分享,可在线阅读,更多相关《Java分布式学习资料:分布复习大纲.docx(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、复习大纲以林昊的分布式Java应用基础与实践,电子工业出版社一书为基础。根据每一章前 面的图提衣携领地复习每一章,即先根据图熟悉本章讲了几个问题,每个问题又分为那几个 方面,每个方面的解决方法是什么。1、熟悉TCP/IP+BIO、TCP/IP+NIO、UDP/IP+BIO、UDP/IP+NIO实现基于消息方式实现系统间 通信的主要过程(步骤)。答:TCP/IP+BIO:Java中可基于Socket和ServerSocket实现TCP/IP+BI0的分布式系统间通信。其中,Socket 用于连接和网络I/O的操作,ServerSocket用于实现服务器端端口的监听及Socket对 象的获取。TC
2、P/IP+BI0实现基于消息方式实现系统间通信的主要过程是:客户端:创立连接Socket socket 二 new Socket (目标 IP,目标端口);(2)创立读取服务器端返回流的BufferReaderBufferReaderin=newBufferReader(newInputStreamReader(socket. getlnputStream();(3)创立向服务器写入流的PrinterWriterPrinterWriter out = new PrinterWriter(socket. getOututStreamO, true);(4)像服务器端发送字符串Out. print
3、in(消息内容”);(5)阻塞读取服务器的返回信息。该阻塞过程会持续到服务器返回信息或网络异常为止。 In.readline();服务器端核心代码:(1)创立本地指定端口的监听ServerSocket ss = new ServerSocket (监听端口)(2)接受客户端建连接请求Socket socket = ss. accept ();2、熟悉WebService调用过程。答:WebService是一种跨语言的系统间交互标准,服务端以HTTP方式提供服务,该服务采 用WSDL(Web Service Description Language)描述。WSDL文件描述服务使用的协议、 期望的
4、参数、返回的参数格式等。调用端通过SOAP (Simple Object Access Protocol) 方式进行交互。WebService调用的具体过程是:首先把服务器端的服务描述成WSDL文件,并把该WSDL 文件放入HTTP服务器,用Java辅助工具根据WSDL文件生成客户端stub代码。Stub代 码的作用是把产生的对象请求信息封装为标准的SOAP格式数据,并发送到服务器端。服 务器端在收到SOAP格式数据时进行转化,反射调用的Java类。3 .熟悉Java Collection的基本数据类型,重点掌握使用(对象建立、元素插入、删除、 遍历等)。重点掌握Set (两种)和Map的遍历
5、方法(Map类的迭代器可采用哪两类方式访 问)。答:Map是重要数据集,提供了数据的插入、删除、索引、查找、遍历等数据访问功能。Map 类通常采用两类迭代器访问Map类,一种是keySet, 一种是errySet,例如代码如下:String tmpkey = String, format (z/%dz,, index);if(hashmapTest. containsKey(tmpkey) System. out. printin (/zfound the key) ;else System, out. printin (,zNot found the key) ;Iterator ite;i
6、te = hashmapTest. keySet(). iterator();while (ite. hasNext ()String tempkey =(String)ite. next();System, out. printin (,zKey + tempkey + value :+hashmapTest. get(tempkey) ;ite = hashmapTest. entrySet(). iterator();while (ite. hasNext ()Map. Entry entry = (Map. Entry) ite. next ();String key = entry.
7、 getKey ();Double value = entry. getValueO ;System. out. println(,zKey + key + value : + value) ;4 .熟悉 Java 的 Concurrent 数据类型,例如,ArrayList 和 CopyOnWriteArrayList 应用的 主要不同是什么。ArrayList和CopyOnWriteArrayList都是数据集类型,ArrayList是通常的数据集合,而 CopyOnWriteArrayList是并发的数据集合。二者的不同表达在,(1)二者的基类不同,ArrayList的基类是java.
8、util. ArrayList;CopyOnWriteArrayList 的基类是 java. util, concurrent. CopyOnWriteArrayList;(2)二者支持的数据操作类型不同,ArrayList是单线程操作,而CopyOnWriteArrayList 支持多线程操作。(3)二者的性能在小规模数据,二者的性能接近,随着数据规模的增大, CopyOnWriteArrayList 的性能逐渐优于 ArrayList。5 .序列化和反序列化的作用是什么,以及二者的主要实现步骤是怎样的。答:分布式系统传送的数据类型很多,包括音频、视频、文字、图像等,这些不同类型的数 据在
9、网络中传输时都要进行序列化和饭序列化操作。序列化操作把要在网络系统传送的 数据序列化为二进制流,反序列化那么把二进制数据反序列化为原数据。序列化的常用方法:(1) 创立一个字节数组输出流ByteArrayOutputStream output = new ByteArrayOutputStreamO;(2)把字节数组包装为ObjectOutputStreamObjectOutputStream objectOut = new ObjectOutputStream (output);(3)把对象写入 ObjectOutputStreamobjectOut. writeObject (序列化数据)
10、(4)关闭数据objectOut. close ();output, close ();反序列化的常用方法:(2) 创立一个字节数组输入流ByteArrayInutStream input = new ByteArraylnutStream ();(2)把字节数组包装为ObjectlnputStreamObjectInputStream objecln = new ObjectInputStream (input);(3)从ObjectOutputStream对象读出数据objecln. readObject (序列化数据)(4)关闭数据objectin. close ();input. cl
11、oseO ;.复习第6章、第7章首页的内容结构图,对防止故障使系统具有高可用性(第6章)、保 证分布式系统缓存一致性(第7章)等问题。6 .什么是水平伸缩、垂直伸缩,常见的水平伸缩、垂直伸缩架构是什么。7 .水平伸缩架构下,负载均衡机采用什么样的策略把把用户请求转发到业务处理机。书p229230的六种方法1 .随机选择2. hash选择3. round jobin选择4.按权重选择5.按负载选择6 .按连接选择.资源消耗过多是影响分布式系统性能瓶颈的原因之一,分布式系统的资源消耗主要表达 在那些方面。资源消耗过多是影响分布式系统包括CPU,文件10,网络10,内存方面。9 . Java的远程调用方法有哪些。RMI