From 5f45d6e797b2868155a0dbfaee0b9cfa1df57099 Mon Sep 17 00:00:00 2001 From: AlexStocks Date: Sat, 23 Jan 2021 18:10:34 +0800 Subject: [PATCH 1/3] add community info --- README.md | 37 ++++++++++++++++++++++-------- README_CN.md | 36 +++++++++++++++++++++-------- doc/pic/misc/dubbogo-dingding.png | Bin 0 -> 77499 bytes 3 files changed, 53 insertions(+), 20 deletions(-) create mode 100644 doc/pic/misc/dubbogo-dingding.png diff --git a/README.md b/README.md index cfd1a5af5e..3afeb1df8d 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ ![license](https://img.shields.io/badge/license-Apache--2.0-green.svg) --- + Apache Dubbo Go Implementation. @@ -134,25 +135,17 @@ Finished List: * [Zookeeper](https://github.com/apache/dubbo-go/blob/9a5990d9a9c3d5e6633c0d7d926c156416bcb931/registry/zookeeper/service_discovery.go) * [Etcd](https://github.com/apache/dubbo-go/blob/9a5990d9a9c3d5e6633c0d7d926c156416bcb931/registry/etcdv3/service_discovery.go) -- Others: - * start check - * connecting certain provider - * multi-protocols - * multi-registries - * multi-versions - * service group - You can know more about dubbo-go by its [roadmap](https://github.com/apache/dubbo-go/wiki/Roadmap). ![feature](./doc/pic/arch/dubbo-go-arch.png) ## Document -https://dubbogo.github.io/dubbo-go-website (**Improving**) +[dubbo-doc](http://dubbo.apache.org/zh/blog/) or [dubbo-go-doc-list](http://alexstocks.github.io/html/dubbogo.html) ## Quick Start -[dubbo-go-samples](https://github.com/apache/dubbo-go-samples) shows how to use dubbo-go. Please read the [dubbo-samples/golang/README.md](https://github.com/apache/dubbo-go-samples/blob/master/README.md) carefully to learn how to dispose the configuration and compile the program. +[dubbo-go-samples](https://github.com/apache/dubbo-go-samples) gives many examples to tell u how to use dubbo-go. Please read the [dubbo-samples/golang/README.md](https://github.com/apache/dubbo-go-samples/blob/master/README.md) carefully to learn how to dispose the configuration and compile the program. ## Running unit tests @@ -182,6 +175,30 @@ Please move to [dubbo-samples/golang](https://github.com/dubbogo/dubbo-samples) If you are willing to do some code contributions and document contributions to [Apache/dubbo-go](https://github.com/apache/dubbo-go), please visit [contribution intro](https://github.com/apache/dubbo-go/blob/master/contributing.md). +## Community + +If u want to communicate with our community, pls scan the following [dubbobo Ding-Ding QR code](https://mmbiz.qpic.cn/mmbiz_jpg/yvBJb5IiafvnHVBdtia30dxA2hKotr9DEckWsZ7aOJcDWDaSVMGwLmYv8GRgIQtqb4C2svicp8nVkMmGy7yKC5tyA/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1) or search our commnity DingDing group code 31363295. + +
+ + + + + + + + +
+ + + +
+
+ +If u want to visit the wechat group, pls add my wechat AlexanderStocks. + +We welcome the friends who can give us constructing suggestions instead of known-nothing. + ## Benchmark Benchmark project [dubbo-go-benchmark](https://github.com/dubbogo/dubbo-go-benchmark). diff --git a/README_CN.md b/README_CN.md index 64504aaa52..9f3b13cd53 100644 --- a/README_CN.md +++ b/README_CN.md @@ -133,25 +133,17 @@ Apache License, Version 2.0 * [Zookeeper](https://github.com/apache/dubbo-go/blob/9a5990d9a9c3d5e6633c0d7d926c156416bcb931/registry/zookeeper/service_discovery.go) * [Etcd](https://github.com/apache/dubbo-go/blob/9a5990d9a9c3d5e6633c0d7d926c156416bcb931/registry/etcdv3/service_discovery.go) -- 其他功能支持: - * 启动时检查 - * 服务直连 - * 多服务协议 - * 多注册中心 - * 多服务版本 - * 服务分组 - 你可以通过访问 [roadmap](https://github.com/apache/dubbo-go/wiki/Roadmap) 知道更多关于 dubbo-go 的信息。 ![feature](./doc/pic/arch/dubbo-go-arch.png) ## 文档 -https://dubbogo.github.io/dubbo-go-website (**完善中**) +请访问 [dubbo官方文档中关于 dubbo-go 的系列文档](http://dubbo.apache.org/zh/blog/) 或 [过往dubbo-go文档列表](http://alexstocks.github.io/html/dubbogo.html)。 ## 快速开始 ## -[dubbo-samples/golang](https://github.com/dubbogo/dubbo-samples)这个项目的事例展示了如何使用 dubbo-go 。请仔细阅读 [dubbo-samples/golang/README.md](https://github.com/dubbogo/dubbo-samples/blob/master/golang/README.md) 学习如何处理配置并编译程序。 +[dubbo-samples/golang](https://github.com/apache/dubbo-go-samples)这个项目的事例展示了如何使用 dubbo-go 。请仔细阅读 [dubbo-samples/golang/README.md](https://github.com/apache/dubbo-go-samples/blob/master/README.md) 学习如何处理配置并编译程序。 ## 运行单测 @@ -181,6 +173,30 @@ make test 如果您愿意给 [Apache/dubbo-go](https://github.com/apache/dubbo-go) 贡献代码或者文档,我们都热烈欢迎。具体请参考 [contribution intro](https://github.com/apache/dubbo-go/blob/master/contributing.md)。 +## 社区 + +如果想访问官方钉钉群,请在钉钉中搜索社区群号 31363295 或者 扫描如下[二维码](https://mmbiz.qpic.cn/mmbiz_jpg/yvBJb5IiafvnHVBdtia30dxA2hKotr9DEckWsZ7aOJcDWDaSVMGwLmYv8GRgIQtqb4C2svicp8nVkMmGy7yKC5tyA/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)。 + +
+ + + + + + + + +
+ + + +
+
+ +如果想加入到社区微信群,可以先添加社区负责人 于雨 的微信 AlexanderStocks 。添加微信之前,请先给 dubbo-go 点 star 作为对项目的支持,添加好友时请报上 github ID 以进行验证。 + +作为一个维护已经帮助构建了经受多家大型微服务系统的社区,我们足以为现有的成绩感到自豪。社区欢迎能提出建设性意见者,只知索取者和喷子请绕行。 + ## 性能测试 ## 性能测试项目是 [dubbo-go-benchmark](https://github.com/dubbogo/dubbo-go-benchmark)。 diff --git a/doc/pic/misc/dubbogo-dingding.png b/doc/pic/misc/dubbogo-dingding.png new file mode 100644 index 0000000000000000000000000000000000000000..08a3c20cadc8b2b2283432c37c64350a09edfff0 GIT binary patch literal 77499 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

P@Zcp6O8!>s+=+0f?YM0G<(!O=X*QVH03A8~Pey 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 Z{{W Date: Sat, 30 Jan 2021 15:15:11 +0800 Subject: [PATCH 2/3] support getty send Length, when the data transfer failed and transfer part of data. --- go.mod | 2 +- go.sum | 4 ++-- remoting/getty/getty_client.go | 16 +++++++++++----- remoting/getty/listener.go | 10 ++++++++-- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/go.mod b/go.mod index da02bf7b71..effb8ab623 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Workiva/go-datastructures v1.0.52 github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 github.com/alibaba/sentinel-golang v1.0.2 - github.com/apache/dubbo-getty v1.4.1 + github.com/apache/dubbo-getty v1.4.3 github.com/apache/dubbo-go-hessian2 v1.8.2 github.com/coreos/etcd v3.3.25+incompatible github.com/creasty/defaults v1.5.1 diff --git a/go.sum b/go.sum index 00f7deeed3..f51f1e989d 100644 --- a/go.sum +++ b/go.sum @@ -81,8 +81,8 @@ github.com/alibaba/sentinel-golang v1.0.2 h1:Acopq74hOtZN4MV1v811MQ6QcqPFLDSczTr github.com/alibaba/sentinel-golang v1.0.2/go.mod h1:QsB99f/z35D2AiMrAWwgWE85kDTkBUIkcmPrRt+61NI= github.com/aliyun/alibaba-cloud-sdk-go v1.61.18 h1:zOVTBdCKFd9JbCKz9/nt+FovbjPFmb7mUnp8nH9fQBA= github.com/aliyun/alibaba-cloud-sdk-go v1.61.18/go.mod h1:v8ESoHo4SyHmuB4b1tJqDHxfTGEciD+yhvOU/5s1Rfk= -github.com/apache/dubbo-getty v1.4.1 h1:M9yaFhemThQSWtRwmJNrxNuv7FzydlFx5EY8oq1v+lw= -github.com/apache/dubbo-getty v1.4.1/go.mod h1:ansXgKxxyhCOiQL29nO5ce1MDcEKmCyZuNR9oMs3hek= +github.com/apache/dubbo-getty v1.4.3 h1:PCKpryDasKOxwT5MBC6MIMO+0NLOaHF6Xco9YXQw7HI= +github.com/apache/dubbo-getty v1.4.3/go.mod h1:ansXgKxxyhCOiQL29nO5ce1MDcEKmCyZuNR9oMs3hek= github.com/apache/dubbo-go-hessian2 v1.8.2 h1:CQq2Mmlrk6Fqmudwl9Dqps8drTrBFnmXRlzgOjj0FqA= github.com/apache/dubbo-go-hessian2 v1.8.2/go.mod h1:xQUjE7F8PX49nm80kChFvepA/AvqAZ0oh/UaB6+6pBE= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= diff --git a/remoting/getty/getty_client.go b/remoting/getty/getty_client.go index 57221cc6d7..1d04d39eeb 100644 --- a/remoting/getty/getty_client.go +++ b/remoting/getty/getty_client.go @@ -176,8 +176,14 @@ func (c *Client) Request(request *remoting.Request, timeout time.Duration, respo if session == nil { return errSessionNotExist } - - if err = c.transfer(session, request, timeout); err != nil { + var ( + totalLen int + sendLen int + ) + if totalLen, sendLen, err = c.transfer(session, request, timeout); err != nil { + if sendLen != 0 && totalLen != sendLen { + go c.Close() + } return perrors.WithStack(err) } @@ -211,7 +217,7 @@ func (c *Client) selectSession(addr string) (*gettyRPCClient, getty.Session, err return rpcClient, rpcClient.selectSession(), nil } -func (c *Client) transfer(session getty.Session, request *remoting.Request, timeout time.Duration) error { - err := session.WritePkg(request, timeout) - return perrors.WithStack(err) +func (c *Client) transfer(session getty.Session, request *remoting.Request, timeout time.Duration) (int, int, error) { + totalLen, sendLen, err := session.WritePkg(request, timeout) + return totalLen, sendLen, perrors.WithStack(err) } diff --git a/remoting/getty/listener.go b/remoting/getty/listener.go index fd4c4898f2..ac1b6749db 100644 --- a/remoting/getty/listener.go +++ b/remoting/getty/listener.go @@ -355,7 +355,10 @@ func (h *RpcServerHandler) OnCron(session getty.Session) { } func reply(session getty.Session, resp *remoting.Response) { - if err := session.WritePkg(resp, WritePkg_Timeout); err != nil { + if totalLen, sendLen, err := session.WritePkg(resp, WritePkg_Timeout); err != nil { + if sendLen != 0 && totalLen != sendLen { + go session.Close() + } logger.Errorf("WritePkg error: %#v, %#v", perrors.WithStack(err), resp) } } @@ -366,7 +369,10 @@ func heartbeat(session getty.Session, timeout time.Duration, callBack func(err e req.Event = true resp := remoting.NewPendingResponse(req.ID) remoting.AddPendingResponse(resp) - err := session.WritePkg(req, 3*time.Second) + totalLen, sendLen, err := session.WritePkg(req, 3*time.Second) + if sendLen != 0 && totalLen != sendLen { + go session.Close() + } go func() { var err1 error From 7c65a929d024db05d08108c50348331d98132405 Mon Sep 17 00:00:00 2001 From: cvictory Date: Sun, 31 Jan 2021 19:18:18 +0800 Subject: [PATCH 3/3] add some log --- remoting/getty/getty_client.go | 1 + remoting/getty/listener.go | 2 ++ 2 files changed, 3 insertions(+) diff --git a/remoting/getty/getty_client.go b/remoting/getty/getty_client.go index 1d04d39eeb..338478c603 100644 --- a/remoting/getty/getty_client.go +++ b/remoting/getty/getty_client.go @@ -182,6 +182,7 @@ func (c *Client) Request(request *remoting.Request, timeout time.Duration, respo ) if totalLen, sendLen, err = c.transfer(session, request, timeout); err != nil { if sendLen != 0 && totalLen != sendLen { + logger.Warnf("start to close the session at request because %d of %d bytes data is sent success. err:%+v", sendLen, totalLen, err) go c.Close() } return perrors.WithStack(err) diff --git a/remoting/getty/listener.go b/remoting/getty/listener.go index ac1b6749db..5443d37102 100644 --- a/remoting/getty/listener.go +++ b/remoting/getty/listener.go @@ -357,6 +357,7 @@ func (h *RpcServerHandler) OnCron(session getty.Session) { func reply(session getty.Session, resp *remoting.Response) { if totalLen, sendLen, err := session.WritePkg(resp, WritePkg_Timeout); err != nil { if sendLen != 0 && totalLen != sendLen { + logger.Warnf("start to close the session at replying because %d of %d bytes data is sent success. err:%+v", sendLen, totalLen, err) go session.Close() } logger.Errorf("WritePkg error: %#v, %#v", perrors.WithStack(err), resp) @@ -371,6 +372,7 @@ func heartbeat(session getty.Session, timeout time.Duration, callBack func(err e remoting.AddPendingResponse(resp) totalLen, sendLen, err := session.WritePkg(req, 3*time.Second) if sendLen != 0 && totalLen != sendLen { + logger.Warnf("start to close the session at heartbeat because %d of %d bytes data is sent success. err:%+v", sendLen, totalLen, err) go session.Close() }