图解。

一、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. 【LeetCode】228. Summary Ranges 解题报告(Python)

    [LeetCode]228. Summary Ranges 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/problems/sum ...

  2. Azure Data Lake(一) 在NET Core 控制台中操作 Data Lake Storage

    一,引言 Azure Data Lake Storage Gen2 是一组专用于大数据分析的功能,基于 Azure Blob Storage 构建的.Data Lake Storage Gen2 包含 ...

  3. ImageNet2017文件下载

    ImageNet2017文件下载 文件说明 imagenet_object_localization.tar.gz包含训练集和验证集的图像数据和地面实况,以及测试集的图像数据. 图像注释以PASCAL ...

  4. 《MySQL数据操作与查询》- 综合项目 - 学生管理系统

    <MySQL数据操作与查询>综合项目需求 一.系统整体功能 维护学生信息.老师信息和成绩信息. 支持按多种条件组合查询学生信息和成绩信息. 二.系统的信息需求 一个班级有一个讲师一个班主任 ...

  5. mongodb Windows系统下安装卡死问题

    1.操作环境 MongoBD版本:mongodb-win32-x86_64-2008plus-ssl-4.0.5-signed (4.0.5) 操作系统:Windows 2008 R2_64位 (服务 ...

  6. 使用docker快速部署一个consul集群

    作为一个开发者,有时候需要一个集群环境,之前的做法要么就是使用多个虚拟机,要么就是采用不同的端口来模拟,但是虚拟机比较占内存,而且启动慢,采用不同的端口来模拟,管理起来比较麻烦一些,程序隔离性差一些. ...

  7. centos6.5-搭建Apache-地址限制和用户访问

    对于企业内部的WEB管理平台,例如日志分析系统(Awstats)为了更好实现访问控制,在通过客户端访问时,提交一些用户密码或对客户IP地址进行授权,避免服务器的安全隐患. 常见的访问控制方式:应用于配 ...

  8. hisql 新一代无实体ORM使用第一步 hisql安装使用

    安装 github hisql 最新源码下载 也可以通过nuget安装 注意:HiSql仅支持.net5或以上环境 选择您需要支持的数据库对应的支持包进行安装 本例使用sqlserver进行演示,请安 ...

  9. 龙芯发布.NET 6.0.100开发者试用版

    龙芯在龙芯开源社区发布了LoongArch64-.NET-SDK-6.0.100开发者试用版 新闻 ,龙芯.NET基于上游社区 版本 适配支持龙芯平台架构. 目前支持LoongArch64架构和MIP ...

  10. 初识python: 面向对象是个啥?

    编程范式:编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 ,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多 ...