发表于: 2018-09-17 23:15:40
1 410
今天完成的事情
任务九做的差不多了
<?xml version= "1.0" encoding ="UTF-8"?>
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
targetNamespace="http://hello"
name= "helloworld-contribution" >
<component name="ServerComponent">
<implementation.spring location="applicationContext-common.xml"/>
<service name="StudentService">
<interface.java interface="com.jnshu.service.StudentService"/>
<tuscany:binding.rmi uri="rmi://127.0.0.1:1113/StudentService"/>
</service>
<service name="UserService">
<interface.java interface="com.jnshu.service.UserService"/>
<tuscany:binding.rmi uri="rmi://127.0.0.1:1113/UserService"/>
</service>
<service name="JobService">
<interface.java interface="com.jnshu.service.JobService"/>
<tuscany:binding.rmi uri="rmi://127.0.0.1:1113/JobService"/>
</service>
<service name="ComService">
<interface.java interface="com.jnshu.service.ComService"/>
<tuscany:binding.rmi uri="rmi://127.0.0.1:1113/ComService"/>
</service>
<service name="AliOSS">
<interface.java interface="com.jnshu.service.AliOSS"/>
<tuscany:binding.rmi uri="rmi://127.0.0.1:1113/AliOSS"/>
</service>
<service name="QiniuOSS">
<interface.java interface="com.jnshu.service.QiniuOSS"/>
<tuscany:binding.rmi uri="rmi://127.0.0.1:1113/QiniuOSS"/>
</service>
<service name="MessageService">
<interface.java interface="com.jnshu.service.MessageService"/>
<tuscany:binding.rmi uri="rmi://127.0.0.1:1113/MessageService"/>
</service>
<service name="SendCloud">
<interface.java interface="com.jnshu.service.SendCloud"/>
<tuscany:binding.rmi uri="rmi://127.0.0.1:1113/SendCloud"/>
</service>
</component>
</composite>
<!--<import resource="classpath:/tuscany-sca.xml"/>-->
<!--sca, type: 接口类, target: 实现类bean id-->
<sca:service name="StudentService" type="com.jnshu.service.StudentService"
target="StudentService"/>
<sca:service name="UserService" type="com.jnshu.service.UserService"
target="UserService"/>
<sca:service name="JobService" type="com.jnshu.service.JobService"
target="JobService"/>
<sca:service name="ComService" type="com.jnshu.service.ComService"
target="ComService"/>
<sca:service name="AliOSS" type="com.jnshu.service.AliOSS"
target="AliOSS"/>
<sca:service name="QiniuOSS" type="com.jnshu.service.QiniuOSS"
target="QiniuOSS"/>
<sca:service name="MessageService" type="com.jnshu.service.MessageService"
target="MessageService"/>
<sca:service name="SendCloud" type="com.jnshu.service.SendCloud"
target="SendCloud"/>
这样就把他们发布为tuscany服务了
spring需要降级为3.0.5.RELEASE,这时候redis就用不了了,quartz也用不了,所以之前实现的注册中心也用不了
于是客户端也需要改
private static int getRandCode() {
return (int) (Math.random() * 2 + 3);
}
int changeCode(int code) {
return code == 3 ? 4 : 3;
}
private String getServer() throws RemoteException, NotBoundException, MalformedURLException {
int code = getRandCode();
try {
StudentService studentService = (StudentService) Naming.lookup("rmi://127.0.0.1:111" + code + "/StudentService");
studentService = null;
return "rmi://127.0.0.1:111" + code + "/StudentService";
} catch (Exception e) {
code = changeCode(code);
StudentService studentService = (StudentService) Naming.lookup("rmi://127.0.0.1:111" + code + "/StudentService");
studentService = null;
return "rmi://127.0.0.1:111" + code + "/StudentService";
}
}
public StudentService getStudentService() throws RemoteException, NotBoundException, MalformedURLException {
return (StudentService) Naming.lookup(getServer() + "StudentService");
}
public AliOSS getAliOSS() throws RemoteException, NotBoundException, MalformedURLException {
return (AliOSS) Naming.lookup(getServer() + "AliOSS");
}
public ComService getComService() throws RemoteException, NotBoundException, MalformedURLException {
return (ComService) Naming.lookup(getServer() + "ComService");
}
public JobService getJobService() throws RemoteException, NotBoundException, MalformedURLException {
return (JobService) Naming.lookup(getServer() + "JobService");
}
public MessageService getMessageService() throws RemoteException, NotBoundException, MalformedURLException {
return (MessageService) Naming.lookup(getServer() + "MessageService");
}
public QiniuOSS getQiniuOSS() throws RemoteException, NotBoundException, MalformedURLException {
return (QiniuOSS) Naming.lookup(getServer() + "QiniuOSS");
}
public SendCloud getSendCloud() throws RemoteException, NotBoundException, MalformedURLException {
return (SendCloud) Naming.lookup(getServer() + "SendCloud");
}
public UserService getUserService() throws RemoteException, NotBoundException, MalformedURLException {
return (UserService) Naming.lookup(getServer() + "UserService");
}
首先一个获取随机数的方法,取值为3或4
然后写一个方法获得另一个数
然后拼接url,因为我的服务是发布在1113和1114端口的,所以随机数出来就可以知道先去访问哪个url。
这样的话就不需要去
if (){
try {
}catch
}else {
try {
}catch
}
}
这么做了
然后把验证哪个服务可用封装成一个方法,先尝试去第一个Server获取服务,失败的话去第二个
因为只要Server可用,那么这个Server上每一个服务都可用
所以我在获取userService时可以通过获取studentService来验证Server是否可用
就是记得在获取完服务后记得释放内存,不然会造成内存泄露。
运行正常
明天计划的事情
理一下概念,感觉理解还是不够透彻
想买书看,但是又怕没时间,在纠结看电子版还是买实体书。
收获
开始回顾之前任务
mybatis实现原理需要看一下
任务二里面流程研究一下,当时没细看
任务三几个web容器,脚本再看看
任务四tiles框架就这样吧,会用就行,并不想进一个还在用jsp写页面的公司…
任务五三大器回顾一遍,看看如何自定义,cookie session 概念再理一理
任务六缓存,仔细研究一下,多研究redis,感觉很强大
任务七调api,整理一遍逻辑
任务八任务九,概念全部再看看,感觉还是不够透彻
然后准备复盘相关。
评论