一、序言
现在互联网应用很多,每个应用又以服务的形式提供给其他应用,这样颗粒度比较细,相互影响就会减低,因此提供了很多SOA 的一些RPC的框架,比如:dubbo 、webservice、GRPC、dubbo、commonRPC等,这里先提供一个dubbo 的实例。
二、dubbo 基本工作原理
来源:http://alibaba.github.io/dubbo-doc-static/Home-zh.htm
1.原理图:来自网络
从上图我们可以看出
1:register 注册到服务中心 Registry
2.consumer 消费者在服务中心订阅服务,
3.注册中心将服务信息返回给消费者
4.消费者根据3返回的地址等信息,调用服务
5.monitor 监控双方的调用次数、时间 等情况。
三、场景模拟
场景:A系统提供登录服务,然后B系统依赖A系统登录
1.A提供一个需要暴露接口,这里未了打成jar 方便,会单独放在一个工程
/** * 用户登录接口 * Created by qiqiang on 2015/3/12. */ public interface IUserService { public boolean login(String name,String password); }
2.A 的实现类,在主工程里面
/** * Created by qiqiang on 2015/3/12. */ public class UserServiceImpl implements IUserService{ @Override public boolean login(String name, String password) { if("admin".equals(name) && "123".equals(password)){ return true; } return false; } }
四、配置及测试
1.A主工程 dubbo 配置
<!-- 应用名字 --> <dubbo:application name="user-service"/> <!-- 服务中心用ZK,方便管理。这里用的本地伪集群, --> <dubbo:registry protocol="zookeeper" address=" localhost:2181,localhost:2182,localhost:2183" /> <!-- 本地端口 --> <dubbo:protocol name="dubbo" port="30000"/> <!-- 暴露的接口 --> <dubbo:service interface="crm2.IUserService" ref="userServiceImpl" timeout="10000" version="1.0"/> <!-- 本地实现类 --> <bean id="userServiceImpl" class="com.raycloud.dubbo.service.UserServiceImpl"/>
关于zookeeper 的安装参考:
http://greemranqq.iteye.com/blog/2171449
2.模拟A 工程启动。
public class SpringDubboTest { public static void main(String[] args) throws IOException { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("/dubbo/dubbo-provider.xml"); context.start(); System.in.read(); } }
3.B工程配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!-- 消费者 应用名字,和提供者一样,ZK不好区分 --> <dubbo:application name="consumer-user-service"/> <!-- ZK必须是共享的 --> <dubbo:registry protocol="zookeeper" address=" localhost:2181,localhost:2182,localhost:2183" /> <!-- 刚才的接口 --> <dubbo:service interface="crm2.IUserService" id="userServiceImpl" version="1.0" /> </beans>
4.B工程调用实例
public class DubboTest { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("dubbo-customer.xml"); IUserService service = (IUserService)context.getBean("userServiceImpl"); // 执行远程方法 System.out.println(service.login("admin","123")); } }
关于ZK的监控,要么自己写,要么用网上的插件 都可以的
小结:
1.zk 和 dubbo 的安装直接看官网就行了,这里只是基本代码,还有一些复杂的东西也直接看官网吧。
2.现在RPC 框架比较多,基本能满足大部分要求的,实在不够的可以像当当那样改dubbo->dubbox,或者尝试一下其他版本,当然底层功底好可以自己写,还得看需求。
3.这些东西都是结合一些小的场景写的,有问题请指出,感谢
参考:
http://www.tuicool.com/articles/yma6R3u
duboo 设计的介绍
http://shiyanjun.cn/archives/325.html
相关推荐
这个及其简单 Mybatis负责较为复杂的查询boot-dubbo-service该项目依赖api和boot-dubbo-infrastructure它要实现api约定的接口,另外依赖boot-dubbo-infrastructure对不同数据表的操作以及对事务的操作boot-dubbo-...
dubbo-static-doc是一个dubbo接口的静态文档 dubbo-apidoc是一个dubbo接口的javaAPI文档 昂首阔步 达博| ˈdʌbəʊ |是阿里巴巴提供的分布式框架,提供高性能和透明化的RPC远程服务调用方案,以及SOA服
Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请 ...
dubbo是开源的服务治理framework,用于分布式服务部署
Dubbo视频教程--基础篇--第02节--使用Dubbo对传统工程进行服务化改造
eureka注册和治理controller层的http服务,供前端组合接口数据,gateway负载均衡,zookeeper注册后端服务层,dubbo做底层服务治理,gateway->eureka->api->dubbo->zookeeper->service,例子中gateway为网关服务,core...
互联网架构 SOA(Dubbo)+配置中心(ZK)+消息中间件MQ(RocketMq)+高-Foundation
Dubbo视频教程--基础篇--第01节--使用Dubbo对传统工程进行服务化改造的思路介绍
dawn-dubbo **mybatis:**3.2.7 **spring:**4.1.2.RELEASE **struts2:**2.3.8 **dubbox:**2.8.4(dubbox需要下载源码install到本地仓库) maven仓库
dubbo教学视频-轻量级SOA架构。dubbo教学视频-轻量级SOA架构。dubbo教学视频-轻量级SOA架构。dubbo教学视频-轻量级SOA架构
SOA Dubbo视频教程,包含Zookeeper实战课程,文件内含百度云下载链接,请自行下载观看,链接失效时可联系邮箱补发,谢谢,赶快下载吧!!
基于SOA架构的分布式购物电商商城 后台管理系统:管理商品、订单、类目、商品规格属性、用户、权限、系统统计、系统日志以及前台内容等功能 前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等...
dubbo-soa-consumer项目基于dubo协议完整简单这个配置及消费consumer调用的代码示例
dubbo-2.5.3.jar一个优秀的SOA框架
Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。 Dubbo是一款基于Netty的高性能、轻量级的RPC框架,其主要功能包括:面向...
dubbo-admin-2.5.4.zip
Dubbo是阿里巴巴SOA服务化治理方案的核心框架,是一个分布式服务框架
dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。其核心部分包含如下几点: 1、远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,...
当当对Dubbo的评价:Dubbo是一个被国内很多互联网公司广泛使用的开源分布式服务框架,即使从国际视野来看应该也是一个非常全面的SOA基础框架。作为一个重要的技术研究课题,在当当网我们根据自身的需求,为Dubbo实现...