<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>快速开始 on Apache Dubbo</title><link>https://deploy-preview-3203--dubbo.netlify.app/zh-cn/docs/languages/golang/dubbo-go-3.0/quickstart/</link><description>Recent content in 快速开始 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://deploy-preview-3203--dubbo.netlify.app/zh-cn/docs/languages/golang/dubbo-go-3.0/quickstart/index.xml" rel="self" type="application/rss+xml"/><item><title>Dubbo-go 协议快速开始</title><link>https://deploy-preview-3203--dubbo.netlify.app/zh-cn/docs/languages/golang/dubbo-go-3.0/quickstart/quickstart_dubbo/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3203--dubbo.netlify.app/zh-cn/docs/languages/golang/dubbo-go-3.0/quickstart/quickstart_dubbo/</guid><description>&lt;div class="pageinfo pageinfo-primary">
&lt;p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档，请参阅&lt;a href="https://deploy-preview-3203--dubbo.netlify.app/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple/">最新版本&lt;/a>。&lt;/p>

&lt;/div>

&lt;h1 id="dubbo-go-协议快速开始">Dubbo-go 协议快速开始&lt;/h1>
&lt;h2 id="1-环境安装">1. 环境安装&lt;/h2>
&lt;h3 id="11-安装-go-语言环境">1.1 安装 Go 语言环境&lt;/h3>
&lt;p>建议使用最新版 go 1.17&lt;/p>
&lt;p>go version &amp;gt;= go 1.15&lt;/p>
&lt;p>&lt;a href="https://golang.google.cn/">【Go 语言官网下载地址】&lt;/a>&lt;/p>
&lt;p>构建如下文件目录，使用命令 &lt;code>go mod init dubbo3-demo &lt;/code> 初始化 go module。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>quickstart
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── api
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│   └── api.go
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── client
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│   ├── client.go
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│   └── dubbogo.yml
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── go.mod
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>└── server
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ├── dubbogo.yml
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> └── server.go
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="12-启动zookeeper">1.2 启动zookeeper&lt;/h3>
&lt;p>选择您喜欢的方式启动zk，如您安装docker-compose可直接从文件启动:&lt;/p>
&lt;p>zookeeper.yml:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">version&lt;/span>: &lt;span style="color:#2aa198">&amp;#39;3&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">services&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">zookeeper&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">image&lt;/span>: zookeeper
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">ports&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#2aa198">2181&lt;/span>:&lt;span style="color:#2aa198">2181&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">restart&lt;/span>: &lt;span style="color:#cb4b16">on&lt;/span>-failure
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>docker-compose -f ./zookeeper.yml up -d
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="2-编写客户端服务端的接口和实现">2. 编写客户端服务端的接口和实现&lt;/h2>
&lt;h3 id="21-定义接口和传输结构位于apiapigo">2.1 定义接口和传输结构，位于api/api.go&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">package&lt;/span> api
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">import&lt;/span> (
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	&lt;span style="color:#2aa198">&amp;#34;context&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	&lt;span style="color:#2aa198">&amp;#34;dubbo.apache.org/dubbo-go/v3/config&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	hessian &lt;span style="color:#2aa198">&amp;#34;github.com/apache/dubbo-go-hessian2&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	&lt;span style="color:#2aa198">&amp;#34;time&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75">//1. 定义传输结构， 如需 Java 互通，字段需要与 Java 侧对应，首字母大写
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75">&lt;/span>&lt;span style="color:#268bd2">type&lt;/span> User &lt;span style="color:#268bd2">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	ID &lt;span style="color:#dc322f">string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	Name &lt;span style="color:#dc322f">string&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	Age &lt;span style="color:#dc322f">int32&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	Time time.Time
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">func&lt;/span> (u &lt;span style="color:#719e07">*&lt;/span>User) &lt;span style="color:#268bd2">JavaClassName&lt;/span>() &lt;span style="color:#dc322f">string&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	&lt;span style="color:#719e07">return&lt;/span> &lt;span style="color:#2aa198">&amp;#34;org.apache.dubbo.User&amp;#34;&lt;/span> &lt;span style="color:#586e75">// 如果与 Java 互通，需要与 Java 侧 User class全名对应,
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75">&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">var&lt;/span> (
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	UserProviderClient = &lt;span style="color:#719e07">&amp;amp;&lt;/span>UserProvider{} &lt;span style="color:#586e75">// 客户端指针
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75">&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75">// 2。 定义客户端存根类：UserProvider
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75">&lt;/span>&lt;span style="color:#268bd2">type&lt;/span> UserProvider &lt;span style="color:#268bd2">struct&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	&lt;span style="color:#586e75">// dubbo标签，用于适配go侧客户端大写方法名 -&amp;gt; java侧小写方法名，只有 dubbo 协议客户端才需要使用
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75">&lt;/span>	GetUser &lt;span style="color:#268bd2">func&lt;/span>(ctx context.Context, req &lt;span style="color:#dc322f">int32&lt;/span>) (&lt;span style="color:#719e07">*&lt;/span>User, &lt;span style="color:#dc322f">error&lt;/span>) &lt;span style="color:#586e75">//`dubbo:&amp;#34;getUser&amp;#34;`
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75">&lt;/span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">func&lt;/span> &lt;span style="color:#268bd2">init&lt;/span>(){
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	hessian.&lt;span style="color:#268bd2">RegisterPOJO&lt;/span>(&lt;span style="color:#719e07">&amp;amp;&lt;/span>User{}) &lt;span style="color:#586e75">// 注册传输结构到 hessian 库
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75">&lt;/span>	&lt;span style="color:#586e75">// 注册客户端存根类到框架，实例化客户端接口指针 userProvider
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75">&lt;/span>	config.&lt;span style="color:#268bd2">SetConsumerService&lt;/span>(UserProviderClient)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="22-编写-go-server-配置和代码">2.2 编写 Go-Server 配置和代码&lt;/h3>
&lt;p>server/dubbogo.yml&lt;/p></description></item><item><title>Triple 协议快速开始</title><link>https://deploy-preview-3203--dubbo.netlify.app/zh-cn/docs/languages/golang/dubbo-go-3.0/quickstart/quickstart_triple/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3203--dubbo.netlify.app/zh-cn/docs/languages/golang/dubbo-go-3.0/quickstart/quickstart_triple/</guid><description>&lt;div class="pageinfo pageinfo-primary">
&lt;p>此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档，请参阅&lt;a href="https://deploy-preview-3203--dubbo.netlify.app/zh-cn/overview/mannual/golang-sdk/quickstart/quickstart_triple/">最新版本&lt;/a>。&lt;/p>

&lt;/div>

&lt;h1 id="triple-协议快速开始">Triple 协议快速开始&lt;/h1>
&lt;h2 id="1-环境安装">1. 环境安装&lt;/h2>
&lt;h3 id="11-安装go语言环境">1.1 安装Go语言环境&lt;/h3>
&lt;p>建议使用最新版 go 1.17&lt;/p>
&lt;p>go version &amp;gt;= go 1.15&lt;/p>
&lt;p>&lt;a href="https://golang.google.cn/">【Go 语言官网下载地址】&lt;/a>&lt;/p>
&lt;p>将 $GOPATH/bin 加入环境变量&lt;/p>
&lt;h3 id="12-安装序列化工具protoc">1.2 安装序列化工具protoc&lt;/h3>
&lt;p>&lt;a href="https://github.com/protocolbuffers/protobuf/releases">【protoc 下载地址】&lt;/a>&lt;/p>
&lt;h3 id="13-安装-protoc-gen-go-proto-gen-go-triple-编译插件">1.3 安装 protoc-gen-go, proto-gen-go-triple 编译插件&lt;/h3>
&lt;p>本章 quick start 按照最新版示例和组件进行介绍。&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th style="text-align: left">依赖&lt;/th>
 &lt;th style="text-align: left">Dubbo-go&lt;/th>
 &lt;th style="text-align: left">Triple&lt;/th>
 &lt;th style="text-align: left">protoc-gen-go-triple&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td style="text-align: left">适配版本号&lt;/td>
 &lt;td style="text-align: left">v3.0.0-rc4-1&lt;/td>
 &lt;td style="text-align: left">v1.1.3&lt;/td>
 &lt;td style="text-align: left">v1.0.2&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">适配版本号&lt;/td>
 &lt;td style="text-align: left">v3.0.0-rc3&lt;/td>
 &lt;td style="text-align: left">v1.0.9&lt;/td>
 &lt;td style="text-align: left">v1.0.0&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#b58900">export&lt;/span> &lt;span style="color:#268bd2">GO111MODULE&lt;/span>&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">&amp;#34;on&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#b58900">export&lt;/span> &lt;span style="color:#268bd2">GOPROXY&lt;/span>&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">&amp;#34;https://goproxy.cn&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26.0
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go install github.com/dubbogo/tools/cmd/protoc-gen-go-triple@v1.0.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>确保上述protoc 和安装的 protoc-gen-go-triple 位于$(GOPATH)/bin, 在系统环境变量内&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>$ protoc --version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>libprotoc 3.14.0
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>$ protoc-gen-go --version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>protoc-gen-go v1.26.0
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>$ protoc-gen-go-triple --version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>protoc-gen-go-triple 1.0.2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="14-启动zookeeper">1.4 启动zookeeper&lt;/h3>
&lt;p>选择您喜欢的方式启动zk，如您安装docker-compose可直接从文件启动:&lt;/p></description></item></channel></rss>