dubbo是一个分布式的服务架构,可直接用于生产环境作为SOA(粗粒度、开放式、松耦合的服务结构)服务框架
为何要使用该框架
在大规模服务化之前,是通过RMI或者Hessian等工具实现分布式,暴露远程服务;通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡。 一旦服务越来越多,服务URL配置显得非常困难。此时需要一个服务注册中心,动态的注册和发现服务,实现负载均衡,降低对F5硬件负载均衡的依赖,减少部 分成本。服务量大,容量问题就出来了,这个服务需要多少机器支撑?为了解决这个问题,将服务每天的调用量,响应时间统计出来。方便动态调整权重。
3、分布式跨系统怎么调用?
普通的分布式:
提供方:写Service封装持久层形成业务层,写Controller提供Http接口;
调用方:HttpClient调接口拿数据解析Json数据。
dubbo对应的方案:
提供方:写Service接口与业务,@Service注解暴露服务;
(dubbo启动的时候,扫描@service注解的类,把接口信息记录到zookeeper,供调用者查找使用)
调用方:@reference注解对象引入,像本地的bean一样调用;
相关实例http://dubbo.io/User+Guide-zh.htm
理论上Dubbo可以只依赖JDK1.5,不依赖于任何三方库运行,只需配置使用JDK相关实现策略