发表于: 2017-12-20 11:29:27

1 676


今天完成的事情:1.Service 挂掉,不影响正常使用

                                2.把server和client都上传到服务器,nginx负载均衡两个client,其中一个client /Service挂掉,不影响正常使用

                                3.深度思考

                                4.任务九

明天计划的事情:完成任务九

遇到的问题:xml配置还有点问题

收获:1.Service 挂掉,不影响正常使用。

  昨天的问题:我有两台server,开启其中一台,然后开启客户端,页面可以出现。然后关闭掉开启的server,开启另一台server,客户端就报错找不到之前那台开启的sever了。这说明当再次请求控制器里的方法时,并不会再次执行getservice了,而是第一次默认的getservice。我用一个笨办法,在每个控制器的方法里都调用getservice,从而每次url请求都会更新getservice里的bean的IP和端口

说说修改后的过程:

 我有一个客户端A,服务端B和服务端C。一开始我是开启B关闭C,然后启动A,出现页面。然后我关闭B开启C,刷新页面,没问题,服务端C的控制台也因为我这次刷新打印出了信息 

        2.把server和client都上传到服务器,nginx负载均衡两个client,其中一个client 挂掉,不影响正常使用

重新弄一遍。把两个server打成jar包放到阿里云,使用nohup java -jar xxxx.jar &运行

tomcat没问题

jetty也没问题

然后nginx负载均衡

。。。

nginx负载均衡不知道怎么回事,老是重复访问,都改成weight=1,终于好了

第一次,登录页面,jetty

第二次,登陆后出现这么多请求,并且状态是未登录。很明显,session没了,这就是之前说的,轮询或权重,会丢失session

改成ip_hash

然后把8080端口关闭,保证web继续运行

重定向不知道怎么回事。每次都是无法找到,多刷新几次才出来

登录

这个client究竟是在用9999服务端还是9998服务端呢

没想到。只能先把两个都关闭了,然后开启其中一个,看看其中一个Service 挂掉,不影响正常使用

当我kill9999端口出现提示,说明client在用9999服务端

都关闭后,页面自然出不来

刚才是9999端口,现在启动9998端口

成功登录,这也就实现了其中一台service挂掉不影响使用

深度思考:1.什么是rmi?为什么要使用rmi框架?

RMI(Remote Method Invocation,远程方法调用)是用Java在JDK1.1中实现的,它大大增强了Java开发分布式应用的能力。Java作为一种风靡一时的网络开发语言,其巨大的威力就体现在它强大的开发分布式网络应用的能力上,而RMI就是开发百分之百纯Java的网络分布式应用系统的核心解决方案之一。其实它可以被看作是RPC的Java版本。但是传统RPC并不能很好地应用于分布式对象系统。而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。 

以我目前所作的项目,我理解为把项目进一步分离,把数据处理层和页面层分成服务端和客户端,然后配置相同的多个服务端,如果哪一个挂了另一个可以补上,让程序更加健壮

       2.什么是SCA?什么是分布式?分布式有什么优点?

这是啥?任务八中都没接触过,百度看看

sca没看懂,网上信息寥寥

什么是分布式?有什么优点?

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

如上所说,有多个客户端,多个服务端,这样就避免了当项目因为一些原因挂了而没有备胎顶上。应用了rmi,集群,负载均衡概念


开始任务九

之前高明达师兄找我说一起做复盘,跟他了解到:复盘项目师兄们基本都是用Tuscany框架写的。真实项目必须用Tuscany框架。

他说Tuscany的优点是代码自动生成,缺点是这个框架现在外面公司都没用了,12年就停止更新了。

如果要用Tuscany,那么spring版本应该保持差不多的时间才行。这里看成延师兄日报,spring最多用3.05的

先不管,添加依赖,两台server都要添加

<!--https://mvnrepository.com/artifact/org.apache.tuscany.sca/tuscany-base-runtime-->
<dependency>
 <groupId>org.apache.tuscany.sca</groupId>
 <artifactId>tuscany-base-runtime</artifactId>
 <version>2.0.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.tuscany.sca.aggregation/tuscany-binding-rmi-runtime-aggregation -->
<dependency>
 <groupId>org.apache.tuscany.sca.aggregation</groupId>
 <artifactId>tuscany-binding-rmi-runtime-aggregation</artifactId>
 <version>2.0.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.tuscany.sca.aggregation/tuscany-binding-ws-runtime-axis2-aggregation -->
<dependency>
 <groupId>org.apache.tuscany.sca.aggregation</groupId>
 <artifactId>tuscany-binding-ws-runtime-axis2-aggregation</artifactId>
 <version>2.0.1</version>
</dependency>

新建一个以 .composite为后缀的文件

...

我弄了半天,新建的文件都是text,师兄们日报都没这个问题,百度也没什么相关的

最后看到一个,虽然不是composite,不过触类旁通也解决了

http://blog.csdn.net/aaashen/article/details/46740817

修改后不知道在更新些什么东西,等一会

..

配置文件,我要用多个service,启动成功

前提:在要用到的service上用这个注解

启动main方法

cnd查看两个server

配置一个客户端,看看能不能访问成功

客户端只需要把url改成对应的就可以了

...

多次失败后,我查看服务端,发现即使我写的是https,他的实际url还是rmi的,那就都改成rmi吧

空指针

忘记吧spring版本改了,把服务端和客户端的spring jar包都改成3.0.5,再试一下

...卡的有点久,xml配置问题,明天把任务九结束

禅道:http://task.ptteng.com/zentao/task-view-15912.html













禅道:


返回列表 返回列表
评论

    分享到