zoukankan      html  css  js  c++  java
  • DubboAdmin 功能展示与实操解析

    服务信息

    服务列表以接口为维度展示出所提供的服务信息,并按照注册来源接口级/应用级进行区分。

    服务详情页面展示接口的提供者与消费者信息和接口的方法等信息。

    动态路由

    条件路由

    条件路由可以编写一些自定义路由规则实现一些服务治理的需求比如黑白名单、读写分离等。条件路由可以在接口级别和消费者应用级别创建规则。

    创建条件路由规则需要填写 interface、version、group 信息(version、group无则不填),下图展示一个简单的黑名单配置,=> 左边代表消费者匹配条件,右边代表provider匹配条件(无代表没有匹配)具体规则详情参考官网(具体请见文末相关链接)。所以配置的含义为consumer ip 为 192.168.1.3 的消费者没有 provider 提供服务。

    标签路由

    标签路由通过将某一个或多个服务的提供者划分到同一个分组,约束流量只在指定分组中流转,从而实现流量隔离的目的,可以作为蓝绿发布、灰度发布等场景的能力基础。在 provider 应用级别上创建规则,对于的静态打标为:

    dubbo.provider.tag=tag1
    
    @DubboService(tag = "tag2")
    

    Mesh 路由

    Mesh 路由是 3.0 版本推出的新的流量管理策略,支持更多的条件匹配和组合可以轻松实现各种路由功能。将整个流量管理分成 VirtualService 和 DestinationRule 两部分,VirtualService 匹配入口流量,DestinationRule 匹配出口流量。详细规则参考文档(具体请见文末相关链接)。

    案例

    一个接口 org.test.apache.dubbo.interfaces.HelloService#hi(Integer number) 参数 number 为 Integer 类型,下述规则表示当 number 为偶数匹配 label 为 v1 的 provider (即 url 参数带有 test-version = v1 的服务),当为奇数匹配 label 为 v2 的 provider (即 url 参数带有 test-version = v2 的服务),可以通过 dubbo.application.parameters.test-version = v1 给服务打标,实现一个简单的灰度功能。

    apiVersion: service.dubbo.apache.org/v1alpha1
    kind: VirtualService
    metadata:
      name: demo/oddEvenRouter
    spec:
      dubbo:
      - routedetail:
        - match:
          - method:
              argc: 1
              args:
              - index: 0
                num_value:
                  oneof:
                  - exact: 0.0
                    mod: 2.0
                type: int
              name_match:
                exact: hi
          name: even-route
          route:
          - destination:
              host: demo
              subset: v1
        - match:
          - method:
              argc: 1
              args:
              - index: 0
                num_value:
                  oneof:
                  - exact: 1.0
                    mod: 2.0
                type: int
              name_match:
                exact: hi
          name: odd-route
          route:
          - destination:
              host: demo2
              subset: v2          
        services:
        - exact: org.test.apache.dubbo.interfaces.HelloService                                
    ---
    apiVersion: service.dubbo.apache.org/v1alpha1
    kind: DestinationRule
    metadata:
      name: test-route
    spec:
      host: demo
      subsets:
        - name: v1
          labels:
            test-version: v1
        - name: v2
          labels:
            test-version: v2
    

    动态配置

    动态配置提供了无须重启可以动态调整 RPC 调用行为的一种能力。比如修改超时时间、权重、负载均衡策略调整等。作用在接口级别和应用级别。下图含义为将超时时间调整为 6000ms,作用在 conusmer 侧的所有节点。

    服务测试

    可以通过 admin 后台测试 dubbo 服务,参数根据元数据内容自动生成 JSON 模板。

    服务 Mock

    通过在Admin后台进行规则配置,根据服务名和方法名,进行规则的配置。

    用户在 Dubbo 引用中引入 Mock 的依赖,通过添加 JVM 启动参数 -Denable.dubbo.admin.mock=true,即可体验在无 Provider 的情况下,实现 Consumer 对 Provider 的模拟调用,返回来自 admin 中配置的模拟数据。

    <denpendency>
        <groupId>org.apache.dubbo.extensions</groupId>
        <artifactId>dubbo-mock-admin</artifactId>
        <version>last</version>
    </denpendency>
    

    新增功能

    • 应用级服务发现
    • Mesh 路由
    • 服务 Mock
    • 权限 SPI 拓展

    相关链接

    1)官网:

    https://dubbo.apache.org/zh/docs/advanced/routing-rule/

    2)文档:

    https://dubbo.apache.org/zh/docs/concepts/traffic-management/

  • 相关阅读:
    用js完成毫秒格式数据的日期格式化任务
    廖雪峰js教程笔记3
    事务在 更新和 插入中的用法(转自他人)
    左连接 用于 列转行的一个想法
    MyISAM与InnoDB两者之间区别与选择,详细总结,性能对比
    python中的内方法
    波非那切数列
    python修改最大递归数
    odoo开发微信小程序需要的三个包:xmltodict、pycrypto、itsdangerous
    解决json dumps不能序列化datatime数据类型的问题,通过重写JSONEncoder
  • 原文地址:https://www.cnblogs.com/alisystemsoftware/p/15709338.html
Copyright © 2011-2022 走看看