发表于: 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,整理一遍逻辑

任务八任务九,概念全部再看看,感觉还是不够透彻

然后准备复盘相关。




返回列表 返回列表
评论

    分享到