This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site-v2
in repository https://gitbox.apache.org/repos/asf/dubbo-website.git
The following commit(s) were added to refs/heads/asf-site-v2 by this push:
new 5a75750c4a deploy: 80ca93d3bdde9b75efb92256d2f1ea52a748f4d6
5a75750c4a is described below
commit 5a75750c4a64b694d6390a4ca78a60a512cd190f
Author: AlbumenJ <[email protected]>
AuthorDate: Fri Mar 31 07:56:16 2023 +0000
deploy: 80ca93d3bdde9b75efb92256d2f1ea52a748f4d6
---
sitemap.xml | 2 +-
.../what/ecosystem/gateway/higress/index.html | 232 +++++++++++++++++++-
zh-cn/overview/what/ecosystem/gateway/index.xml | 240 ++++++++++++++++++++-
zh-cn/sitemap.xml | 2 +-
4 files changed, 468 insertions(+), 8 deletions(-)
diff --git a/sitemap.xml b/sitemap.xml
index b0c5345a24..d7ef75f8da 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2023-03-30T10:14:35+08:00</lastmod></sitemap><sitemap><loc>https://dubbo.apache.org/en/sitemap.xml</loc><lastmod>2023-03-30T10:11:54+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2023-03-31T15:51:46+08:00</lastmod></sitemap><sitemap><loc>https://dubbo.apache.org/en/sitemap.xml</loc><lastmod>2023-03-30T10:11:54+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git a/zh-cn/overview/what/ecosystem/gateway/higress/index.html
b/zh-cn/overview/what/ecosystem/gateway/higress/index.html
index 437c6cb195..895e561063 100644
--- a/zh-cn/overview/what/ecosystem/gateway/higress/index.html
+++ b/zh-cn/overview/what/ecosystem/gateway/higress/index.html
@@ -1,6 +1,18 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS
content="INDEX, FOLLOW"><link rel=canonical
href=https://dubbo.apache.org/zh-cn/overview/what/ecosystem/gateway/higress/><meta
charset=utf-8><meta name=viewport
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta
name=generator content="Hugo 0.111.3"><link rel="shortcut icon" type=image/png
href=/imgs/favicon.png><link rel=apple-touch-icon
href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link re [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS
content="INDEX, FOLLOW"><link rel=canonical
href=https://dubbo.apache.org/zh-cn/overview/what/ecosystem/gateway/higress/><meta
charset=utf-8><meta name=viewport
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta
name=generator content="Hugo 0.111.3"><link rel="shortcut icon" type=image/png
href=/imgs/favicon.png><link rel=apple-touch-icon
href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link re [...]
+前提条件 Higress目前支持的Dubbo框架的版本为2.x。若您使用Dubbo3.0,要求使用dubbo协议(目前暂不支持Triple协议)。
已安装Higress,并开启了对Istio CRD的支持,参考Higress安装部署文档。 部署Nacos和Dubbo服务
首先在K8s集群中apply以下资源,以部署一个Nacos注册中心,同时通过K8s service将这个Nacos server暴露出来。
+# Nacos Server配置 apiVersion: apps/v1 kind: Deployment metadata: name:
nacos-server spec: replicas: 1 selector: matchLabels: app: nacos-server
template: metadata: labels: app: nacos-server spec: containers: - env: - name:
MODE value: standalone image: nacos/nacos-server:v2.2.0 imagePullPolicy: Always
name: nacos-server ports: - containerPort: 8848 name: server dnsPolicy:
ClusterFirst restartPolicy: Always # Nacos Server Service配置 --- apiVersion: v1
kind: Service metadata: name: nacos-serv [...]
+前提条件 Higress目前支持的Dubbo框架的版本为2.x。若您使用Dubbo3.0,要求使用dubbo协议(目前暂不支持Triple协议)。
已安装Higress,并开启了对Istio CRD的支持,参考Higress安装部署文档。 部署Nacos和Dubbo服务
首先在K8s集群中apply以下资源,以部署一个Nacos注册中心,同时通过K8s service将这个Nacos server暴露出来。
+# Nacos Server配置 apiVersion: apps/v1 kind: Deployment metadata: name:
nacos-server spec: replicas: 1 selector: matchLabels: app: nacos-server
template: metadata: labels: app: nacos-server spec: containers: - env: - name:
MODE value: standalone image: nacos/nacos-server:v2.2.0 imagePullPolicy: Always
name: nacos-server ports: - containerPort: 8848 name: server dnsPolicy:
ClusterFirst restartPolicy: Always # Nacos Server Service配置 --- apiVersion: v1
kind: Service metadata: name: nacos-serv [...]
+前提条件 Higress目前支持的Dubbo框架的版本为2.x。若您使用Dubbo3.0,要求使用dubbo协议(目前暂不支持Triple协议)。
已安装Higress,并开启了对Istio CRD的支持,参考Higress安装部署文档。 部署Nacos和Dubbo服务
首先在K8s集群中apply以下资源,以部署一个Nacos注册中心,同时通过K8s service将这个Nacos server暴露出来。
+# Nacos Server配置 apiVersion: apps/v1 kind: Deployment metadata: name:
nacos-server spec: replicas: 1 selector: matchLabels: app: nacos-server
template: metadata: labels: app: nacos-server spec: containers: - env: - name:
MODE value: standalone image: nacos/nacos-server:v2.2.0 imagePullPolicy: Always
name: nacos-server ports: - containerPort: 8848 name: server dnsPolicy:
ClusterFirst restartPolicy: Always # Nacos Server Service配置 --- apiVersion: v1
kind: Service metadata: name: nacos-serv [...]
<script>var
doNotTrack=!1;if(!doNotTrack){window.dataLayer=window.dataLayer||[];function
gtag(){dataLayer.push(arguments)}gtag("js",new
Date),gtag("config","G-1TFHM5YBH0",{anonymize_ip:!1})}</script><link
rel=preload
href=/scss/main.min.578ffe330fde90c98ec1a836a78e3a4f7ea2a73a72f353cdd331fc3f8dd3a3cd.css
as=style><link
href=/scss/main.min.578ffe330fde90c98ec1a836a78e3a4f7ea2a73a72f353cdd331fc3f8dd3a3cd.css
rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js
integrity="sha256-9/a [...]
-<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/@docsearch/css@3><meta
name=theme-color content="#326ce5"><link rel=stylesheet
href=/css/feature-states.css><meta name=description content><meta
property="og:description" content><meta name=twitter:description content><meta
property="og:url"
content="https://dubbo.apache.org/zh-cn/overview/what/ecosystem/gateway/higress/"><meta
property="og:title" content="Higress"><meta name=twitter:title
content="Higress"><meta name=twitter:image:a [...]
+<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/@docsearch/css@3><meta
name=theme-color content="#326ce5"><link rel=stylesheet
href=/css/feature-states.css><meta name=description content="Higress 对接 Dubbo
服务
Higress提供了从HTTP协议到Dubbo协议进行转换的功能,用户通过配置协议转换,可以将一个Dubbo服务以HTTP接口暴露出来,从而用HTTP请求实现对Dubbo接口的调用。本文将通过一个示例来介绍如何用Higress配置HTTP到Dubbo的协议转换。该示例会引导您轻松地部署一个Nacos
server和一个Dubbo服务,然后通过Ingress将HTTP请求转发到注册在Nacos上的Dubbo服务,并通过Higress的协议转换能力完成对Dubbo服务的HTTP调用。
+前提条件 Higress目前支持的Dubbo框架的版本为2.x。若您使用Dubbo3.0,要求使用dubbo协议(目前暂不支持Triple协议)。
已安装Higress,并开启了对Istio CRD的支持,参考Higress安装部署文档。 部署Nacos和Dubbo服务
首先在K8s集群中apply以下资源,以部署一个Nacos注册中心,同时通过K8s service将这个Nacos server暴露出来。
+# Nacos Server配置 apiVersion: apps/v1 kind: Deployment metadata: name:
nacos-server spec: replicas: 1 selector: matchLabels: app: nacos-server
template: metadata: labels: app: nacos-server spec: containers: - env: - name:
MODE value: standalone image: nacos/nacos-server:v2.2.0 imagePullPolicy: Always
name: nacos-server ports: - containerPort: 8848 name: server dnsPolicy:
ClusterFirst restartPolicy: Always # Nacos Server Service配置 --- apiVersion: v1
kind: Service metadata: name: nacos-serv [...]
+前提条件 Higress目前支持的Dubbo框架的版本为2.x。若您使用Dubbo3.0,要求使用dubbo协议(目前暂不支持Triple协议)。
已安装Higress,并开启了对Istio CRD的支持,参考Higress安装部署文档。 部署Nacos和Dubbo服务
首先在K8s集群中apply以下资源,以部署一个Nacos注册中心,同时通过K8s service将这个Nacos server暴露出来。
+# Nacos Server配置 apiVersion: apps/v1 kind: Deployment metadata: name:
nacos-server spec: replicas: 1 selector: matchLabels: app: nacos-server
template: metadata: labels: app: nacos-server spec: containers: - env: - name:
MODE value: standalone image: nacos/nacos-server:v2.2.0 imagePullPolicy: Always
name: nacos-server ports: - containerPort: 8848 name: server dnsPolicy:
ClusterFirst restartPolicy: Always # Nacos Server Service配置 --- apiVersion: v1
kind: Service metadata: name: nacos-serv [...]
+前提条件 Higress目前支持的Dubbo框架的版本为2.x。若您使用Dubbo3.0,要求使用dubbo协议(目前暂不支持Triple协议)。
已安装Higress,并开启了对Istio CRD的支持,参考Higress安装部署文档。 部署Nacos和Dubbo服务
首先在K8s集群中apply以下资源,以部署一个Nacos注册中心,同时通过K8s service将这个Nacos server暴露出来。
+# Nacos Server配置 apiVersion: apps/v1 kind: Deployment metadata: name:
nacos-server spec: replicas: 1 selector: matchLabels: app: nacos-server
template: metadata: labels: app: nacos-server spec: containers: - env: - name:
MODE value: standalone image: nacos/nacos-server:v2.2.0 imagePullPolicy: Always
name: nacos-server ports: - containerPort: 8848 name: server dnsPolicy:
ClusterFirst restartPolicy: Always # Nacos Server Service配置 --- apiVersion: v1
kind: Service metadata: name: nacos-serv [...]
<link href=/css/community.css rel=stylesheet><link href=/css/contactus.css
rel=stylesheet><link href=/css/language.css rel=stylesheet><script
src=/js/script.js></script></head><body class="td-page
td-documentation"><header><nav class="js-navbar-scroll navbar navbar-expand
navbar-dark flex-column flex-md-row td-navbar" data-auto-burger=primary><a
class=navbar-brand href=/zh-cn/><span class=navbar-logo></span><span
class="text-uppercase font-weight-bold">Apache Dubbo</span></a><div class="
[...]
<a href=#>Apache Dubbo 全新改版网站与文档</a> <em>正式上线!</em></h4><p>新版文档仍处于持续完善中,涵盖
Dubbo3 及最新特性使用方式,我们计划在未来几个月内为用户提供最完善、易用的使用体验!<br>可扫码反馈问题!
2023-02-21.</p></div></aside></div></header><div class="container-fluid
td-outer"><div class=td-main><div class="row flex-md-nowrap"><div class="col-12
col-md-3 col-xl-2 td-sidebar
d-print-none"><script>$(function(){$("#td-section-nav
a").removeClass("active"),$("#td-section-nav
#m-zh-cnoverviewwhatecosystemgatewayhigress").addClass("active"),$("#td-section
[...]
<label for=m-zh-cnoverviewhome-check><a href=/zh-cn/overview/home/
title="Dubbo 文档" class="align-left pl-0 td-sidebar-link
td-sidebar-link__section"
id=m-zh-cnoverviewhome><span>主页</span></a></label></li><li
class="td-sidebar-nav__section-title td-sidebar-nav__section with-child"
id=m-zh-cnoverviewquickstart-li><input type=checkbox
id=m-zh-cnoverviewquickstart-check>
@@ -723,11 +735,221 @@
<label for=m-zh-cnoverviewreferenceproposalsadmin-check><a
href=/zh-cn/overview/reference/proposals/admin/ title="Dubbo Admin 控制面总体架构设计"
class="align-left pl-0 td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceproposalsadmin><span>Admin
架构设计</span></a></label></li><li class="td-sidebar-nav__section-title
td-sidebar-nav__section without-child"
id=m-zh-cnoverviewreferenceproposalsmetrics-li><input type=checkbox
id=m-zh-cnoverviewreferenceproposalsmetrics-check>
<label for=m-zh-cnoverviewreferenceproposalsmetrics-check><a
href=/zh-cn/overview/reference/proposals/metrics/ class="align-left pl-0
td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceproposalsmetrics><span>指标埋点</span></a></label></li><li
class="td-sidebar-nav__section-title td-sidebar-nav__section without-child"
id=m-zh-cnoverviewreferenceproposalsheuristic-flow-control-li><input
type=checkbox id=m-zh-cnoverviewreferenceproposalsheuristic-flow-control-check>
<label for=m-zh-cnoverviewreferenceproposalsheuristic-flow-control-check><a
href=/zh-cn/overview/reference/proposals/heuristic-flow-control/
title=自适应负载均衡与限流 class="align-left pl-0 td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceproposalsheuristic-flow-control><span>服务柔性</span></a></label></li><li
class="td-sidebar-nav__section-title td-sidebar-nav__section without-child"
id=m-zh-cnoverviewreferenceproposalsservice-discovery-li><input type=checkbox
id=m-zh-cnoverviewref [...]
-<label for=m-zh-cnoverviewreferenceproposalsservice-discovery-check><a
href=/zh-cn/overview/reference/proposals/service-discovery/ title="Dubbo3
应用级服务发现设计" class="align-left pl-0 td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceproposalsservice-discovery><span>应用级服务发现</span></a></label></li></ul></li></ul></li></ul></li></ul></nav></div></div><main
class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb
class=td-breadcrumbs><ol class=breadcrumb><li [...]
-<button class="btn btn-primary mb-4
feedback--no">否</button></div><script>const
yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const
sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disabled
[...]
+<label for=m-zh-cnoverviewreferenceproposalsservice-discovery-check><a
href=/zh-cn/overview/reference/proposals/service-discovery/ title="Dubbo3
应用级服务发现设计" class="align-left pl-0 td-sidebar-link td-sidebar-link__page"
id=m-zh-cnoverviewreferenceproposalsservice-discovery><span>应用级服务发现</span></a></label></li></ul></li></ul></li></ul></li></ul></nav></div></div><main
class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb
class=td-breadcrumbs><ol class=breadcrumb><li [...]
+</span></span><span style=display:flex><span><span
style=color:#268bd2>apiVersion</span>: apps/v1
+</span></span><span style=display:flex><span><span
style=color:#268bd2>kind</span>: Deployment
+</span></span><span style=display:flex><span><span
style=color:#268bd2>metadata</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>: nacos-server
+</span></span><span style=display:flex><span><span
style=color:#268bd2>spec</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>replicas</span>: <span style=color:#2aa198>1</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>selector</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>matchLabels</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>app</span>: nacos-server
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>template</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>metadata</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>labels</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>app</span>: nacos-server
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>spec</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>containers</span>:
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>env</span>:
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>name</span>: MODE
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>value</span>: standalone
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>image</span>: nacos/nacos-server:v2.2.0
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>imagePullPolicy</span>: Always
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>: nacos-server
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>ports</span>:
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>containerPort</span>: <span style=color:#2aa198>8848</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>: server
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>dnsPolicy</span>: ClusterFirst
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>restartPolicy</span>: Always
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#586e75># Nacos
Server Service配置</span>
+</span></span><span style=display:flex><span>---
+</span></span><span style=display:flex><span><span
style=color:#268bd2>apiVersion</span>: v1
+</span></span><span style=display:flex><span><span
style=color:#268bd2>kind</span>: Service
+</span></span><span style=display:flex><span><span
style=color:#268bd2>metadata</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>: nacos-server
+</span></span><span style=display:flex><span><span
style=color:#268bd2>spec</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>ports</span>:
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>port</span>: <span style=color:#2aa198>8848</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>: server
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>protocol</span>: TCP
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>targetPort</span>: <span style=color:#2aa198>8848</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>selector</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>app</span>: nacos-server
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>type</span>: ClusterIP
+</span></span></code></pre></div><p>在K8s集群中apply以下资源,以部署一个Dubbo服务,该Dubbo服务将注册到上述的Naocs中。</p><div
class=highlight><pre tabindex=0
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-yaml data-lang=yaml><span style=display:flex><span><span
style=color:#268bd2>apiVersion</span>: apps/v1
+</span></span><span style=display:flex><span><span
style=color:#268bd2>kind</span>: Deployment
+</span></span><span style=display:flex><span><span
style=color:#268bd2>metadata</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>: nacos-provider
+</span></span><span style=display:flex><span><span
style=color:#268bd2>spec</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>replicas</span>: <span style=color:#2aa198>1</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>selector</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>matchLabels</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>app</span>: nacos-provider
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>template</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>metadata</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>labels</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>app</span>: nacos-provider
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>spec</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>containers</span>:
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>name</span>: server
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>image</span>:
higress-registry.cn-hangzhou.cr.aliyuncs.com/samples/nacos-dubbo-provider:v1.0.0
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>imagePullPolicy</span>: IfNotPresent
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>ports</span>:
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>containerPort</span>: <span style=color:#2aa198>20880</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>env</span>:
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>name</span>: DUBBO_REGISTRY_ADDRESS
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>value</span>: nacos-server.default.svc.cluster.local
+</span></span></code></pre></div><p>该Dubbo服务的代码可以在Nacos的<a
href=https://github.com/nacos-group/nacos-examples/tree/master/nacos-dubbo-example>示例代码</a>仓库中找到,其接口定义为:</p><div
class=highlight><pre tabindex=0
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-java data-lang=java><span style=display:flex><span><span
style=color:#719e07>package</span> com.alibaba.nacos.example.dubbo.service<span
style=color:#719e07>;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span
style=color:#268bd2>public</span> <span style=color:#268bd2>interface</span>
<span style=color:#268bd2>DemoService</span> <span style=color:#719e07>{</span>
+</span></span><span style=display:flex><span> String <span
style=color:#268bd2>sayName</span><span style=color:#719e07>(</span>String
name<span style=color:#719e07>);</span>
+</span></span><span style=display:flex><span><span style=color:#719e07>}</span>
+</span></span></code></pre></div><p>接口实现如下:</p><div class=highlight><pre
tabindex=0
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-java data-lang=java><span style=display:flex><span><span
style=color:#719e07>package</span> com.alibaba.nacos.example.dubbo.service<span
style=color:#719e07>;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span
style=color:#719e07>import</span>
com.alibaba.dubbo.config.annotation.Service<span style=color:#719e07>;</span>
+</span></span><span style=display:flex><span><span
style=color:#719e07>import</span> com.alibaba.dubbo.rpc.RpcContext<span
style=color:#719e07>;</span>
+</span></span><span style=display:flex><span><span
style=color:#719e07>import</span>
org.springframework.beans.factory.annotation.Value<span
style=color:#719e07>;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span><span style=color:#586e75>/**
+</span></span></span><span style=display:flex><span><span style=color:#586e75>
* Default {@link DemoService}
+</span></span></span><span style=display:flex><span><span style=color:#586e75>
* https://nacos.io/zh-cn/docs/use-nacos-with-dubbo.html
+</span></span></span><span style=display:flex><span><span style=color:#586e75>
* @since 2.6.5
+</span></span></span><span style=display:flex><span><span style=color:#586e75>
*/</span>
+</span></span><span style=display:flex><span><span
style=color:#268bd2>@Service</span><span style=color:#719e07>(</span>version
<span style=color:#719e07>=</span> <span
style=color:#2aa198>"${demo.service.version}"</span><span
style=color:#719e07>,</span> group <span style=color:#719e07>=</span> <span
style=color:#2aa198>"${demo.service.group}"</span><span
style=color:#719e07>)</span>
+</span></span><span style=display:flex><span><span
style=color:#268bd2>public</span> <span style=color:#268bd2>class</span> <span
style=color:#268bd2>DefaultService</span> <span
style=color:#268bd2>implements</span> DemoService <span
style=color:#719e07>{</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>@Value</span><span style=color:#719e07>(</span><span
style=color:#2aa198>"${demo.service.name}"</span><span
style=color:#719e07>)</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>private</span> String serviceName<span
style=color:#719e07>;</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>public</span> String <span
style=color:#268bd2>sayName</span><span style=color:#719e07>(</span>String
name<span style=color:#719e07>)</span> <span style=color:#719e07>{</span>
+</span></span><span style=display:flex><span> RpcContext rpcContext
<span style=color:#719e07>=</span> RpcContext<span
style=color:#719e07>.</span>getContext<span style=color:#719e07>();</span>
+</span></span><span style=display:flex><span> <span
style=color:#719e07>return</span> String<span
style=color:#719e07>.</span>format<span style=color:#719e07>(</span><span
style=color:#2aa198>"Service [name :%s , port : %d] %s(\"%s\") :
Hello,%s"</span><span style=color:#719e07>,</span>
+</span></span><span style=display:flex><span> serviceName<span
style=color:#719e07>,</span>
+</span></span><span style=display:flex><span> rpcContext<span
style=color:#719e07>.</span>getLocalPort<span style=color:#719e07>(),</span>
+</span></span><span style=display:flex><span> rpcContext<span
style=color:#719e07>.</span>getMethodName<span style=color:#719e07>(),</span>
+</span></span><span style=display:flex><span> name<span
style=color:#719e07>,</span>
+</span></span><span style=display:flex><span> name<span
style=color:#719e07>);</span>
+</span></span><span style=display:flex><span> <span
style=color:#719e07>}</span>
+</span></span><span style=display:flex><span><span style=color:#719e07>}</span>
+</span></span></code></pre></div><p>在本示例中,该Dubbo服务的服务名为com.alibaba.nacos.example.dubbo.service.DemoService,服务版本为1.0.0,服务分组为dev。</p><p>为了测试方便,我们可以通过运行以下命令来将我们部署在K8s集群中的Naocs服务映射到本地端口:</p><div
class=highlight><pre tabindex=0
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-bash data-lang=bash><span style=display:flex><span>kubectl
port-forward svc/nacos-server 8848:8848 --address<span
style=color:#719e07>=</span><span style=color:#2 [...]
+</span></span></code></pre></div><p>然后请求Nacos的服务发现接口,可以查看到我们Dubbo服务的元数据信息,从而对以上部署进行验证。</p><div
class=highlight><pre tabindex=0
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-bash data-lang=bash><span style=display:flex><span><span
style=color:#268bd2>$curl</span> -X GET <span
style=color:#2aa198>'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=providers:com.alibaba.nacos.example.dubbo.service.DemoService:1.0.0:de
[...]
+</span></span><span style=display:flex><span><span
style=color:#719e07>{</span><span
style=color:#2aa198>"name"</span>:<span
style=color:#2aa198>"DEFAULT_GROUP@@providers:com.alibaba.nacos.example.dubbo.service.DemoService:1.0.0:dev"</span>,<span
style=color:#2aa198>"groupName"</span>:<span
style=color:#2aa198>"DEFAULT_GROUP"</span>,<span
style=color:#2aa198>"clusters"</span>:<span
style=color:#2aa198>""</span>,<span style=color:#2aa198> [...]
+</span></span></code></pre></div><h2
id=通过ingress转发请求到dubbo服务>通过Ingress转发请求到Dubbo服务</h2><p>Higress可以通过McpBridge来对接Nacos作为服务来源,在K8s集群中apply以下资源来配置McpBridge</p><div
class=highlight><pre tabindex=0
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-yaml data-lang=yaml><span style=display:flex><span><span
style=color:#268bd2>apiVersion</span>: networking.higress.io/v1
+</span></span><span style=display:flex><span><span
style=color:#268bd2>kind</span>: McpBridge
+</span></span><span style=display:flex><span><span
style=color:#268bd2>metadata</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>: default
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>namespace</span>: higress-system
+</span></span><span style=display:flex><span><span
style=color:#268bd2>spec</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>registries</span>:
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>domain</span>: nacos-server.default.svc.cluster.local
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>nacosGroups</span>:
+</span></span><span style=display:flex><span> - DEFAULT_GROUP
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>: nacos-service-resource
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>port</span>: <span style=color:#2aa198>8848</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>type</span>: nacos2
+</span></span></code></pre></div><p>通过McpBridge,我们可以直接从Nacos中发现Dubbo服务,并为其创建路由,而无需为每一个Dubbo服务创建service资源。</p><p>接下来我们创建如下Ingress,从而创建一条指向Dubbo服务的HTTP路由:</p><div
class=highlight><pre tabindex=0
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-yaml data-lang=yaml><span style=display:flex><span><span
style=color:#268bd2>apiVersion</span>: networking.k8s.io/v1
+</span></span><span style=display:flex><span><span
style=color:#268bd2>kind</span>: Ingress
+</span></span><span style=display:flex><span><span
style=color:#268bd2>metadata</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>annotations</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>higress.io/destination</span>:
providers:com.alibaba.nacos.example.dubbo.service.DemoService:1.0.0:dev.DEFAULT-GROUP.public.nacos
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>: demo
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>namespace</span>: higress-system
+</span></span><span style=display:flex><span><span
style=color:#268bd2>spec</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>ingressClassName</span>: higress
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>rules</span>:
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>http</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>paths</span>:
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>backend</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>resource</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>apiGroup</span>: networking.higress.io
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>kind</span>: McpBridge
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>: default
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>path</span>: /dubbo
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>pathType</span>: Prefix
+</span></span></code></pre></div><p>这样,path前缀为/dubbo的请求就会被路由到我们刚刚创建的Dubbo服务上。</p><h2
id=通过envoyfilter配置http到dubbo的协议转换规则>通过EnvoyFilter配置HTTP到Dubbo的协议转换规则</h2><p>经过上述步骤,我们已经在K8s环境下部署了一套Naocs和Dubbo,并通过Ingress将path前缀为/dubbo的请求路由到我们配好的Dubbo服务上。但光是这样是无法正常通信的,因为Dubbo服务使用的是定制的Dubbo协议,无法天然与HTTP协议进行兼容。因此接下来我们将通过EnvoyFilter来配置HTTP到Dubbo的协议转换规则,从而实现用HTTP请求来调用Dubbo服务。</p><p>在K8s集群中apply以下资源,要注意的是,EnvoyFilter是属于Istio的CRD,因此需要参照前提条件中的第2点来开启Higress对Istio
CRD的支持。</p><div class=highlight><pre tabindex=0 [...]
+</span></span><span style=display:flex><span><span
style=color:#268bd2>kind</span>: EnvoyFilter
+</span></span><span style=display:flex><span><span
style=color:#268bd2>metadata</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>: http-dubbo-transcoder-test
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>namespace</span>: higress-system
+</span></span><span style=display:flex><span><span
style=color:#268bd2>spec</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>configPatches</span>:
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>applyTo</span>: HTTP_FILTER
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>match</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>context</span>: GATEWAY
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>listener</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>filterChain</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>filter</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>: envoy.filters.network.http_connection_manager
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>subFilter</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>: envoy.filters.http.router
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>patch</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>operation</span>: INSERT_BEFORE
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>value</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>: envoy.filters.http.http_dubbo_transcoder
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>typed_config</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>'@type'</span>:
type.googleapis.com/udpa.type.v1.TypedStruct
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>type_url</span>:
type.googleapis.com/envoy.extensions.filters.http.http_dubbo_transcoder.v3.HttpDubboTranscoder
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>applyTo</span>: HTTP_ROUTE
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>match</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>context</span>: GATEWAY
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>routeConfiguration</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>vhost</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>route</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>: demo
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>patch</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>operation</span>: MERGE
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>value</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>route</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>upgrade_configs</span>:
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>connect_config</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>allow_post</span>: <span style=color:#cb4b16>true</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>upgrade_type</span>: CONNECT
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>typed_per_filter_config</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>envoy.filters.http.http_dubbo_transcoder</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>'@type'</span>:
type.googleapis.com/udpa.type.v1.TypedStruct
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>type_url</span>:
type.googleapis.com/envoy.extensions.filters.http.http_dubbo_transcoder.v3.HttpDubboTranscoder
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>value</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>request_validation_options</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>reject_unknown_method</span>: <span
style=color:#cb4b16>true</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>reject_unknown_query_parameters</span>: <span
style=color:#cb4b16>true</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>services_mapping</span>:
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>group</span>: dev
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>method_mapping</span>:
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>name</span>: sayName
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>parameter_mapping</span>:
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>extract_key</span>: p
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>extract_key_spec</span>: ALL_QUERY_PARAMETER
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>mapping_type</span>: java.lang.String
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>passthrough_setting</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>passthrough_all_headers</span>: <span
style=color:#cb4b16>true</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>path_matcher</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>match_http_method_spec</span>: ALL_GET
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>match_pattern</span>: /dubbo/hello
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>:
com.alibaba.nacos.example.dubbo.service.DemoService
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>version</span>: <span style=color:#2aa198>1.0.0</span>
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>url_unescape_spec</span>: ALL_CHARACTERS_EXCEPT_RESERVED
+</span></span><span style=display:flex><span> - <span
style=color:#268bd2>applyTo</span>: CLUSTER
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>match</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>cluster</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>service</span>:
providers:com.alibaba.nacos.example.dubbo.service.DemoService:1.0.0:dev.DEFAULT-GROUP.public.nacos
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>context</span>: GATEWAY
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>patch</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>operation</span>: MERGE
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>value</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>upstream_config</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>name</span>: envoy.upstreams.http.dubbo_tcp
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>typed_config</span>:
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>'@type'</span>:
type.googleapis.com/udpa.type.v1.TypedStruct
+</span></span><span style=display:flex><span> <span
style=color:#268bd2>type_url</span>:
type.googleapis.com/envoy.extensions.upstreams.http.dubbo_tcp.v3.DubboTcpConnectionPoolProto
+</span></span></code></pre></div><p>在以上EnvoyFilter中,我们配置了将path为/dubbo/hello的HTTP请求转发到Dubbo服务com.alibaba.nacos.example.dubbo.service.DemoService:1.0.0:dev中,并调用其sayName方法,而该方法的参数则通过HTTP
url中的的query参数p来指定。</p><h2
id=请求验证>请求验证</h2><p>通过以上配置,我们就可以执行以下curl命令来调用这个dubbo服务了:</p><div
class=highlight><pre tabindex=0
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
class=language-bash data-lang=bash><span style=display:flex><span><span
style=color:#268bd2>$ [...]
+</span></span><span style=display:flex><span><span
style=color:#719e07>{</span><span
style=color:#2aa198>"result"</span>:<span
style=color:#2aa198>"Service [name :demoService , port : 20880]
sayName(\"abc\") : Hello,abc"</span><span
style=color:#719e07>}</span>
+</span></span></code></pre></div><h2 id=配置参考>配置参考</h2><p>EnvoyFilter的相关配置项参考<a
href=https://higress.io/zh-cn/docs/user/dubbo-envoyfilter>HTTP转Dubbo配置说明</a></p><div
id=pre-footer><h2>反馈</h2><p class=feedback--prompt>此页是否对您有帮助?</p><button
class="btn btn-primary mb-4 feedback--yes">是</button>
+<button class="btn btn-primary mb-4
feedback--no">否</button></div><script>const
yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const
sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disabled
[...]
<a
href="https://github.com/apache/dubbo-website/new/master/content/zh-cn/overview/what/ecosystem/gateway/higress.md?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front
[...]
<a href="https://github.com/apache/dubbo-website/issues/new?title=Higress"
target=_blank><i class="fab fa-github fa-fw"></i> 登记问题</a>
-<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas
fa-tasks fa-fw"></i> 提交项目问题</a></div></div></div></div></div><footer
class="bg-dark py-5 row d-print-none footer-margin-0"><div
class="container-fluid mx-sm-5"><div class=row><div class="col-6 col-sm-4
text-xs-center order-sm-2"><ul class="list-inline mb-0"><li
class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top
title="Dubbo mailing list archive" aria-label="Dubbo mailing list archive"><a c
[...]
+<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas
fa-tasks fa-fw"></i> 提交项目问题</a></div><nav id=TableOfContents><ul><li><a
href=#前提条件>前提条件</a></li><li><a
href=#部署nacos和dubbo服务>部署Nacos和Dubbo服务</a></li><li><a
href=#通过ingress转发请求到dubbo服务>通过Ingress转发请求到Dubbo服务</a></li><li><a
href=#通过envoyfilter配置http到dubbo的协议转换规则>通过EnvoyFilter配置HTTP到Dubbo的协议转换规则</a></li><li><a
href=#请求验证>请求验证</a></li><li><a
href=#配置参考>配置参考</a></li></ul></nav></div></div></div></div><footer class=" [...]
<script src=/js/bootstrap.min.js
integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy
crossorigin=anonymous></script>
<script
src=/js/main.min.a4534a01940be8c082c4c0e6777b61df9884f202b61c9519352adb6d1039d5aa.js
integrity="sha256-pFNKAZQL6MCCxMDmd3th35iE8gK2HJUZNSrbbRA51ao="
crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/@docsearch/js@3></script>
diff --git a/zh-cn/overview/what/ecosystem/gateway/index.xml
b/zh-cn/overview/what/ecosystem/gateway/index.xml
index b50644b98a..c8e3cabd09 100644
--- a/zh-cn/overview/what/ecosystem/gateway/index.xml
+++ b/zh-cn/overview/what/ecosystem/gateway/index.xml
@@ -446,4 +446,242 @@
<li>通过<code>springboot starter</code>即可引入不同的注册中心和数同步方式,扩展性很好;</li>
<li>通过<code>admin</code>支持规则热更新,方便流量管控;</li>
<li><code>Disruptor</code>队列是为了数据与操作解耦,以及数据缓冲。</li>
-</ul></description></item><item><title>Overview:
Higress</title><link>https://dubbo.apache.org/zh-cn/overview/what/ecosystem/gateway/higress/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/what/ecosystem/gateway/higress/</guid><description/></item><item><title>Overview:
Apache Dubbo Go
Pixiu</title><link>https://dubbo.apache.org/zh-cn/overview/what/ecosystem/gateway/pixiu/</link><pubDate>Mon,
01 Jan 0001 00:00:00 +0000</pubDate><g [...]
\ No newline at end of file
+</ul></description></item><item><title>Overview:
Higress</title><link>https://dubbo.apache.org/zh-cn/overview/what/ecosystem/gateway/higress/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/what/ecosystem/gateway/higress/</guid><description>
+<h1 id="higress-对接-dubbo-服务">Higress 对接 Dubbo 服务</h1>
+<p>Higress提供了从HTTP协议到Dubbo协议进行转换的功能,用户通过配置协议转换,可以将一个Dubbo服务以HTTP接口暴露出来,从而用HTTP请求实现对Dubbo接口的调用。本文将通过一个示例来介绍如何用Higress配置HTTP到Dubbo的协议转换。该示例会引导您轻松地部署一个Nacos
server和一个Dubbo服务,然后通过Ingress将HTTP请求转发到注册在Nacos上的Dubbo服务,并通过Higress的协议转换能力完成对Dubbo服务的HTTP调用。</p>
+<h2 id="前提条件">前提条件</h2>
+<ol>
+<li>Higress目前支持的Dubbo框架的版本为2.x。若您使用Dubbo3.0,要求使用dubbo协议(目前暂不支持Triple协议)。</li>
+<li>已安装Higress,并开启了对Istio CRD的支持,参考<a
href="https://higress.io/zh-cn/docs/ops/deploy-by-helm">Higress安装部署文档</a>。</li>
+</ol>
+<h2 id="部署nacos和dubbo服务">部署Nacos和Dubbo服务</h2>
+<p>首先在K8s集群中apply以下资源,以部署一个Nacos注册中心,同时通过K8s service将这个Nacos
server暴露出来。</p>
+<div class="highlight"><pre tabindex="0"
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
class="language-yaml" data-lang="yaml"><span
style="display:flex;"><span><span style="color:#586e75"># Nacos
Server配置</span>
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">apiVersion</span>: apps/v1
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">kind</span>: Deployment
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">metadata</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>: nacos-server
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">spec</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">replicas</span>: <span
style="color:#2aa198">1</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">selector</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">matchLabels</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">app</span>: nacos-server
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">template</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">metadata</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">labels</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">app</span>: nacos-server
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">spec</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">containers</span>:
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">env</span>:
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">name</span>: MODE
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">value</span>: standalone
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">image</span>: nacos/nacos-server:v2.2.0
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">imagePullPolicy</span>: Always
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>: nacos-server
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">ports</span>:
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">containerPort</span>: <span
style="color:#2aa198">8848</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>: server
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">dnsPolicy</span>: ClusterFirst
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">restartPolicy</span>: Always
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span><span
style="color:#586e75"># Nacos Server Service配置</span>
+</span></span><span style="display:flex;"><span>---
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">apiVersion</span>: v1
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">kind</span>: Service
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">metadata</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>: nacos-server
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">spec</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">ports</span>:
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">port</span>: <span
style="color:#2aa198">8848</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>: server
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">protocol</span>: TCP
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">targetPort</span>: <span
style="color:#2aa198">8848</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">selector</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">app</span>: nacos-server
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">type</span>: ClusterIP
+</span></span></code></pre></div><p>在K8s集群中apply以下资源,以部署一个Dubbo服务,该Dubbo服务将注册到上述的Naocs中。</p>
+<div class="highlight"><pre tabindex="0"
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
class="language-yaml" data-lang="yaml"><span
style="display:flex;"><span><span
style="color:#268bd2">apiVersion</span>: apps/v1
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">kind</span>: Deployment
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">metadata</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>: nacos-provider
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">spec</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">replicas</span>: <span
style="color:#2aa198">1</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">selector</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">matchLabels</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">app</span>: nacos-provider
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">template</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">metadata</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">labels</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">app</span>: nacos-provider
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">spec</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">containers</span>:
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">name</span>: server
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">image</span>:
higress-registry.cn-hangzhou.cr.aliyuncs.com/samples/nacos-dubbo-provider:v1.0.0
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">imagePullPolicy</span>: IfNotPresent
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">ports</span>:
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">containerPort</span>: <span
style="color:#2aa198">20880</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">env</span>:
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">name</span>: DUBBO_REGISTRY_ADDRESS
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">value</span>: nacos-server.default.svc.cluster.local
+</span></span></code></pre></div><p>该Dubbo服务的代码可以在Nacos的<a
href="https://github.com/nacos-group/nacos-examples/tree/master/nacos-dubbo-example">示例代码</a>仓库中找到,其接口定义为:</p>
+<div class="highlight"><pre tabindex="0"
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
class="language-java" data-lang="java"><span
style="display:flex;"><span><span style="color:#719e07">package</span>
com.alibaba.nacos.example.dubbo.service<span
style="color:#719e07">;</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">public</span> <span
style="color:#268bd2">interface</span> <span
style="color:#268bd2">DemoService</span> <span
style="color:#719e07">{</span>
+</span></span><span style="display:flex;"><span> String <span
style="color:#268bd2">sayName</span><span
style="color:#719e07">(</span>String name<span
style="color:#719e07">);</span>
+</span></span><span style="display:flex;"><span><span
style="color:#719e07">}</span>
+</span></span></code></pre></div><p>接口实现如下:</p>
+<div class="highlight"><pre tabindex="0"
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
class="language-java" data-lang="java"><span
style="display:flex;"><span><span style="color:#719e07">package</span>
com.alibaba.nacos.example.dubbo.service<span
style="color:#719e07">;</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span><span
style="color:#719e07">import</span>
com.alibaba.dubbo.config.annotation.Service<span
style="color:#719e07">;</span>
+</span></span><span style="display:flex;"><span><span
style="color:#719e07">import</span> com.alibaba.dubbo.rpc.RpcContext<span
style="color:#719e07">;</span>
+</span></span><span style="display:flex;"><span><span
style="color:#719e07">import</span>
org.springframework.beans.factory.annotation.Value<span
style="color:#719e07">;</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span><span
style="color:#586e75">/**
+</span></span></span><span style="display:flex;"><span><span
style="color:#586e75"> * Default {@link DemoService}
+</span></span></span><span style="display:flex;"><span><span
style="color:#586e75"> * https://nacos.io/zh-cn/docs/use-nacos-with-dubbo.html
+</span></span></span><span style="display:flex;"><span><span
style="color:#586e75"> * @since 2.6.5
+</span></span></span><span style="display:flex;"><span><span
style="color:#586e75"> */</span>
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">@Service</span><span
style="color:#719e07">(</span>version <span
style="color:#719e07">=</span> <span
style="color:#2aa198">&#34;${demo.service.version}&#34;</span><span
style="color:#719e07">,</span> group <span
style="color:#719e07">=</span> <span
style="color:#2aa198">&#34;${demo.service.group}&#34;</span><span
style="color:#719e07">)</span>
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">public</span> <span
style="color:#268bd2">class</span> <span
style="color:#268bd2">DefaultService</span> <span
style="color:#268bd2">implements</span> DemoService <span
style="color:#719e07">{</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">@Value</span><span
style="color:#719e07">(</span><span
style="color:#2aa198">&#34;${demo.service.name}&#34;</span><span
style="color:#719e07">)</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">private</span> String serviceName<span
style="color:#719e07">;</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">public</span> String <span
style="color:#268bd2">sayName</span><span
style="color:#719e07">(</span>String name<span
style="color:#719e07">)</span> <span style="color:#719e07">{</span>
+</span></span><span style="display:flex;"><span> RpcContext
rpcContext <span style="color:#719e07">=</span> RpcContext<span
style="color:#719e07">.</span>getContext<span
style="color:#719e07">();</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#719e07">return</span> String<span
style="color:#719e07">.</span>format<span
style="color:#719e07">(</span><span
style="color:#2aa198">&#34;Service [name :%s , port : %d]
%s(\&#34;%s\&#34;) : Hello,%s&#34;</span><span
style="color:#719e07">,</span>
+</span></span><span style="display:flex;"><span>
serviceName<span style="color:#719e07">,</span>
+</span></span><span style="display:flex;"><span>
rpcContext<span style="color:#719e07">.</span>getLocalPort<span
style="color:#719e07">(),</span>
+</span></span><span style="display:flex;"><span>
rpcContext<span style="color:#719e07">.</span>getMethodName<span
style="color:#719e07">(),</span>
+</span></span><span style="display:flex;"><span> name<span
style="color:#719e07">,</span>
+</span></span><span style="display:flex;"><span> name<span
style="color:#719e07">);</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#719e07">}</span>
+</span></span><span style="display:flex;"><span><span
style="color:#719e07">}</span>
+</span></span></code></pre></div><p>在本示例中,该Dubbo服务的服务名为com.alibaba.nacos.example.dubbo.service.DemoService,服务版本为1.0.0,服务分组为dev。</p>
+<p>为了测试方便,我们可以通过运行以下命令来将我们部署在K8s集群中的Naocs服务映射到本地端口:</p>
+<div class="highlight"><pre tabindex="0"
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
class="language-bash" data-lang="bash"><span
style="display:flex;"><span>kubectl port-forward svc/nacos-server 8848:8848
--address<span style="color:#719e07">=</span><span
style="color:#2aa198">&#39;0.0.0.0&#39;</span>
+</span></span></code></pre></div><p>然后请求Nacos的服务发现接口,可以查看到我们Dubbo服务的元数据信息,从而对以上部署进行验证。</p>
+<div class="highlight"><pre tabindex="0"
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
class="language-bash" data-lang="bash"><span
style="display:flex;"><span><span style="color:#268bd2">$curl</span>
-X GET <span
style="color:#2aa198">&#39;http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=providers:com.alibaba.nacos.example.dubbo.service.DemoService:1.0.0:dev&#39;</span>
+</span></span><span style="display:flex;"><span><span
style="color:#719e07">{</span><span
style="color:#2aa198">&#34;name&#34;</span>:<span
style="color:#2aa198">&#34;DEFAULT_GROUP@@providers:com.alibaba.nacos.example.dubbo.service.DemoService:1.0.0:dev&#34;</span>,<span
style="color:#2aa198">&#34;groupName&#34;</span>:<span
style="color:#2aa198">&#34;DEFAULT_GROUP&#34;</span>,<span
style="color:#2aa198">&#3 [...]
+</span></span></code></pre></div><h2
id="通过ingress转发请求到dubbo服务">通过Ingress转发请求到Dubbo服务</h2>
+<p>Higress可以通过McpBridge来对接Nacos作为服务来源,在K8s集群中apply以下资源来配置McpBridge</p>
+<div class="highlight"><pre tabindex="0"
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
class="language-yaml" data-lang="yaml"><span
style="display:flex;"><span><span
style="color:#268bd2">apiVersion</span>: networking.higress.io/v1
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">kind</span>: McpBridge
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">metadata</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>: default
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">namespace</span>: higress-system
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">spec</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">registries</span>:
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">domain</span>: nacos-server.default.svc.cluster.local
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">nacosGroups</span>:
+</span></span><span style="display:flex;"><span> - DEFAULT_GROUP
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>: nacos-service-resource
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">port</span>: <span
style="color:#2aa198">8848</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">type</span>: nacos2
+</span></span></code></pre></div><p>通过McpBridge,我们可以直接从Nacos中发现Dubbo服务,并为其创建路由,而无需为每一个Dubbo服务创建service资源。</p>
+<p>接下来我们创建如下Ingress,从而创建一条指向Dubbo服务的HTTP路由:</p>
+<div class="highlight"><pre tabindex="0"
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
class="language-yaml" data-lang="yaml"><span
style="display:flex;"><span><span
style="color:#268bd2">apiVersion</span>: networking.k8s.io/v1
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">kind</span>: Ingress
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">metadata</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">annotations</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">higress.io/destination</span>:
providers:com.alibaba.nacos.example.dubbo.service.DemoService:1.0.0:dev.DEFAULT-GROUP.public.nacos
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>: demo
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">namespace</span>: higress-system
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">spec</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">ingressClassName</span>: higress
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">rules</span>:
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">http</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">paths</span>:
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">backend</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">resource</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">apiGroup</span>: networking.higress.io
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">kind</span>: McpBridge
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>: default
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">path</span>: /dubbo
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">pathType</span>: Prefix
+</span></span></code></pre></div><p>这样,path前缀为/dubbo的请求就会被路由到我们刚刚创建的Dubbo服务上。</p>
+<h2
id="通过envoyfilter配置http到dubbo的协议转换规则">通过EnvoyFilter配置HTTP到Dubbo的协议转换规则</h2>
+<p>经过上述步骤,我们已经在K8s环境下部署了一套Naocs和Dubbo,并通过Ingress将path前缀为/dubbo的请求路由到我们配好的Dubbo服务上。但光是这样是无法正常通信的,因为Dubbo服务使用的是定制的Dubbo协议,无法天然与HTTP协议进行兼容。因此接下来我们将通过EnvoyFilter来配置HTTP到Dubbo的协议转换规则,从而实现用HTTP请求来调用Dubbo服务。</p>
+<p>在K8s集群中apply以下资源,要注意的是,EnvoyFilter是属于Istio的CRD,因此需要参照前提条件中的第2点来开启Higress对Istio
CRD的支持。</p>
+<div class="highlight"><pre tabindex="0"
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
class="language-yaml" data-lang="yaml"><span
style="display:flex;"><span><span
style="color:#268bd2">apiVersion</span>: networking.istio.io/v1alpha3
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">kind</span>: EnvoyFilter
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">metadata</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>: http-dubbo-transcoder-test
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">namespace</span>: higress-system
+</span></span><span style="display:flex;"><span><span
style="color:#268bd2">spec</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">configPatches</span>:
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">applyTo</span>: HTTP_FILTER
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">match</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">context</span>: GATEWAY
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">listener</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">filterChain</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">filter</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>:
envoy.filters.network.http_connection_manager
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">subFilter</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>: envoy.filters.http.router
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">patch</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">operation</span>: INSERT_BEFORE
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">value</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>: envoy.filters.http.http_dubbo_transcoder
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">typed_config</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">&#39;@type&#39;</span>:
type.googleapis.com/udpa.type.v1.TypedStruct
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">type_url</span>:
type.googleapis.com/envoy.extensions.filters.http.http_dubbo_transcoder.v3.HttpDubboTranscoder
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">applyTo</span>: HTTP_ROUTE
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">match</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">context</span>: GATEWAY
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">routeConfiguration</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">vhost</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">route</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>: demo
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">patch</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">operation</span>: MERGE
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">value</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">route</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">upgrade_configs</span>:
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">connect_config</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">allow_post</span>: <span
style="color:#cb4b16">true</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">upgrade_type</span>: CONNECT
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">typed_per_filter_config</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">envoy.filters.http.http_dubbo_transcoder</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">&#39;@type&#39;</span>:
type.googleapis.com/udpa.type.v1.TypedStruct
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">type_url</span>:
type.googleapis.com/envoy.extensions.filters.http.http_dubbo_transcoder.v3.HttpDubboTranscoder
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">value</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">request_validation_options</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">reject_unknown_method</span>: <span
style="color:#cb4b16">true</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">reject_unknown_query_parameters</span>: <span
style="color:#cb4b16">true</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">services_mapping</span>:
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">group</span>: dev
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">method_mapping</span>:
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">name</span>: sayName
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">parameter_mapping</span>:
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">extract_key</span>: p
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">extract_key_spec</span>: ALL_QUERY_PARAMETER
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">mapping_type</span>: java.lang.String
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">passthrough_setting</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">passthrough_all_headers</span>: <span
style="color:#cb4b16">true</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">path_matcher</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">match_http_method_spec</span>: ALL_GET
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">match_pattern</span>: /dubbo/hello
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>:
com.alibaba.nacos.example.dubbo.service.DemoService
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">version</span>: <span
style="color:#2aa198">1.0.0</span>
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">url_unescape_spec</span>:
ALL_CHARACTERS_EXCEPT_RESERVED
+</span></span><span style="display:flex;"><span> - <span
style="color:#268bd2">applyTo</span>: CLUSTER
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">match</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">cluster</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">service</span>:
providers:com.alibaba.nacos.example.dubbo.service.DemoService:1.0.0:dev.DEFAULT-GROUP.public.nacos
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">context</span>: GATEWAY
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">patch</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">operation</span>: MERGE
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">value</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">upstream_config</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">name</span>: envoy.upstreams.http.dubbo_tcp
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">typed_config</span>:
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">&#39;@type&#39;</span>:
type.googleapis.com/udpa.type.v1.TypedStruct
+</span></span><span style="display:flex;"><span> <span
style="color:#268bd2">type_url</span>:
type.googleapis.com/envoy.extensions.upstreams.http.dubbo_tcp.v3.DubboTcpConnectionPoolProto
+</span></span></code></pre></div><p>在以上EnvoyFilter中,我们配置了将path为/dubbo/hello的HTTP请求转发到Dubbo服务com.alibaba.nacos.example.dubbo.service.DemoService:1.0.0:dev中,并调用其sayName方法,而该方法的参数则通过HTTP
url中的的query参数p来指定。</p>
+<h2 id="请求验证">请求验证</h2>
+<p>通过以上配置,我们就可以执行以下curl命令来调用这个dubbo服务了:</p>
+<div class="highlight"><pre tabindex="0"
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
class="language-bash" data-lang="bash"><span
style="display:flex;"><span><span style="color:#268bd2">$curl</span>
<span
style="color:#2aa198">&#34;localhost/dubbo/hello?p=abc&#34;</span>
+</span></span><span style="display:flex;"><span><span
style="color:#719e07">{</span><span
style="color:#2aa198">&#34;result&#34;</span>:<span
style="color:#2aa198">&#34;Service [name :demoService , port : 20880]
sayName(\&#34;abc\&#34;) : Hello,abc&#34;</span><span
style="color:#719e07">}</span>
+</span></span></code></pre></div><h2 id="配置参考">配置参考</h2>
+<p>EnvoyFilter的相关配置项参考<a
href="https://higress.io/zh-cn/docs/user/dubbo-envoyfilter">HTTP转Dubbo配置说明</a></p></description></item><item><title>Overview:
Apache Dubbo Go
Pixiu</title><link>https://dubbo.apache.org/zh-cn/overview/what/ecosystem/gateway/pixiu/</link><pubDate>Mon,
01 Jan 0001 00:00:00
+0000</pubDate><guid>https://dubbo.apache.org/zh-cn/overview/what/ecosystem/gateway/pixiu/</guid><description/></item><item><title>Overview:
Kong</title><link>https://dubbo.apache.org [...]
\ No newline at end of file
diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml
index 36c0701c61..059e249239 100644
--- a/zh-cn/sitemap.xml
+++ b/zh-cn/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E5%8D%87%E7%BA%A7-dubbo3-%E5%85%A8%E9%9D%A2%E5%8F%96%E4%BB%A3-hsf2/</loc><lastmod>2023-02-22T15:03:22+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://dubbo.apache.org/zh-cn/overview/mannual/jav
[...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E5%8D%87%E7%BA%A7-dubbo3-%E5%85%A8%E9%9D%A2%E5%8F%96%E4%BB%A3-hsf2/</loc><lastmod>2023-02-22T15:03:22+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://dubbo.apache.org/zh-cn/overview/mannual/jav
[...]
\ No newline at end of file