关于springboot:京淘day17Dubbo框架

37次阅读

共计 1935 个字符,预计需要花费 5 分钟才能阅读完成。

一、Dubbo 框架

1. Dubbo 框架介绍

Apache Dubbo |ˈdʌbəʊ| 提供了六大外围能力:面向接口代理的高性能 RPC 调用,智能容错和负载平衡,服务主动注册和发现,高度可扩大能力,运行期流量调度,可视化的服务治理与运维。

2. Dubbo 框架劣势

问题阐明:
问题 1: 当服务生产者有一个宕机, 问程序是否失常运行???
阐明: 因为 dubbo 框架的机制, 仍然能够保障失常运行…
问题 2: 如果整合 zk 集群宕机, 问程序是否运行失常??
阐明: 如果只是主机宕机, 则 zk 有高可用的成果, 程序不受影响.
阐明 2: 如果整合 zk 集群宕机, 则用户仍然能够失常拜访, 然而当初的程序处于危险状态.
阐明 3: 如果在上述的状况下, 再次宕机一台生产者 程序仍然能够失常运行. 因为保护了本地的服务列表信息.

3. Dubbo 负载平衡机制

3.1 负载平衡品种

阐明: dubbo 框架中负载平衡机制是客户端负载平衡. 该配置须要在客户端 (消费者) 中配置即可.

3.1.1 负载平衡 - 随机策略

1). 类名称

2). 配置负载平衡机制

3.1.2 负载平衡 - 轮询机制

1). 设置轮询策略

1). 轮询类名

3.1.3 负载平衡 - 一致性 hash

1).Controller 配置

2). 具体类名

3.1.4 负载平衡 -“起码拜访”

1). 编辑 Controller

2). 具体类名

3.2 数据在 zk 中存储构造阐明

4. Dubbo 入门案例

4.1 导入 jar 包

 <!-- 引入 dubbo 配置 如果下载失败 则去本地仓库中删除从新下载 -->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
        </dependency>

2.2 导入我的项目

1). 批改版本号

2). 批改子项目名称

3). 复制我的项目

4). 增加为 maven 我的项目

5. 对于入门案例阐明

5.1 定义中立接口

1). 我的项目构造

2). 定义接口

5.2 编辑服务生产者

5.2.1 编辑接口实现

阐明: 留神注解导入的是 dubbo 的注解

5.2.2 编辑 YML 配置文件
server:
  port: 9000   #定义 tomcat 端口  服务启动时占用的端口

spring:
  datasource:
    #引入 druid 数据源
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
    username: root
    password: root

#对于 Dubbo 配置   
dubbo:
  scan:
    basePackages: com.jt    #指定 dubbo 的包门路
  application:              #利用名称
    name: provider-user     #一个接口对应一个服务名称 如果是多个实现类则利用名称统一
  registry:
    address: zookeeper://192.168.126.129:2181?backup=192.168.126.129:2182,192.168.126.129:2183
  protocol:  #指定协定
    name: dubbo  #应用 dubbo 协定(tcp-ip)  web-controller 间接调用 sso-Service
    port: 20880  #每一个服务都有本人特定的端口 不能反复.
      
mybatis-plus:
  type-aliases-package: com.jt.dubbo.pojo       #配置别名包门路
  mapper-locations: classpath:/mybatis/mappers/*.xml  #增加 mapper 映射文件
  configuration:
    map-underscore-to-camel-case: true                #开启驼峰映射规定
5.2.3 生产者启动测试


5.3 编辑服务消费者

5.3.1 编辑 UserController

5.3.2 编辑消费者的 YML 配置文件
server:
  port: 9001
dubbo:
  scan:
    basePackages: com.jt
  application:
    name: consumer-user   #定义消费者名称
  registry:               #注册核心地址
    address: zookeeper://192.168.126.129:2181?backup=192.168.126.129:2182,192.168.126.129:2183

正文完
 0