发表于: 2017-02-18 23:35:53
2 1831
一、今天完成的任务
1.学习Redies安装windows和Ubuntu版Redies
下载地址:https://github.com/MSOpenTech/redis/releases
Ubuntu:
添加jar包:
参考:http://blog.csdn.net/evankaka/article/details/50396325
http://layou.iteye.com/blog/2273980
2.看了一下《网络教程》
调用对象方法时捕获RemoteException异常
所有的Java简单类型都可以串行化,非远程Java对象只有实现了java.io.Serializable接口时才可以串行化。实现了Serializable的基本Java类型包括String和Component.
远程对象和本地对象的根本区别:远程对象驻留在不同的虚拟机中。
RMI的目标:允许程序向方法传递参数及返回方法的值。只需要调用远程方法抛出异常
桩:实现了远程对象的接口
服务器端总被认为是远程,而客户端总是被人认为是本地这要站在不同的角度考虑。
Java.rmi.Remote是一个标记接口,没有任何方法唯一目的就是标记远程对象。
public class UnicastRemoteObject extends RemoteServer
提供了很多支持远程的方法。
Naming类:要与运行在服务器上的注册表是对话。
3.完成一个小demo,HelloWorld。
(1)新建一个继承remote
(2)再来一个继承的UnicatstRemoteObject的实现类
(3)然后将实现类的实例注册到RMI的注册表中
(4)最后从注册表中拿到实例
3.Spring集成RMI(好处)
可以将上面的小demo改一下
(1) 新建一个接口,无需继承Remote
(2) 写实现类,无需继承UnicastRemoteObject
(3) 配置注册表的信息(server.xml)
(4) 写一个启动的server的方法
(5) Server端写完在写Client端,先从注册表中拿注册实例的配置文件client.xml
(6) 写一个main方法拿到实例
注:Spring整合了JavaRMI,些接口的时候不需要继承Remote,实现类不用继承UnicastRemoteObject。
参考:http://blog.csdn.net/shirdrn/article/details/6359254
二、收获
1.当集成memcach时可以看到性能的提升,而集成Nginx效果不明显
2.当集成redis的时候因为spring配置文件不在同一个文件夹下,所以报错
将local改为bean:
强制类型转换
三、遇到的问题
Memcache转换成redies还是蒙,等做完任务9后再回头看看。
四、明天计划
- 1.将原有学员系统中Service中拆分出来,变成一个RMI的Service。
- 2.在原来的WEB中调用Service。
- 3.部署两台Service,在WEB中随机访问任意一台Service。
- 4.部署两台WEB,通过Nginx配置两台WEB随机访问,两台WEB可以随机访问两台Service。
评论