发表于: 2019-12-06 23:07:07

1 1322


今日完成

  • 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语言等语言实现
        • 缺点: 传输效率低
    • dubbo使用方法
      • 1 service实现类上写@Service注解, 注意这个@service注解不是spring包的是阿里的dubbo包下的
      • 2 controller注入的时候使用@Refrence注解来进行注入, 也是阿里dubbo包下面的.
      • 3 如果controller和service之间传输pojo实体类, 那么实体类必须实现Java的序列化接口
  • 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
      • 2 修改配置
        • 虚拟机配置
          • 虚拟网络编辑器
            • 修改为200
            • NAT设置
          • 修改网络适配器
            • 设置
            • 修改成功
        • 本机配置
          • 网络共享中心——>更改适配器设置
          • 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
      • 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
      • 6 服务启动
    • 3 zookeeper的端口号
      • 配置文件:zoo.cfg
      • 端口号:2181
  • 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

明日计划

方案设计


返回列表 返回列表
评论

    分享到