发表于: 2018-10-14 16:22:51
1 452
今天完成的事情
测试使用rmi服务的延迟
总共循环查询了10000次。
在远程服务端的本地执行如下代码
最终耗时8873ms
在自己电脑上以rmi方式调用另一个jvm中的远程StudentService对象
最终耗时16102ms , 大约是直接访问方式的两倍时间。此过程tcp连接一直在自己本机内部 , 不会受到外部网络因素的干扰。
以rmi方式调用远程阿里云服务器中远程StudentService对象
此时需要通过tcp协议远程访问阿里云服务器。理论上经过外部网络传输 , 应该耗时更长才是。但实际情况是 , 经过大半天的折腾 , 依然无法实现在阿里云启动远程服务端 , 在本机上使用本地客户端调用到远程对象。
1. 也手动指定了stub对象的端口 , 并加入防火墙白名单
2. 也使用了System.setProperty("java.rmi.server.hostname", "47.100.183.26");来设置使用外网ip地址
但就是不行 , 各种方式都尝试了 , 我选择放弃。
学习SOA的概念
SOA这个词汇有二义性——Service-Oriented Architecture
1. 一层含义是指面向服务架构(Service Oriented Architecture)这种架构风格;
2. 另一层含义是指多年前IBM/SAP/Dell/Oracle等公司搞的SOA解决方案,例如BPEL + SCA + SDO这套东西,以及Enterprise Service Bus(ESB)、WebSphere Process Server(WPS)、WebSphere Integration Developer(WID)、WebSphere Message Broker(WMB)等产品。
你可以认为前者是一种Style,后者是一套Specification + Implementation。微服务可以被视作是SOA架构风格的另外一种实现方式。所以其实我们要对比的是SOA和以前IBM/Oracle等公司搞的SOA的区别。
SOA在java领域具体方案
SOA在Java领域有两套标准:
1. 一个是SUN推出的JBI(没有得到BEA和IBM的承认),
2. 另外一个是:IBM和BEA等公司推出的SCA和SDO标准。
JBI之关注Java组件只处理Java组件的集成。
SCA实现了业务组件和传输协议的分离,可以处理各种平台组件的集成。
SDO可以的自由读取各种不同数据源的数据。
另外,BPEL本质上是一种集成Web Service服务的语言,也可以算作为SOA的一部分。
学习SCA的概念
SCA是对目前组件编程的进一步升华,其目标是让服务组件能自由绑定各种传输协议,集成其他的组建与服务。SCA与传统的业务组件最大区别在于SCA实现了两个功能:
1. 一是组件和传输协议的分离,
2. 二是接口和实现语言的分离。
SCA的本质是一种软件架构思想,SCA架构是独立于程序语言的SOA架构。SCA的目标是创建一个可集成服务组件的运行环境。
关于apache Tuscany
看官网说已经停止更新了 , 应该是有了更新的解决方案 , 比如springcloud ? 今天简单添加了依赖和配置 , 但还没调试成功。明天再做吧。
明天计划的事情
学完Tuscany , 做个小例子 , 然后使用spring+Tuscany把原来的项目改造一下。争取完成任务九。
遇到的问题
就是把spring rmi部署在阿里云 , 在本地无论如何也无法成功访问。放弃了
收获
看关于soa和sca的介绍 , 一个个缩写的大写英文字母都代表着过去曾经辉煌过的各种技术啊 , 现在的技术不久也会过时 , 要持续学习啊。
评论