发表于: 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
D9HLF8U53PSL[Y6.png)
禅道:
评论