Code Monkey home page Code Monkey logo

generic-service-client's Introduction

Dubbo 泛化调用客户端

GitHub stars GitHub forks GitHub watchers GitHub followers

Github Action GitHub issues GitHub license GitHub last commit GitHub release GitHub repo size in bytes HitCount language

项目架构

前端:Angular ;项目地址:itning/generic-service-client-web

后端:Spring Boot ;项目地址:itning/generic-service-client

介绍

  • 主要功能:使用网页发起dubbo协议的请求。http协议转dubbo协议

  • 内部原理:dubbo泛化调用

网页填写请求的信息->http协议->泛化调用->服务提供者

快速开始

[推荐]使用编译好的,直接打开即可: https://github.com/itning/generic-service-client-electron/releases

直接 下载JAR 包,输入命令java -jar generic-service-client-1.3.3-W1-RELEASE.jar

即可启动项目,浏览器输入:http://localhost:8868 即可!‘

如果需要更改配置文件,则输入该命令:java -jar -Dspring.config.location=application.properties generic-service-client-1.3.3-W1-RELEASE.jar

注意:该JAR包仅支持本地访问,如果需要支持其它访问,需要自行编译!

部署

后端

目前接口提示功能仅支持Zookeeper和Nacos注册中心,如果注册中心不是用的Zookeeper或者Nacos就不需要配这个地址

application.properties 文件配置ZK地址用于提示,如果不需要提示则不需要配置!

# 支持多个ZK注册中心,例如下面就写了三个注册中心(zk-A,zk-B,zk-C)
generic-service-support-zk.zk-list.zk-A=192.168.66.1:2181,192.168.66.2:2181:2181,192.168.66.3:2181
generic-service-support-zk.zk-list.zk-B=192.168.77.1:2181,192.168.77.2:2181:2181,192.168.77.3:2181
generic-service-support-zk.zk-list.zk-C=192.168.88.1:2181,192.168.88.2:2181:2181,192.168.88.3:2181
# 支持多个Nacos注册中心,例如下面就写了三个注册中心(nacos-A,nacos-B,nacos-C)
generic-service-support-nacos.nacos-list.nacos-A=127.0.0.1:8848
generic-service-support-nacos.nacos-list.nacos-B=127.0.0.1:8858
generic-service-support-nacos.nacos-list.nacos-C=127.0.0.1:8868

其它配置不需要改动,默认端口号:8868

配置后弱类型接口名输入框会有个下拉框,如图:

xialakuang

如果没有配置,则是这样的:

meiyouxialakuang

配置后点击输入框会有提示:

zidong

前端

前端需要知道后端的地址,所以需要改动前端配置:

默认开发环境:environment.ts

默认线上生产环境:environment.prod.ts

开发环境运行:npm run start

构建生产:npm run build

Docker

支持docker部署

镜像:itning/generic-service-client Tags (docker.com)

部署命令:

docker run --name generic-service-client -d -p 8868:8868 -e generic-service-support-zk.zk-list.zk-A=192.168.66.1:2181,192.168.66.2:2181:2181,192.168.66.3:2181 -e generic-service-support-zk.zk-list.zk-B=192.168.77.1:2181,192.168.77.2:2181:2181,192.168.77.3:2181 itning/generic-service-client:latest

环境说明:

值(例子) 说明
generic-service-support-zk.zk-list.A 192.168.66.1:2181,192.168.66.2:2181:2181,192.168.66.3:2181 可选Zk地址,其中A可以换成其它名字,例如generic-service-support-zk.zk-list.BBB
generic-service-support-nacos.nacos-list.A 127.0.0.1:8848 可选nacos注册中心地址,其中A可以换成其它名字,例如generic-service-support-nacos.nacos-list.BBB
generic-service-support-nexus.base-url http://localhost:8888/nexus 可选nexus私服地址
generic-service-support-nexus.file-dir /tmp 可选从nexus私服下载的文件保存地址
generic-service-support-nexus.username root 可选nexus私服用户名
generic-service-support-nexus.password root 可选nexus私服密码

使用说明

当有多个服务提供者的时候,会提示选择:

zidong

点击编辑参数,可以对参数进行修改:

bianjicanshu

参数数据结构:

[
  {
    "top.itning.Request": {
      "age": 1
    }
  },
  {
    "top.itning.Request2": {
      "dto": {
        "a": "a",
        "b": [1,2, 3 ]
      }
    }
  }
]

最外层是数组数组中每个对象只有一个KEY,KEY名代表接口参数的类全路径名,值代表参数值,而后每一个KEY代表属性名,VALUE为属性值。

点击确定后,解析结果如图:

jiexijieguo

支持dubbo URL解析:

dubboURLjiexi

夜间模式

dubboURLjiexi

API

提供对外API

URL:http://localhost:8868/dubbo/invoke

请求方法:POST

Content-Type:application/json

请求体:

{
    "url": "dubbo://192.168.66.1:20880",
    "interfaceName": "top.itning.dubbotest.service.DemoService",
    "method": "sayHello",
    "version": "1.2",
    "group": "haha",
    "retries": 0,
    "timeout": 400,
    "params": [
        {
            "java.util.Date": "2021-01-09 19:22:42"
        },
        {
            "java.time.LocalDateTime": "2021-01-09T19:22:42"
        },
        {
            "java.lang.String": "aaaaa"
        }
    ]
}

该请求体对应的JAVA方法:

public String sayHello(Date time, LocalDateTime localDateTime, String name)

generic-service-client's People

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.