图解。

一、dubbo使用须知。

    1.所有的service层必须要使用service注解(之前用的spring框架的,现在用dubbo框架所提供的@Service注解)
// @Service(timeout=单位是秒) 2.在配置dubbo端口号的时候
只是provider项目和consumer项目直接数据通讯的时候所必需的要遵循的端口号
也就是说必须要注意无论是provider还是consumer,所配置的dubbo端口号必须要保持一致
端口号随意定制!!!

1.1.provider的config下的application.properties的配置。   和数据库交互   和consumer 订制dubbo的端口号配置     zookeeper的端口号:2181!!!

server.port=8081
server.context-path=/zxf spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/qy200?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource mybatis.type-aliases-package=com.aaa.zxf.dubbo.model
mybatis.mapper-locations=classpath:mapper/*Mapper.xml #dubbo 的配置 dubbo的应用名。 在dubbo的项目 可以直接看出改项目是一个什么样的项目
#dubbo-admin 生产者/消费者------application name----需要根据当前项目
#所提供的功能进行命名

dubbo.application.name=user-provider #协议 protocol 配置该项目远程调用的时候所用的协议--dubbo TCP 和 upd..

dubbo.protocol.name=dubbo #配置dubbo 所必需使用的端口号
# 注意!!! provider 和 consumer 所配置的端口号保持一致 号 随意订制。

dubbo.protocol.port=20881 #zookeeper的通讯地址 dubbo框架集成zookeeper
#provider 需要向zookeeper注册服务,要让provider知道 zookeeper是哪一个! #【注意!!!】 dubbo 和 provider 以及 consumer的zookeeper的配置中 所有的zookeeper集群 leader 和 follower都可以配
# 因为最终 无论是leader 还是follower 都可以配 (除非leader 宕机)
# zookeeper的端口号就是 2181 需要保持一致!!


dubbo.registry.address=zookeeper://192.168.132.133:2181 # provider 需要让zookeeper知道 那一个类需要 注册到zookeeper中
#dubbo 包的扫描 改包以及所有的子类 都会注册到zookeeper中

dubbo.scan.base-packages=com.aaa.zxf.dubbo.service.impl # dubbo 根据application 中所配置的dubbo.scan.base-packages 属性来判定 该项目是 provider 还是 consumer #开启我的 zookeeper

1.2 consumer 下的config application.properties的配置。。。 调用provider,负责和用户交互。 HTML 。。。 配置文件中,  少一个对包的扫描!!!

server.port=8084
server.context-path=/zxf #dubbo 的配置
#consumer 中 dubbo的配置和provider中只差了一行 不需要配置扫描包
dubbo.application.name=user-consumer #dubbo的协议名称
dubbo.protocol.name=dubbo #dubbo 的协议端口号 provider 和 consumer 需要保持一致!!!
dubbo.protocol.port=20881 #注册中心的地址 leader 和 follower的ip 都可以!!!
dubbo.registry.address=zookeeper://192.168.132.133:2181 # thymeleaf 开启不严谨的检查方式 需要导入jar包
spring.thymeleaf.mode=LEGACYHTML5 # springboot 使用 thymeleaf 关闭缓存
spring.thymeleaf.cache=false
 3.无论是在dubbo还是在provider以及consumer的zookeeper配置中
所有的zookeeper集群无论是leader还是follower都可以配
eg:
zookeeper01是leader
dubbo-admin--把zookeeper的配置改为-->zookeeper01
zookeeper02是leader
dubbo-admin--把zookeeper的配置改为-->zookeeper01
因为最终无论配置是leader还是follower都会把请求转交给leader(除非leader宕机)
// 所有的zookeeper配置的端口号都应该是2181
因为dubbo中端口号就是2181 4.dubbo如何判定项目为服务生产者还是服务消费者?
是根据application.properties中所配置的dubbo.scan.base-packages属性来进行判定该项目是provider还是consumer 5.无论是provider还是consumer,service包必须要保持一致
provider-->IUserService:com.aaa.lee.dubbo.service
consumer-->IUserService:com.aaa.lee.dubbo.service
并且两个接口的名字也必须要保持一致!!!!
// 接口中方法也必须要保持一致(返回值名称,返回值类型,方法名,方法参数) 6.consumer项目中的controller需要调用service的时候,不能再使用@Autowired注解进行注入service
因为整个consumer项目中只有service的接口并没有实现类
// 需要使用dubbo所提供的@Reference 7.provider和consumer的application.properties配置文件中dubbo.application.name不能一样!!!!
provider:
dubbo.application.name=user-provider
consumer:
dubbo.application.name=user-consumer 8.无论是provider还是consumer项目都必须要把zookeeper的地址配置一致!!!
不要求必须配置leader--->follower会自动把请求转交给leader 9.所有的实体类必须要实现序列化接口
因为实现了序列化接口的实体类都可以把实体类以流的形式进行发送
provider会把User实体类转换为二进制流----->发送给consumer---->consumer所接收到的并不是一个User对象,而是一个二进制流
---->consumer必须要把整个二进制流转换为User对象才可以使用!
也就是说无论是consumer还是provider都必须要实现序列化接口

dubbo框架的使用方法。。。的更多相关文章

  1. dubbo框架提供Main方法运行容器的几种方式(转)

      本文使用的是dubbo提供的主类com.alibaba.dubbo.container.Main启动容器. 主要区别是提供不同插件的的启动方式. 目录 一.项目内容  1.1.目录结构图  1.2 ...

  2. (转)dubbo框架基本分析

    原文地址: https://my.oschina.net/zhengweishan/blog/698591 Dubbo架构基本分析 1. dubbo简单介绍 1.1 dubbo是什么 dubbo是一个 ...

  3. 基于Dubbo框架构建分布式服务(一)

    Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...

  4. 基于dubbo框架下的RPC通讯协议性能测试

    一.前言 Dubbo RPC服务框架支持丰富的传输协议.序列化方式等通讯相关的配置和扩展.dubbo执行一次RPC请求的过程大致如下:消费者(Consumer)向注册中心(Registry)执行RPC ...

  5. 基于Dubbo框架构建分布式服务

    Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...

  6. [转载] 基于Dubbo框架构建分布式服务

    转载自http://shiyanjun.cn/archives/1075.html Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务 ...

  7. Dubbo框架应用之(四)--Dubbo基于Zookeeper实现分布式实例

    上三篇文章主要是解决了概念性的补充和学习,充分结合实战来深入理解 入门实例解析 第一:provider-提供服务和相应的接口 创建DemoService接口 package com.unj.dubbo ...

  8. 基于Dubbo框架构建分布式服务(集群容错&负载均衡)

    Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...

  9. 性能测试二十九:Dubbo框架测试脚本编写

    测试脚本编写 新建一个folder命名为lib,用于存放依赖包 把以下jar全部拷进lib下,并build path 找开发要 真正要测试的以jar包形式存在的代码的类, 打开看一下 放到lib并bu ...

随机推荐

  1. IT6563替代芯片|DP转HDMI 2.0音视频讯号转换芯片|CS5263Capstpne

    IT6563替代芯片|CS 5263|4LAN DP转HDMI 2.0音视频讯号转换芯片IT6563是一款4LAN EDP转HDMI2.0 HDMI2.0转换器芯片.IT6563FN结合Display ...

  2. CS5218DP转HDMI转接方案|CS5218说明|CS5218

    Capstone CS5218是一款单端口HDMI/DVI电平移位器/中继器,具有重新定时功能.它支持交流和直流耦合信号高达3.0-Gbps的操作与可编程均衡和抖动清洗.它包括2路双模DP电缆适配器寄 ...

  3. Spring企业级程序设计 • 【第4章 Spring持久化层和事务管理】

    全部章节   >>>> 本章目录 4.1 配置数据源资源 4.1.1 JdbcTemplate介绍 4.1.2通过ComboPooledDataSource创建数据源 4.1. ...

  4. 使用子查询获取,使用 all 关键字获取比所有“国内短线游”价格高的线路信息,按照线路类型、线路价格升序显示线路编号、线路名和价格

    查看本章节 查看作业目录 需求说明: 使用子查询获取"国内短线游"及"国内长线游"的线路信息,按照线路类型.线路价格升序显示线路编号.线路名和价格 使用 all ...

  5. HTML5 纯CSS3实现div按照顺序出入效果

    效果: 源代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...

  6. PHP 中的闭包函数和匿名函数

    闭包函数 闭包函数通常作为函数中的函数使用. <?php $foo = function($s) { echo $s; }; $foo('hello'); <?php function t ...

  7. 2.HTML5基本标签

    一.标题标签  h1-->h6 h1最大 h6最小   <body>   <h1>一级标题</h1>   <h2>二级标题</h2> ...

  8. update sql时,常记错同时更新多个参数用and,正确是用逗号

    记录一下,经常记错的一个点,在update多个参数时,多个参数之间用and连接,这个时候,语句就会报错了 其实,正确的是用逗号隔开, 使用SQL中的update更新多个字段值,set后面的条件要用逗号 ...

  9. vue重置data

    Object.assign(this.$data, this.$options.data()) 解析:1.Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象. ...

  10. Sentry 企业级数据安全解决方案 - Relay 操作指南

    内容整理自官方文档 本篇回顾了我们在自托管外部使用 Relay 时的操作指南,即在您的硬件上运行的 Relay 并将事件转发到 sentry.io. 系列 Sentry 企业级数据安全解决方案 - R ...