一、为什么会是dubbo
1.Dubbo是一个分布式服务框架,提供RPC(远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。)
远程服务调用方案,以及SOA(面向服务的体系结构(英语:service-oriented architecture)是构造分布式计算的应用程序的方法。它将应用程序功能作为服务发送给 最终用户或者其他服务。) 服务治理。
2.分布式服务框架真正意义上将多台具有不同功能、不同区域的计算机通过网络连接起来解决海量请求、计算。
3.将功能作为‘服务’提供给其他服务、消费者使用,每个服务负责的功能不同,性能要求也不同,可以更好的做到定点增加、减少服务器。
二、dubbo简介
1、架构
1.Registry-分布式服务的注册和发布中心。zookeeper、redis、multicast
2.Provider-服务提供方
3.Consumer-使用远程调用的服务消费方
4.Monitor-监控中心
5.Container-服务运行容器
2、联系
1.provider将提供的服务注册在registry中
2.consumer将需要的服务在registry中订阅
3.registry返回服务器提供者的地址给consumer,如果其中一个provider不再提供服务,registry可以通过长连接,让consumer取消这个provider的服务提供关系。
4.consumer使用负载均衡算法,调用远程的provider。
5.定时向monitor发送调用状态、统计。
三、如何上手
- 下载zookeeper
- http://apache.claz.org/zookeeper/ 下载最近的稳定版本3.4.9
- 解压后,打开zookeeper-3.4.9/
- 打开conf文件夹,复制一份zoo_sample.cfg,重命名为zoo.cfg
- 返回zookeeper根目录,打开bin目录下的zkServer.cmd
- zookeeper就已经安装启动成功了
2. 一般项目结构
a) api-demo 定义接口、model类
b) common-demo 提供公共方法,供其他模块使用
c) consumer-demo 消费者模块,有spring-mvc框架,提供访问接口。
d) provider-demo、provider-demo2、provider-demo3服务提供者,也是api-demo接口的实现者
3 .依赖关系
4 .如何运行
- 运行zookeeper
- 使用cmd命令行工具,进入dubbo-demo-feiniu根目录
3 输入命令mvn clean install
4 进入provider-demo/target,解压dubbo-demo-assembly.tar.gz,进入解压好的文件夹dubbo-demo-assemblydubbo-demoin,双击运行start.bat
5 进入provider-demo2/target,运行步骤3
6 命令行进入consumer-demo,运行命令mvn jetty:run
7 浏览器分别访问http://localhost:8080/activity/u?id=123,http://localhost:8080/users/u?id=123
8 可以在之前打开的命令行窗口看到
- 到此由一个服务消费者,两个服务提供者的dubbo-demo就运行完毕了。