SOA
Ydoing
这个作者很懒,什么都没留下…
展开
-
SOA研究(1)-从NIO开始
最近在看dubbo源码,觉得dubbo还是设计很优秀。有个想法模拟dubbo去写一个SOA框架。编写SOA框架,首先要解决底层传输问题,虽然dubbo默认是用netty传输,但是也是基于NIO。所以我自己写了NIO编程实例,开始研究SOA之路。实现功能很简单,client发送消息给server,server接收后又发消息给client。server端:public class NIOServer原创 2016-05-31 20:34:25 · 641 阅读 · 0 评论 -
SOA研究(2)-第一个RPC例子
我们还是用NIO通信,client建立连接后不断向server发送对象Invocation。需要远端调用的方法,这里演示发送“foo”参数,服务端传回来”Fello foo”.public class HelloServiceImpl implements HelloService { public String hello(String name) { return "H原创 2016-06-04 14:20:13 · 875 阅读 · 0 评论 -
SOA研究(3)-RPC的第二次尝试
在之前的文章里面,我们实现了简单的RPC调用,通过不断发消息,然后接收消息,显然它还不算真正的RPC调用。设计思路这次我们对它进行改进,模仿dubbo,定义Invoker类,它代表可以执行的实体。定义export方法,导出需要暴露的接口。定义refer方法,引用需要的远端接口。NIO编程难点NIO编程的难点在于它是非阻塞的,所以结果不是立即返回的,一般可以认为是异步返回的(虽然阻塞和异步有区别,但是原创 2016-06-04 15:38:29 · 630 阅读 · 0 评论 -
SOA如何设计传输模块(一)-接口的设计
SOA都离不开网络,现在的框架都集成了自己网络传输模块。但如果要自己写框架的时候,就需要思考如何设计了?出于这种好奇,尝试一下自己设计。首先要考虑远端传输需要满足什么,一般有哪些抽象实体,一般传输过程是怎么样的。既然面向对象思想是面向接口编程。又需要设计怎么样的接口来满足日后的扩展。这些都是我们需要思考的问题。基于性能考虑,都用NIO网络编程。一般都有Channel,所以还需要设计Channel接口原创 2016-06-26 09:39:12 · 1769 阅读 · 0 评论 -
SOA如何设计传输模块(二)-Netty的实现
上一遍介绍了设计传输模时接口的定义(http://blog.csdn.net/csujiangyu/article/details/51761479)这里用了主流的框架netty来实现。首先设计NettyServer,主要功能是绑定端口,监听连接。public class NettyServer extends AbstractServer { private ServerBootstrap原创 2016-06-26 10:06:42 · 1145 阅读 · 0 评论 -
SOA研究-用zookeeper实现服务的注册和发现
注册中心一般具有以下功能:注册服务订阅服务失败重新注册和订阅本地缓存服务信息列表大体过程如下:1.服务提供者暴露服务后向注册中心注册,如果多个注册中心的话,需要分别注册到多个注册中心;注册信息包含自己主机名,端口号,服务名,其他额外参数等。本地一般用map缓存已经注册的服务,当然也可以用文件保存到本地,当网络抖动等原因重新恢复连接Zookeeper的时候,需要从缓存取出来重新注册。2.原创 2016-07-18 19:47:11 · 6038 阅读 · 1 评论 -
dubbo间歇性超时问题解决
之前dubbo每隔十分钟左右会出现以下超时情况Caused by: com.alibaba.dubbo.remoting.TimeoutException: Waiting server-side response timeout by scan timer. start time: 2016-07-20 16:27:34.873, end time: 2016-07-20 16:27:39.895原创 2016-07-21 17:00:53 · 29404 阅读 · 6 评论