Soul 网关使用 - dubbo 插件使用

前文在 divide 插件的使用 中有介绍 Soul 网关通过插件支持不同的协议,本篇我们关注 dubbo 的使用。
dubbo 是一款开源分布式的 RPC 框架,目前是 RPC 框架的主流。本文关注在 Soul 网关下转发请求到 dubbo 框架的服务。

启动测试环境

ZooKeeper 启动

dubbo 的启动依赖配置中心,这里我们以推荐的 ZooKeeper 做为配置中心,所以我们首先启动 ZooKeeper。以 mac 系统下使用 homebrew 启动为例启动:

brew install zookeeper
brew services start zookeeper

ZooKeeper 启动后我们可以使用 zkCli 客户端工具查看 Zookeeper 的情况,在 zkCli 中使用 ls / 命令查看根节点的情况:

zkCli
# Connecting to localhost:2181
# Welcome to ZooKeeper!
#JLine support is enabled
# WATCHER::
# WatchedEvent state:SyncConnected type:None path:null
# [zk: localhost:2181(CONNECTED) 0]
ls / 
# []

Soul 网关启动

在 Soul 网关使用的第一篇 源码编译和简单使用 中已经介绍了如何打包,这里我们直接启动 admin 和 bootstrap。

java -jar ./soul-admin/target/soul-admin.jar \
  --spring.datasource.user='root' \
  --spring.datasource.password='12345' 
java -jar ./soul-bootstrap/target/soul-bootstrap.jar

启用 dubbo 插件

Soul 网关的 dubbo 插件默认是关闭的,因此我们需要到管理控制台(http://localhost:9095)启用 dubbo 插件,并同时关注我们的 Zookeeper 的配置是否正确。

插件管理 - dubbo

启动 soul-examples-apache-dubbo-service

Soul 分别为 apache-dubbo 和 alibaba-dubbo 提供了 demo,这里我们只演示 apache-dubbo。

# 编译 soul-examples-apache-dubbo-service 
cd soul-examples/soul-examples-dubbo/soul-examples-apache-dubbo-service
mvn package -Dmaven.javadoc.skip=true -Dmaven.test.skip=true
# 启动 soul-examples-apache-dubbo-service
java -jar soul-examples-apache-dubbo-service-2.1.0.jar

通过启动日志,我们可以发现,dubbo 的服务和 http 的服务一样,都会在启动时通过 Soul admin 向网关注册自己提供的服务和规则。


dubbo 启动日志

在 Soul admin 的管理控制台我们可以看到这些规则已经注册成功:


管理控制台 - dubbo 的规则注册

通过 Soul 调用一下 dubbo 提供的服务

curl http://127.0.0.1:9195/dubbo/findAll
# 返回结果:
{"code":200,"message":"Access to success!","data":{"name":"hello world Soul Apache, findAll","id":"-1375543193"}}

你可能感兴趣的:(Soul 网关使用 - dubbo 插件使用)