1.什么是Duboo:https://baike.baidu.com/item/Dubbo/18907815?fr=aladdin 百度百科告诉你!
2.为什么要采用Dubbo,他是这个样子的:
一款分布式服务框架
高性能和透明化的RPC远程服务调用方案
SOA服务治理方案
每天为2千多个服务提供大于30亿次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点以及别的公司的业务中。
3.Duboo架构:官网可见
Provider: 暴露服务的服务提供方。 ------service业务逻辑层
Consumer: 调用远程服务的服务消费方。 ------Controllerweb请求层
Registry: 服务注册与发现的注册中心。 ------经常使用zookeeper实现
Monitor: 统计服务的调用次数和调用时间的监控中心。
调用流程
0.服务容器负责启动,加载,运行服务提供者。
1.服务提供者在启动时,向注册中心注册自己提供的服务。
2.服务消费者在启动时,向注册中心订阅自己所需的服务。
3.注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4.服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
5.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
4.环境搭建准备原料:编辑器采用IDEA这不用多提。
5.步骤分两部分:
1.dubbo-admin管理端搭建
1.1 打包dubbo-admin成war包
进入duboo文件夹,按住Shift键进入终端界面,进行maven编译。
mvn install -Dmaven.test.skip=true
1.2 启动zookeeper
进入zookeeper文件夹bin目录下,启动命令脚本。
1.3部署war包到Tomcat
1.1生成的war包放到tomcat下webapp目录下,返回上层目录,进入bin目录下。启动命令脚本startup.bat
1.4 打开dubbo-admin文件夹下的target文件夹,查看用户及地址等信息。
1.5 打开浏览器,输入网址用户名密码即可访问。
2.Demo编辑代码测试
2.1 创建Demo工程框架,创立聚合工程,Duboo_Demo为父工程,打包方式为pom,Duboo_Consumer及Duboo_Provider为子Moudle,maven模板样式选择quickstart即可。
2.2 关于Provider(对应Sercice层,采用接口+实现类的方式实现)
配置文件:dubbo-provider.xml
命名空间需要加入,否则没有对应标签,建议复制。
注册中心采用zookeeper,地址需要对应打包后target目录下dubbo.properties,上文提到了。
创建一个Service层的对象,并将其与接口绑定,进行服务发布。
2.3 书写测试类:参考百科给出的书写方法,在main方法中加载配置文件即可启动。
2.4 关于Consumer:目录结构
配置文件:dubbo-consumer.xml:配置文件要求和provider相同
接口一定要对应!!!客户端请求的接口是必须和声明(provider)端统一!!!
服务消费者和服务提供者的接口的路径必须完全相同,因为这是服务的唯一标识!!!
2.5 书写测试类:百度百科写的很明白。
2.6 运行测试类,打开dubbo-admin管理页面查看:
查看provider的具体情况
查看Consumer的具体情况
6.至此,一个dubbo环境的搭建和测试小Demo就完成了,在搭建过程中遇到了很多问题,现总结下:
1. 版本号问题 --建议JDK,Tomcat,zookeeper,dubbo均采用非最新版本。
2. dubbo-admin建议自己手动打包,现成的war包有些不一定好使。
3.网上类似的博客很多,选择参考的应该是时间轴不应该太长,选择最近的博文进行参考,有的时候,百科也是一种好的参考手段。
4.运行测试类的时候,Tomcat,zookeeper必须是服务启动状态。
5.好记性不如烂笔头。
6.eclipse和IDEA不同,工程创建,打包方式等,需要自己仔细配置。
7.感谢给与我帮助的博主以及相应博文,下面附上链接:
http://blog.csdn.net/noaman_wgs/article/details/70214612
http://blog.csdn.net/linuu/article/details/53758854
http://blog.csdn.net/qq_17351343/article/details/76146293