发表于: 2017-12-08 19:30:58

1 776


今天完成的事情:

1.将service成功分离

分离的话就是对一个项目将Controller,webapp分离出去。

分离出去的就是web服务,用了做客户端。

剩余的有DB,POJO,Service的是service,用来做服务端。

然后需要再服务端添加一个配置文件,用了接收客户端发过来的请求,以做处理。然后再添加一个主方法,启动服务即可。

这个昨天demo里面是有的。

客户端的话,建立方法接口,要和服务器上的一样,这样才能正常调用到。

再加个配置文件,来调用service中的方法

方法实现过程:

2.配置两个service,将端口号设置成不一样的,模拟WEB随机访问service的效果。

启动两个service,不同的端口号。然后客户端去访问:

两个service启动以后,在需要调用的方法中我加入了两个输出语句来判断客户端究竟调用了哪一个service,然后使用其中的方法。

在客户端,用一个随机数来进行逻辑判断,使其随机调用不同的随机数。

上图一共访问页面3次,调用1111端口的service2次,2222端口的service1次。

3.然后通过异常判断,解决一台service断掉以后,程序仍然可以正常运行。

挂掉使用双重判断,利用try...catch的功能。

在调用try里面的service是挂掉以后,抛出异常,在异常中调用灵位一个service。这样就可以保证出现异常,程序也会正常运行的效果。

逻辑代码:

关闭第一台service服务器:

然后再刷新三次页面:

明天计划的事情:
加快速度做任务九。
遇到的问题:
1.首先成功加了两个service,但由于使用自动注入,导致找不到正确的service。
解决的话,通过实例化spring配置文件,然后通过getBean来得到我们需要的service
2.在添加判断的时候,本来想直接加到实例化bean上面,但加上以后,得到的service就会成为局部变量,不能使用方法,所以最终是选择了一个方法,对他进行了判断,然后进行分离。
收获:
1.什么是rmi?为什么要使用rmi框架?
(1)Java RMI(Remote Method Invocation)
Java的远程方法调用是Java所特有的分布式计算技术,它允许运行在一个Java虚拟机上的对象调用运行在另一个Java虚拟机上的对象的方法,从而使Java编程人员可以方便地在网络环境中作分布式计算。面向对象设计要求每个任务由最适合该任务的对象执行,RMI将这个概念更深入了一步,使任务可以在最适合该任务的机器上完成。 RMI定义了一组远程接口,可以用于生成远程对象。客户机可以象调用本地对象的方法一样用相同的语法调用远程对象。RMI API提供的类和方法可以处理所有访问远程方法的基础通信和参数引用要求的串行化。   
(2)使用RMI开发步骤: 
1、定义一个远程接口(远程接口必须继承接口,每个方法必须抛出远程异常,方法参数和方法返回值都必须是可序列化的) 
2、实现远程接口 
3、定义使用远程对象的客户程序   
4、产生远程访问对象的桩和框   
5、注册远程对象   
6、运行服务器和客户程序
(3)RMI框架
RMI 框架的基本原理大概如下图,应用了代理模式来封装了本地存根与真实的远程对象进行通信的细节。
(4)RMI的应用
其中IService接口用于声明服务器端必须提供的服务(即service()方法),ServiceImpl类是具体的服务实现类,而Server类是最终负责注册服务器远程对象,以便在服务器端存在骨架代理对象来对客户端的请求提供处理和响应。
2.什么是SCA?什么是分布式?分布式有什么优点?
(1)SCA
SCA (Service Component Architecture) 是一个开发SOA(Service-Oriented Architecture)面向服务应用的简单模型规范,它描述用于使用SOA构建应用程序和系统的模型。它可简化使用SOA进行的应用程序开发和实现工作。
(2)分布式
分布式计算(英语:Distributed computing),又译为分散式运算。这个研究领域,主要研究分布式系统(Distributed system)如何进行计算。分布式系统是一组电脑(computer),通过网络相互链接传递消息与通信后并协调它们的行为而形成的系统。组件之间彼此进行交互以实现一个共同的目标。把需要进行大量计算的工程数据分区成小块,由多台计算机分别计算,再上传运算结果后,将结果统一合并得出数据结论的科学。

通俗易懂的解释了下分布式

https://www.cnblogs.com/yzlpersonal/p/5121065.html

(3)分布式的优点

1)可以将分布在各处的资源综合利用。而这种利用对用户而言是透明的。

2)可以将负载由单个节点转移到多个,从而提高效率。

3)分布式技术可以避免由于单个节点失效而使整个系统崩溃的危险

3.为什么要把web和service分离?应用了哪些概念?

(1)分离的好处

1)安全性

 数据库服务器可以只对WEB服务器提供服务,不至于暴露在互联网中。

将网络嗅探,暴力破解的可能性降到最低。

2)处理效率更高

数据库服务器可以只提供数据检索服务而不必处理其它服务。

且数据库服务器不需要外网,只在内网为WEB服务器提供数据查询服务即可。

WEB服务器可以只处理WEB请求,不处理数据库操作,可以更好的利用带宽资源

(2)分离就是关于架构的事。所以使用到的有RMI和SCA。


返回列表 返回列表
评论

    分享到