Dubbo
RPC vs REST HTTP
1.接口风格不同
RPC 动词风格 面向执行过程
HTTP 名词风格 面向所操作的资源
2.
3.RPC只是一个服务治理框架,功能不及spring cloud 全面
4. eureka是消费端主动拉取注册列表,因此对于节点下线响应较慢
dubbo是长连接,基于zookeeper+发布订阅模型,进行主动推送,对于节点的变化可以迅速感知
zookeeper安装与启动
1. 下载Zookeeper最新版,
http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.5/
2. 配置
打开文件夹/usr/local/apache-zookeeper-3.5.5-bin/conf
将zoo_sample.cfg 复制一份命名为zoo.cfg
3. 启动Zookeeper
打开文件夹/usr/local/apache-zookeeper-3.5.5-bin/bin
Mac执行命令行执行 ./zkServer.sh start
Windows同学执行对应的cmd文件
启动完成以后出现这个就代表着启动成功
ZooKeeper JMX enabled by default
Using config: /usr/local/apache-zookeeper-3.5.5/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
4. 运行验证 ./zkCli.sh
最后打印出一堆东西最后一行是
WatchedEvent state:SyncConnected type:None path:null
5. 关闭Zookeeper ./zkServer.sh stop
dubbo工程demo:
1.创建api接口层
1)创建pojo,实现序列化
2)创建接口类
2.创建dubbo-provider
1)引入相关依赖项
2)创建启动类
3)创建api层定义的接口的实现类,添加@service注解(注意,是dubbo包下面的service注解)
3.添加配置文件
4.创建dubbo-consumer
1)添加pom依赖(同provider)
2)创建启动类(同provider)
3)发起调用,核心是@Reference注解
4)添加配置文件,同provider,修改一下server.port
dubbo-admin
1. 下载Dubbo-Admin (develop branch)
https://github.com/apache/dubbo-admin
2. 编译前端项目
a. 安装nodejs,使其可以执行npm命令
b. 因为前端项目依赖包下载非常慢,所以加一个npm的代理镜像在~/.npmrc中增加
registry=https://registry.npm.taobao.org
3. 进入刚才下载的dubbo-admin项目下面的dubbo-admin-ui项目,
执行npm install命令
4.修改zookeeper配置文件,重启zookeeper
添加admin.serverPort=63010
5.启动dubbo-admin-server(springboot后端工程)
6.npm run dev 启动dubbo-admin-ui
7.访问前端页面