访问 Ingress 流量
1. 准备工作
-kubectl
- 配置了 kubeconfig 的 k8s 集群
2. 使用 HTTP 协议通过网关调用 Triple 应用程序
Dubbo-go-pixiu 网关支持调用 GO/Java Dubbo 集群。在 Dubbo-go 3.0 场景下,我们可以使用 Pixiu 网关通过集群外部的 HTTP 协议请求 Pixiu 网关,在网关层进行协议转换,进一步调用集群内的 Dubbo-go 服务。
用户调用 Dubbo-go 服务的路径为 http://$(app_name)/$(service_name)/$(method)。
例如,一个 proto 文件有如下定义
package org.apache.dubbo.quickstart.samples;
service UserProvider {
rpc SayHello (HelloRequest) returns (User) {}
}
message HelloRequest {
string name = 1;
}
并在 dubbo-go 服务启动时在 dubbogo.yml 中配置应用名称:my-dubbogo-app
dubbo:
application:
name: my-dubbogo-app
pixiu 网关可以解析路径为 my-dubbogo-app/org.apache.dubbo.quickstart.samples.UserProvider/SayHello 的路由并将其转发到相应的服务。来自外部 HTTP 请求的 body 是一个 json 序列化的请求参数,例如 {“name”:“test”}。
我们目前推荐使用 Nacos 作为注册中心。
用户可以在自己的集群中部署我们的 demo。集群最好具备暴露 lb 类型服务的能力,这样集群内的服务就可以从公网访问,也可以直接在集群内发起请求。
对于您的集群,执行
$ kubectl apply -f https://raw.githubusercontent.com/dubbogo/triple-pixiu-demo/master/deploy/pixiu-triple-demo.yml
将在 dubbogo-triple-nacos 命名空间下创建以下资源,包括三个 triple-server、一个 pixiu 网关和一个 nacos 服务器。并通过 Servcie 将服务暴露到公网。
namespace/dubbogo-triple-nacos created
service/dubbo-go-nacos created
deployment.apps/dubbogo-nacos-deployment created
deployment.apps/pixiu created
deployment.apps/server created
service/pixiu created
获取 pixiu 公网 ip 并调用
$ kubectl get svc -n dubbogo-triple-nacos
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dubbo-go-nacos ClusterIP 192.168.123.204 <none> 8848/TCP 32s
pixiu LoadBalancer 192.168.156.175 30.XXX.XXX.XX 8881:30173/TCP 32s
通过 curl 调用 demo 服务并获取响应结果。
$ curl -X POST -d '{"name":"laurence"}' http://30.XXX.XXX.XX:8881/dubbogoDemoServer/org.apache.dubbo.laurence.samples.UserProvider/SayHello
{"name":"Hello Laurence","id":"12345","age":21}
上次修改时间:2023 年 1 月 2 日: 增强 Dubbogo 文档 (#1800) (71c8e722740)