You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2022/07/16 08:49:00 UTC

[dubbo-awesome] branch master updated: Sync slides and minutes

This is an automated email from the ASF dual-hosted git repository.

albumenj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-awesome.git


The following commit(s) were added to refs/heads/master by this push:
     new 1a1b822  Sync slides and minutes
     new 1a71149  Merge pull request #80 from AlbumenJ/0716_add_weekly
1a1b822 is described below

commit 1a1b822ebcdd616e3647ea665afcbe5a10f9332c
Author: Albumen Kevin <jh...@gmail.com>
AuthorDate: Sat Jul 16 16:45:34 2022 +0800

    Sync slides and minutes
---
 slides/weekly-share/20220707.pptx | Bin 0 -> 3069867 bytes
 slides/weekly-share/20220715.pptx | Bin 0 -> 4221617 bytes
 weeklymeeting/20220624.md         | 105 ++++++++++++++++++++++++++++++++++++++
 weeklymeeting/20220708.md         |  35 +++++++++++++
 4 files changed, 140 insertions(+)

diff --git a/slides/weekly-share/20220707.pptx b/slides/weekly-share/20220707.pptx
new file mode 100644
index 0000000..5e461ab
Binary files /dev/null and b/slides/weekly-share/20220707.pptx differ
diff --git a/slides/weekly-share/20220715.pptx b/slides/weekly-share/20220715.pptx
new file mode 100644
index 0000000..f65824d
Binary files /dev/null and b/slides/weekly-share/20220715.pptx differ
diff --git a/weeklymeeting/20220624.md b/weeklymeeting/20220624.md
new file mode 100644
index 0000000..16b24f5
--- /dev/null
+++ b/weeklymeeting/20220624.md
@@ -0,0 +1,105 @@
+Meeting time: 24 June 2022, 20:30 (GMT +8)
+Participants: liujun, albumen, earthchen, xiongpin, etc.
+Playback address: https://www.bilibili.com/video/BV1Q3411c71c/?vd_source=597fba5a448c8c27a9ad5f63263c117f
+
+This week's weekly meeting mainly discussed the ease of use of Dubbo, and proposed several solutions to optimize the experience of Dubbo, which requires further follow-up and implementation by the community. In addition, Zhou Hui discussed in detail the details of Dubbo Mesh that everyone cares about.
+
+## Ease of use
+
+### 1. Dubbo Test Component
+Status: to be planned
+Background: The current Dubbo service test does not support the Triple protocol
+Solution: By abstracting a set of test tools, similar to postman or grpc ReflectionService
+
+### 2. Request time-consuming detail location tool
+Status: Documents to be improved
+Background: Occasionally, when users request the Dubbo interface, the request times out. However, due to the complexity of the links passing in the middle, it is difficult to locate the specific cause of the timeout.
+Solution: Dubbo collects the processing time at the requested extension point and prints it out through the log. Currently, there is no corresponding introduction document.
+
+### 3. Service thread pool isolation problem
+Status: to be planned
+Background: When the processing of some interfaces is stuck (such as database connection interruption, etc.), the thread pool will be stuck, causing the thread pool to be full, and then dragging down the entire thread pool.
+Solution: Provide a thread pool isolation scheme based on service granularity to isolate key services
+
+
+### 4. Routing error troubleshooting tool/solution
+Status: Documents to be improved
+Background: When a user requests the Dubbo interface, due to problems such as registry configuration problems, server status, and routing processing exceptions, no available server addresses are available for the request, and an error is reported.
+Solution: Print out the processing process by improving logs such as log output registration center status, routing status, etc. to simplify the troubleshooting process. Currently, there is a lack of corresponding documentation.
+
+### 5. Error log external link FAQ
+Status: to be planned
+Background: The Logger abstraction layer that Dubbo relies on provides log output capability, but most of the exception logs do not have troubleshooting instructions, so users cannot handle the exception after seeing the exception.
+Solution: By improving the FAQ and other documents in the official documents, when the Dubbo log framework outputs abnormality, it will also output the corresponding official website description link, so as to guide users to conduct independent investigation.
+
+### 6. Dubbo Initilizer
+Status: to be improved
+Background: Dubbo Initializer is used to quickly build a simple sample application of SpringBoot and Dubbo. At present, the project is behind the latest version and needs to be updated in time
+
+## Mesh aspects
+
+### 1. MCP synchronization scheme
+Background: The metadata and routing rules required for Dubbo application-level service discovery cannot be fully pushed through the native xDS protocol, and new push methods need to be explored
+Scenario: Synchronize Dubbo-specific routing rules and service information via MCP
+
+### 2. Multi-environment interoperability solution under Mesh
+Background: During the process of migrating users to Dubbo Mesh, Dubbo Mesh coexists with other architectures for a long time.
+Solution: 1. Intercommunication through gateway-based mode, Mesh environment and external data exchange through ingress and egress
+2. Through the multi-registration method, the internal and external networks of the mesh are directly connected, and the services of other architectures are called through the previous method. This solution needs to pay attention to the problem of IP network segment allocation.
+
+
+### 3. Feedback
+Received feedback from users that pods may be stuck under Kubernetes, which has not been reproduced in the community, and will be reproduced on site in the future
+
+
+会议时间:2022 年 6 月 24 日 20:30 (GMT +8)
+参会人:liujun, albumen, earthchen, xiongpin 等
+回放地址:https://www.bilibili.com/video/BV1Q3411c71c/?vd_source=597fba5a448c8c27a9ad5f63263c117f
+
+本周周会主要讨论了 Dubbo 易用性方面的问题,提出了若干优化 Dubbo 使用体验的方案,需要社区进一步跟进实现。此外,周会就大家关心的 Dubbo Mesh 的细节进行了详细讨论。
+
+## 易用性方面
+
+### 1. Dubbo 测试组件
+状态:待规划
+背景:当前的 Dubbo 服务测试不支持 Triple 协议
+解决方案:通过抽象出一套测试工具,类似 postman 或者 grpc ReflectionService
+
+### 2. 请求耗时细节定位工具
+状态:待完善文档
+背景:用户在请求 Dubbo 接口的时候偶尔会出现请求超时的情况,但是由于中间经过的链路复杂,很难定位具体超时的原因
+解决方案:Dubbo 在请求的扩展点上采集了处理耗时,通过日志打印出来,目前缺少对应的介绍文档
+
+### 3. 服务线程池隔离问题
+状态:待规划
+背景:在部分接口出现处理卡顿的时候(如数据库连接中断等),会卡住线程池,导致线程池满,进而拖垮整个线程池
+解决方案:提供基于服务粒度的线程池隔离方案,对重点服务进行隔离处理
+
+
+### 4. 路由报错排查工具 / 方案
+状态:待完善文档
+背景:用户在请求 Dubbo 接口的时候由于注册中心配置问题、服务端状态、路由处理异常等问题,导致请求无可用的服务端地址可用,进而报错
+解决方案:通过完善日志输出注册中心状态,路由状态等日志把处理过程打印出来,简化排查流程,目前缺少对应的文档介绍
+
+### 5. 报错日志外链 FAQ
+状态:待规划
+背景:Dubbo 内部依赖的 Logger 抽象层提供了日志输出能力,但是大部分的异常日志都没有附带排查说明,导致用户看到异常后无法进行处理
+解决方案:通过完善官方文档中的 FAQ 等文档,在 Dubbo 日志框架输出异常的同时附带输出对应的官网说明链接,引导用户进行自主排查
+
+### 6. Dubbo Initilizer
+状态:待完善
+背景:Dubbo Initializer 用于快速搭建 SpringBoot 和 Dubbo 的简单示例应用,目前该项目已落后最新版本,需要及时更新
+
+## Mesh 方面
+
+### 1. MCP 同步方案
+背景:Dubbo 应用级服务发现所需要的元数据和路由规则通过原生的 xDS 协议无法完全推送,需要探索新的推送方式
+方案:通过 MCP 同步 Dubbo 特定的路由规则和服务信息
+
+### 2. Mesh 下多环境互通方案
+背景:用户在迁移到 Dubbo Mesh 的过程中,存在较长的一段时间 Dubbo Mesh 与其他架构共存的情况。
+解决方案:1. 通过基于网关的方式进行互通,Mesh 环境与外部通过 ingress 和 egress 进行数据交互
+2. 通过多注册的方式,Mesh 内外网络直接打通,其他架构的服务通过之前方式调用,此方案需要注意 IP 网段分配问题
+
+### 3. 问题反馈
+收到用户反馈 Kubernetes 下可能出现 pod 卡住的问题,社区未复现,待以后有现场复现
diff --git a/weeklymeeting/20220708.md b/weeklymeeting/20220708.md
new file mode 100644
index 0000000..9bb7f4e
--- /dev/null
+++ b/weeklymeeting/20220708.md
@@ -0,0 +1,35 @@
+Meeting time: 8th July 2022, 20:30 (GMT +8)
+Participants: liujun, albumen, earthchen, xiongpin, goodjava, huazhongming, etc.
+Playback address: https://www.youtube.com/watch?v=IC0FuqtDosE
+https://www.bilibili.com/video/BV1SV4y1n7vW/
+
+This week's weekly meeting mainly discussed how Dubbo should be adjusted to better fit such an architecture in the FaaS scenario.
+
+## Current mainstream FaaS solutions in the community
+
+### Based on Sidecar, forwarded via UDS
+This solution combines and deploys Dubbo and other middleware into an independent sidecar. Compared with the resident state of the user's container, after the user's container is pulled up, the UDS request is forwarded to the sidecar, and then the logic of the RPC request is executed. In this mode, Dubbo degenerates into a gateway-like existence and has been decoupled from users.
+
+### Fat client, isolated via ClassLoader
+This solution is a Java-based class isolation mechanism. Dubbo is deployed independently by a classloader, and the FaaS scheduler will dynamically load the business Jar package, and then pull up the user code. The Dubbo used by users is provided by a unified Classloader. In this mode, Dubbo and the corresponding JVM process need to be resident. In this mode, Dubbo needs to improve the management of the life cycle. After the user process is pulled up and dropped, it needs to deal with res [...]
+
+### Start with business code
+This solution is to pull up Dubbo code and business code together. In this mode, Dubbo needs to be transformed to achieve the goal of quick start and quick availability. At the meeting, everyone felt that using Native Image is a quick solution, and the community needs to improve the use of Native Image mode in the future. In addition, when the cluster is pulled up quickly, the push speed of the node can be quickly pulled up by pre-registering and pushing the writable target after the nod [...]
+
+会议时间:2022 年 7 月 8 日 20:30 (GMT +8)
+参会人:liujun, albumen, earthchen, xiongpin, goodjava, huazhongming 等
+回放地址:https://www.youtube.com/watch?v=IC0FuqtDosE
+https://www.bilibili.com/video/BV1SV4y1n7vW/
+
+本周周会主要讨论了在 FaaS 场景下,Dubbo 应该如何调整来更适配这样的架构。
+
+## 当前社区主流的 FaaS 方案
+
+### 基于 Sidecar,通过 UDS 转发
+此方案将 Dubbo 和其他中间件合并部署到一个独立的 Sidecar 中,相较于用户的容器处于常驻状态,用户容器拉起后通过 UDS 请求转发到 Sidecar 中,然后再执行 RPC 请求的逻辑。这种模式下 Dubbo 退化成为类似网关的存在,和用户已经解耦出来了。
+
+### Fat 客户端,通过 ClassLoader 隔离
+此方案是基于 Java 的类隔离机制,Dubbo 独立一个 Classloader 部署,FaaS 调度器会动态加载业务 Jar 包进来,然后拉起用户代码。用户使用的 Dubbo 由一个统一的 Classloader 提供。这种模式下 Dubbo 和对应的 JVM 进程需要常驻存在。在这种模式下 Dubbo 需要完善生命周期的管理,在用户进程拉起和下掉之后需要处理资源分配和回收,保障整个环境的隔离。
+
+### 和业务代码一起启动
+此方案是将 Dubbo 代码和业务代码一起拉起的,这种模式下 Dubbo 需要进行改造,以达到快速启动快速可用的目标。会议上大家觉得使用 Native Image 是一种快速拉起的方案,社区后续需要完善 Native Image 模式下的使用方案。此外对于集群快速拉起的时候,节点的推送速度可以通过预先注册,等节点 ready 后再推送可写标的方式来进行快速拉起。