发表于: 2019-12-06 23:07:07
1 1325
今日完成
- 1 简介
- rpc远程过程调用协议
- 是JDK底层提出的协议, dubbo只是对这个协议的实现的一个框架技术
- rpc协议
- 跨服务器, 跨tomcat, 从一个项目, 调用另一个项目中的方法
- dubbo概述
- dubbo是阿里巴巴公司生产的一个rpc实现框架
- dubbox是当当网维护的dubbo代码的版本.
- 就是个远程服务调用的分布式框架
- dubbo作用
- 跨项目调用方法, 例如从A项目中的controller调用B项目中的service方法
- dubbo同类型的技术
- 1 rpc协议实现框架
- dubbo, dubbox, springCloud
- 优点: 传输效率快
- 缺点: controller和service两个项目必须都是Java语言实现
- 2 webService技术: 代表框架有cxf
- 底层使用的协议叫做soap协议, 其实传输的就是xml数据
- 优点: 可以跨语言跨平台, controller可以是Java语言实现, service可以是.net或者C语言等语言实现
- 缺点: 传输效率低
- 1 rpc协议实现框架
- dubbo使用方法
- 1 service实现类上写@Service注解, 注意这个@service注解不是spring包的是阿里的dubbo包下的
- 2 controller注入的时候使用@Refrence注解来进行注入, 也是阿里dubbo包下面的.
- 3 如果controller和service之间传输pojo实体类, 那么实体类必须实现Java的序列化接口
- rpc远程过程调用协议
- 2 dubbo原理
- 原理
- 流程图
- 节点角色说明
- 1 Registry: 服务注册与发现的注册中心(相当于中间件),是一个软件(Zookeeper)
- 2 Provider: 暴露服务的服务提供方
- 3 Consumer: 调用远程服务的服务消费方
- 4 Monitor: 统计服务的调用次调和调用时间的监控中心
- 5 Container: 服务运行容器
- 调用关系说明
- 0. 服务容器负责启动,加载,是运行服务提供者
- 1. 服务提供者在启动时,向注册中心注册自己提供的服务(包括把ip地址报给注册中心)
- 2. 服务消费者在启动时,向注册中心订阅自己所需的服务(知道ip地址)
- 3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
- 4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用
- 5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
- 流程图
- 举例(换一种方式讲原理)
- 流程图
- 流程
- 1.service启动后会去zookeeper中进行注册,告诉zookeeper自己的IP和端口
- 2.询问zookeeper可以给自己提供服务的IP和满口
- 3.返回可以使用的服务的IP和端口
- 4.使用IP+端口+接口+方法调用
- 5.返回执行结果
- 流程图
- 注意点
- 返回时间
- 如果controller先启动,service还没启动,会报错
- 正常使用,1秒内controller必须接受到返回结果,超过1秒,controller反应给zookeeper,zookeeper再调用另一个service的ip和端口
- 如果在service中打断点找bug,此时1秒肯定接受不到结果——>将1秒设置为更长的时间。上线后还是1秒,不能让消费者一直等
- 注入问题
- 本项目controller调用service用spring注入
- 如果controller和service不在同一个项目跨项目用dubbo注入
- 在哪里使用到dubbo
- Controller添加dubbo的jar包,service添加dubbo的jar包
- controller调用service底层使用的是dubbo协议,dubbo底层使用的是rpc协议
- 返回时间
- 原理
- 3 注册中心Zookeeper
- 1 简介
- 注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小
- 官方推荐使用 zookeeper 注册中心,Zookeeper 是 Apacahe Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为Dubbox 服务的注册中心,工业强度较高,可用于生产环境
- 2 Zookeeper 在Linux系统的安装、启动
- 虚拟机网络配置原理
- 1 双击安装虚拟机(卸载原本的jdk,换为1.8的)
- C:\soft\pinyougou\CentOS-itcast
- C:\soft\pinyougou\CentOS-itcast
- 2 修改配置
- 虚拟机配置
- 虚拟网络编辑器
- 修改为200
- NAT设置
- 修改为200
- 修改网络适配器
- 设置
- 修改成功
- 设置
- 虚拟网络编辑器
- 本机配置
- 网络共享中心——>更改适配器设置
- VMnet8
- 更改ip地址
- 网络共享中心——>更改适配器设置
- 开启虚拟机
- vmware中已移动:IP地址和网卡mac地址保持不变
- vmware中已复制:IP地址和网卡mac地址会自动进行重置
- 开启——>选择已移动
- 账户:root;密码:123456
- 进入centos设置
- 右键打开设置
- 双击
- 一一对应好
- 右键打开设置
- 需要的地址
- 子网ip:192.168.200.0
- 子网代码:255.255.255.0
- 网关:192.168.200.2
- 本机修改地址:192.168.200.56
- 虚拟机配置
- 3 连接:finalShell
- ifconfig
- ip地址:192.168.200.128
- finalShell
- ifconfig
- 4 安装
- 将zookeeper-3.4.6.tar.gz上传至文件夹:/usr/local/zookeeper
- 解压:tar -zxvf zookeeper-3.4.6.tar.gz
- 进入 zookeeper-3.4.6 目录:cd zookeeper-3.4.6
- 创建 data 文件夹(zookeeper注册数据):mkdir data
- 进入conf目录 ,把 zoo_sample.cfg 改名为 zoo.cfg
- 5 修改配置文件
- zoo.cfg:dataDir=/usr/local/zookeeper/zookeeper-3.4.6/data
- zoo.cfg:dataDir=/usr/local/zookeeper/zookeeper-3.4.6/data
- 6 服务启动
- 进入bin目录: cd bin
- 启动:./zkServer.shstart
- 查看状态:./zkServer.shstatus
- 启动
- 关闭
- 启动
- 关闭:./zkServer.shstop
- 虚拟机网络配置原理
- 3 zookeeper的端口号
- 配置文件:zoo.cfg
- 端口号:2181
- 1 简介
- 4 Dubbox本地 JAR包部署与安装
- 本地路径
- mvn install:install-file -Dfile=d:\setup\dubbo-2.8.4.jar -DgroupId=com.alibaba -DartifactId=dubbo -Dversion=2.8.4 -Dpackaging=jar
- 本地路径
明日计划
方案设计
评论