MOSN 反向通道详解

MOSN:基于延迟负载均衡算法实现更快速、更稳定的分布式网络 总结起来,MOSN作为一个基于延迟负载均衡算法的分布式网络代理,通过优化请求分发和选择最佳服务器的过程,实现了更快速、更稳定的分布式网络服务。MOSN利用延迟负载均衡算法实现了更快速的请求分发,并且通过一系列的优化措施,保证了系统的稳定性和可靠性。连接池中保存着与后端服务器的连接,当有新的请求到达时,MOSN会从连接池中选择一个可用的连接,并将请求发送到对应的服务器。通过上述的延迟负载均衡算法的实现,MOSN能够快速、准确地选择最佳的服务器,并将请求发送到该服务器,从而提高了系统的处理速度和性能。 阅读详情

文|郑泽超(GitHub ID:CodingSinger )

字节跳动高级工程师

​
热衷于微服务和 ServiceMesh 开源社区

本文 6802 字 阅读 15 分钟

贡献者前言

说起来非常的抓马,当时和 MOSN 的相遇是在给于雨负责的开源项目 Dubbo-go 贡献代码那阵。在自己顺利当上了 Dubbo 开源社区的 Committer 之后,心想着能更深入的学习 Golang 语言,机缘巧合之下碰到了 MOSN 的老大哥烈元(也是元总领我进了 MOSN 社区的大门)。

作为一款目标对齐 Envoy 的高性能可扩展安全网络代理,MOSN 支持的生态能力更贴近国内互联网公司的技术栈,并且对新功能的响应也很迅速。其次 MOSN 有着很多值得借鉴的巧妙设计和进阶的使用技巧,能充分满足自己在工作之外深入学习 Golang 语言的诉求。
 

目前,我在社区里陆续参与了 EDF Scheduler、LAR、WRR 负载均衡、DSL 路由能力、UDS Listener、Plugin 模式的 Filter 扩展以及反向通道等一些比较大的 feature 能力建设。再次感谢雨哥、元总、鹏总、毅松等社区内一众大佬们帮我考究方案并且帮我 Review 代码。

本文主要介绍之前新合入 master 分支的「反向通道」的使用场景和设计原理,欢迎大家留言探讨。

MOSN 项目概述

MOSN(Modular Open Smart Network)是一款主要使用 Go 语言开发的云原生网络代理平台,由蚂蚁集团开源并经过双 11 大促几十万容器的生产级验证,具备高性能、易扩展的特点。MOSN 可以和 Istio 集成构建 Service Mesh,也可以作为独立的四、七层负载均衡、API Gateway、云原生 Ingress 等使用。

MOSN 的反向通道实现

在云边协同的网络场景,通常都是单向网络,云侧节点无法主动发起连接与边缘节点通讯。这种限制虽然在极大程度上保证了边缘节点的安全,但缺点也很明显,即只允许边缘节点主动发起访问云端节点。

云边隧道旨在解决云端无法主动访问边缘节点的问题,其本质是一个反向通道(后文统称为反向通道)。通过在边缘侧主动发起建连的方式与云端节点之间构建一条专用的全双工连接,用来传输云端节点的请求数据和回传最终的响应结果。

目前例如 SuperEdge、Yurttunnel 等业界知名云边协同开源框架,对于云边通信的实现方案都是基于反向通道。

本文将着重介绍 MOSN 之上的反向通道运作流程和原理。总体架构如下所示(图中箭头表示 TCP 建连反向):

整个运作流程可以简单概括为:

1.边缘侧的 MOSN 实例(后文统称为 Tunnel Agent)在启动时 Tunnel Agent 相关服务协程。

2.通过指定的静态配置或者动态服务发现方式拿到需要反向建连的公有云侧的 MOSN Server 地址列表(后文统称 Tunnel Server ),并且建立反向连接。

3.云侧的 Frontend 与 Tunnel Server 侧的转发端口进行数据交互,这部分数据会被托管到之前建立的反向连接进行发送。

4.边缘节点接受到请求之后,再将请求转发给实际的后端目标节点,回包过程则原路返回。

反向通道启动过程

MOSN Agent 通过 ExtendConfig 特性,在 MOSN 启动时加载和完成初始化 Tunnel Agent 的工作。

ExtendConfig 中定义 AgentBootstrapConfig 结构如下:

type AgentBootstrapConfig struct {
	Enable bool `json:"enable"`
	// The number of connections established between the agent and each server
	ConnectionNum int `json:"connection_num"`
	// The cluster of remote server
	Cluster string `json:"cluster"`
	// After the connection is established, the data transmission is processed by this listener
	HostingListener string `json:"hosting_listener"`
	// Static remote server list
	StaticServerList []string `json:"server_list"`

	// DynamicServerListConfig is used to specify dynamic server configuration
	DynamicServerListConfig struct {
		DynamicServerLister string `json:"dynamic_server_lister"`
	}

	// ConnectRetryTimes
	ConnectRetryTimes int `json:"connect_retry_times"`
	// ReconnectBaseDuration
	ReconnectBaseDurationMs int `json:"reconnect_base_duration_ms"`

	// ConnectTimeoutDurationMs specifies the timeout for establishing a connection and initializing the agent
	ConnectTimeoutDurationMs int    `json:"connect_timeout_duration_ms"`
	CredentialPolicy         string `json:"credential_policy"`
	// GracefulCloseMaxWaitDurationMs specifies the maximum waiting time to close conn gracefully
	GracefulCloseMaxWaitDurationMs int `json:"graceful_close_max_wait_duration_ms"`

	TLSContext *v2.TLSConfig `json:"tls_context"`
}

- ConnectionNum:Tunnel Agent 和每个 Tunnel Server 建立的物理连接数量。

- HostingListener:指定 Agent 建立连接之后托管的 MOSN Listener,即 Tunnel Server 发来的请求会由该 Listener 托管处理。

- DynamicServerListConfig:动态 Tunnel Server 的服务发现相关配置,可通过自定义的服务发现组件提供动态的地址服务。

- CredentialPolicy:自定义的连接级别的鉴权策略配置。

- TLSContext:MOSN TLS 配置,提供 TCP 之上通信的保密性和可靠性。

针对每个远端的 Tunnel Server 实例,Agent 对应一个 AgentPeer 对象,启动时除了主动建立 ConnectionNum 个反向通信连接,还会额外建立一条旁路连接,这条旁路连接主要是用来发送一些管控参数,例如平滑关闭连接、调整连接比重。

func (a *AgentPeer) Start() {
	connList := make([]*AgentClientConnection, 0, a.conf.ConnectionNumPerAddress)
	for i := 0; i < a.conf.ConnectionNumPerAddress; i++ {
	  // 初始化和建立反向连接
		conn := NewAgentCoreConnection(*a.conf, a.listener)
		err := conn.initConnection()
		if err == nil {
			connList = append(connList, conn)
		}
	}
	a.connections = connList
	// 建立一个旁路控制连接
	a.initAside()
}

initConnection 方法进行具体的初始化完整的反向连接,采取指数退避的方式保证在最大重试次数之内建连成功。

func (a *connection) initConnection() error {
	var err error
	backoffConnectDuration := a.reconnectBaseDuration

	for i := 0; i < a.connectRetryTimes || a.connectRetryTimes == -1; i++ {
		if a.close.Load() {
			return fmt.Errorf("connection closed, don't attempt to connect, address: %v", a.address)
		}
		// 1. 初始化物理连接和传输反向连接元数据
		err = a.init()
		if err == nil {
			break
		}
		log.DefaultLogger.Errorf("[agent] failed to connect remote server, try again after %v seconds, address: %v, err: %+v", backoffConnectDuration, a.address, err)
		time.Sleep(backoffConnectDuration)
		backoffConnectDuration *= 2
	}
	if err != nil {
		return err
	}
	// 2. 托管listener
	utils.GoWithRecover(func() {
		ch := make(chan api.Connection, 1)
		a.listener.GetListenerCallbacks().OnAccept(a.rawc, a.listener.UseOriginalDst(), nil, ch, a.readBuffer.Bytes(), []api.ConnectionEventListener{a})
	}, nil)
	return nil
}

该方法主要步骤:

1.a.init( ) 方法会调用 initAgentCoreConnection 方法初始化物理连接并完成建连交互过程。Tunnel Server 通过 Agent 传输的元数据信息,进行管理反向连接。具体的交互过程和协议后文会细讲。

2.建连成功之后,Tunnel Agent 托管 raw conn 给指定的 Listener。之后该 raw conn 的生命周期由该 Listener 全权管理,并且完全复用该 Listener 的能力。

其定义了初始化反向连接的交互流程,具体代码细节可以看:

pkg/filter/network/tunnel/connection.go:250,本文不展开技术细节。

交互过程

目前 MOSN 的反向通道只支持了 raw conn 的实现,因此定义了一套简单明了的网络通信协议。

主要包括:

- 协议魔数:2 byte;

- 协议版本:1 byte;

- 主体结构类型:1 byte,包括初始化、平滑关闭等;

- 主体数据长度:2 byte;

- JSON 序列化的主体数据。

MOSN 反向通道完整的生命周期交互过程:

建连过程中由 Tunnel Agent 主动发起,并且在 TCP 连接建立成功(TLS 握手成功)之后,将反向建连的关键信息 ConnectionInitInfo 序列化并传输给对端 Tunnel Server,该结构体定义了反向通道的元数据信息。

// ConnectionInitInfo is the basic information of agent host,
// it is sent immediately after the physical connection is established
type ConnectionInitInfo struct {
	ClusterName      string                 `json:"cluster_name"`
	Weight           int64                  `json:"weight"`
	HostName         string                 `json:"host_name"`
	CredentialPolicy string                 `json:"credential_policy"`
	Credential       string                 `json:"credential"`
	Extra            map[string]interface{} `json:"extra"`
}

Tunnel Server 接受该元数据信息之后,主要工作包括:

1.如果有设置自定义鉴权方式,则进行连接鉴权;

2.clusterManager 将该连接加入到指定的 ClusterSnapshot 并回写建连结果。

此时建连过程才算完成。

func (t *tunnelFilter) handleConnectionInit(info *ConnectionInitInfo) api.FilterStatus {
	// Auth the connection
	conn := t.readCallbacks.Connection()
	if info.CredentialPolicy != "" {
		// 1. 自定义鉴权操作,篇幅原因省略
	}
	if !t.clusterManager.ClusterExist(info.ClusterName) {
		writeConnectResponse(ConnectClusterNotExist, conn)
		return api.Stop
	}
	// Set the flag that has been initialized, subsequent data processing skips this filter
	err := writeConnectResponse(ConnectSuccess, conn)
	if err != nil {
		return api.Stop
	}
	conn.AddConnectionEventListener(NewHostRemover(conn.RemoteAddr().String(), info.ClusterName))
	tunnelHostMutex.Lock()
	defer tunnelHostMutex.Unlock()
	snapshot := t.clusterManager.GetClusterSnapshot(context.Background(), info.ClusterName)
	// 2. host加入到指定的cluster
	_ = t.clusterManager.AppendClusterTypesHosts(info.ClusterName, []types.Host{NewHost(v2.Host{
		HostConfig: v2.HostConfig{
			Address:    conn.RemoteAddr().String(),
			Hostname:   info.HostName,
			Weight:     uint32(info.Weight),
			TLSDisable: false,
		}}, snapshot.ClusterInfo(), CreateAgentBackendConnection(conn))})
	t.connInitialized = true
	return api.Stop
}

然后是通信过程,为了便于理解,以下图请求单向流转示意图举例:
 

在传统的 MOSN Sidecar 应用场景中,Frontend 发送的请求首先经过 Client-MOSN,然后通过路由模块,主动创建连接(虚线部分)并流转到对端,经由 Server-MOSN biz-listener 处理转交给 Backend。

而在云边场景的反向通道实现中,Client MOSN(Tunnel Server) 在接受到对端 Tunnel Agent 发起创建反向通道的请求后,即将该物理连接加入路由到对端 MOSN 的 cluster snapshot 中。从而 Frontend 的请求流量能由该反向通道流转到对端 MOSN,而因为 Tunnel Agent 侧把该连接托管给了 biz-listener,则读写处理都由 biz-listener 进行处理,biz-listener 将处理完的请求再转发给真正的 Backend 服务。

总结和规划

本文主要介绍了 MOSN 反向通道的实现原理和设计思路。MOSN 作为高性能的云原生网络代理,希望反向通道的能力能更加有效地支持其作为云边协同场景中承接东西向流量的职责。

当然,后续我们也会继续做一系列的拓展支持,包括但不限于:

1.反向通道支持 gRPC 实现,gRPC 作为云原生时代最通用的服务通讯框架,本身内置了各种强大的治理能力;

2.结合更多云原生场景,内置更加通用的 Tunnel Server 动态服务发现能力组件;

3.更多的配套自动化运维和部署工具。

 了解更多...

MOSN Star 一下✨:
https://github.com/mosn/mosn

快来和我们一起共建吧🧸

深入了解MOSN云原生网络数据平面源码 v0.21.0 本文还有配套的精品资源,点击获取 简介:MOSN(Mesh Over Service Network)是一个面向服务网格的数据平面,用于提供灵活的服务间通信解决方案。本源码解析文档详细介绍了v0.21.0版本的MOSN,它是一个高度可扩展、高性能的云原生网络代理。文档涵盖了MOSN的设计理念、核心架构、服务发现机制、负载均衡策略、安全特性,以及如何阅读源码和参与社区贡献。此... 阅读详情

相关推荐

pgpool-II踩坑日记两则

最近结合pgpool-II进行postgreSQL高可用的部署,过程非常煎熬,作为新手,公司也没有前辈熟悉postgreSQL,只能自己摸索。好在已经搞明白了,把困扰我很长时间的两个问题分享一下。 1. show pool_nodes 第一个问题就是 show pool_nodes 的使用,照着教程建好后,在哪里执行这个指令呢?我在pg服务器上怎么执行这个指令都显示 ERROR: unrecognized configuration parameter "pool_nodes",一度怀疑人生。翻阅了很多资料

zhaizhai6_6的博客 4540

从一次 RPC 请求,探索 MOSN 的工作流程

王程铭(呈铭)蚂蚁集团技术工程师,Apache Committer专注 RPC、Service Mesh 和云原生等领域。本文7368 字,预计阅读15 分钟前言MOSN(Modular Open Smart Network)是一款主要使用 Go 语言开发的云原生网络代理平台,由蚂蚁集团开源并经过了双十一大促几十万容器的生产级验证。MOSN 为服务提供多协议、模块化、智能化、安全的代理...

金融级分布式架构 1763

STM32 HAL库驱动BMP388:从寄存器配置到高精度气压温度采集

本文详细介绍了如何使用STM32 HAL库驱动BMP388气压温度传感器,实现高精度数据采集。内容涵盖从硬件连接到STM32CubeMX配置、关键寄存器解析、驱动源码编写,到核心补偿算法与海拔换算的完整流程,并提供了针对不同应用场景的优化配置与调试技巧,帮助开发者快速构建稳定可靠的测量方案。

weixin_29299807的博客 171

MOSN 多协议扩展开发实践

Service Mesh 是当今云原生的关键部分,蚂蚁已经在生产环境完成了大规模的落地,但是业界整体 Service Mesh 改造程度还不高。其中平稳的进行 Mesh 化改造是可以对已上...

金融级分布式架构 462

基于RYU+Mininet的SDN校园网络实战:从零搭建虚拟化实验环境

本文详细介绍了如何利用RYU控制器和Mininet搭建SDN校园网络实验环境,从Ubuntu虚拟机准备到网络拓扑设计,再到关键网络功能实现。通过实战案例展示SDN在校园网络中的应用优势,包括简化配置、提升效率等,为网络工程师和学生提供了一套完整的虚拟化实验方案。

weixin_30872499的博客 457

3D Slicer中Auto3DSeg和TotalSegmentator等自动分割插件总是安装失败,怎么办?教你两招

TotalSegmentator, MONAI auto3Dseg,这些工具因分割器官多,准确性高,备受关注。同时,这些自动分割工具被集成在了3D slicer平台,非常方便临床医生做手术规划。详细了解这些工具看之前的教程👇-------- 简单概述 --------其中,MONAIAuto3DSeg扩展附带数十种针对特定临床用例的预训练分割模型,这些模型旨在快速运行,几分钟内即可在任何普通计算机上运行,无需 GPU,甚至在笔记本电脑上。

zzjlhlcd的博客 1698

社区文章|MOSN 路由框架详解

文|曹先胜e签宝中间件开发负责 e签宝中间件开发和维护包括 MQ、网关、微服务、数据同步、全链路压测等本文4827字 阅读7分钟01贡献者前言MOSN「 开源就是在使用中,共同...

金融级分布式架构 1212

2026年AI编程工作流实战:Claude Code与Open Code深度对比

AI编程已从代码生成工具升级为IDE级智能工作流核心能力。其本质是将大语言模型深度嵌入开发环境,通过语义理解、上下文感知与行动闭环重构传统编码范式。Claude Code以企业级知识图谱和双轨Code Review为代表,强调合规性、可审计与深度集成;Open Code则依托Skill可组合性、本地优先模型与ocp协议,实现开源驱动的灵活扩展。二者共同推动IDE从‘编辑器’进化为‘数字搭档’——能理解RFC文档、记住PR评论、自动补全带重试的fetch逻辑,并在Promise链发呆时一键重构为async/a

weixin_33739523的博客 464

SOFA Weekly|Go 代码城市、本周 Contributor & QA

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 340

Second-Order Cone Programming(SOCP) 二阶锥规划

个人博客Glooow,欢迎各位老师来踩踩 文章目录1. 二阶锥1.1 二阶锥定义1.2 二阶锥约束2. 优化问题建模3. 类似问题转化3.1 二次规划3.2 随机线性规划4. 问题求解 1. 二阶锥 1.1 二阶锥定义 在此之前,先给出二阶锥的定义。 在 kkk 维空间中二阶锥 (Second-order cone) 的定义为 Ck={[ut]∣u∈Rk−1,t∈R,∥u∥≤t} \mathc...

Glooow的博客 3万+

Cadence virtuos安装教程

本文详细介绍了在Ubuntu 18.04系统上安装Cadence Virtuoso IC617及MMSIM的完整流程。主要内容包括:1)系统环境准备(安装JDK及相关依赖包);2)通过创建软链接和修改系统文件实现RedHat环境兼容;3)共享目录文件操作与分卷压缩包合并解压技巧;4)使用InstallScape工具的安装步骤详解,包括权限处理和配置选项。特别提醒需注意系统兼容性处理(如创建redhat-release文件)和分卷压缩包的特殊解压方法(cat合并)。整个安装过程涉及大量Linux命令操作,需特

wangjie36的博客 298

SOFA Weekly|MOSN v1.1.0 版本发布、C 位大咖说、本周 Contributor & QA

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 322

王者荣耀AI绝悟如何选英雄?

王者荣耀AI绝悟如何选英雄? 【抢射手?抢中单位?「绝悟」在打王者荣耀时是如何选英雄的?】 腾讯 AI Lab 开发的 AI 智能体「绝悟」已让王者峡谷不再只是人类召唤师的竞技场,而且这个 AI 战队在上月底进化成了「完全体」。在一局完整的比赛中,英雄选择阶段是至关重要的(比如五射手或五法师阵容会有官方劝退)。 近日,腾讯 AI Lab 和上海交通大学发布的一篇论文介绍了绝悟的英雄选择策略:Ju...

不断学习,不断进步,提高自己 1万+

SOFA Weekly|SOFANew、本周贡献 & issue 精选

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 541

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SOFA Weekly|SOFANews、本周贡献 & issue 精选

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 636

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SOFA Weekly|Meetup 广州站参会指南、本周 QA、本周 Contributor

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路...

金融级分布式架构 200

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

几种简单电路知识汇总

  这篇文章用于记录平时设计电路或者在书中遇到的一些电路方面的知识,会不定期更新。就先从运算放大器开始,对此做个简单的介绍。 运算放大器   说到运算放大器就不得不说两个概念,虚短与虚断。 虚短: 在理想情况下,运算放大器的两个输入端的电位相等,就好像两个输入端短接在一起,但事实上并没有短接。 虚断: 在理想情况下,流入集成运算放大器输入端电流为零。 注:V+V+V+ 表示运算放大器同相输入端输入电压,V−V-V− 表示运算放大器反相输入端输入电压,ViViVi表示信号输入电压,VoVoVo表示信号输出电压

weixin_44690490的博客 7670

精彩回顾|云原生 Meetup 广州站

???? 云原生 Meetup 广州站圆满结束啦 ???????? 感谢大家的热情????参与 ????让我们一起来回顾下本次活动的精彩瞬间吧~????2022 年的下半年第一场 Meetup 来到了广州,SOFAStack 社区携手 KubeSphere 一起为大家带来了云原生专题的技术内容分享。本次活动汇聚了云原生领域的多个贡献者和技术专家,现场分享与交流的氛围浓厚,吸引了不少小伙伴前来参与。接下来是各...

光谷码农 358

直播预告 | SOFAChannel#31《RPC 框架设计的考和量》

SOFARPC 是蚂蚁集团开源的一款基于 Java 实现的 RPC 服务框架,为应用之间提供远程服务调用能力,具有高可伸缩性,高容错性,目前蚂蚁集团所有的业务的相互间的 RPC 调用都是采用 SOFARPC。SOFARPC 为用户提供了负载均衡,流量转发,链路追踪,链路数据透传,故障剔除等功能。SOFARPC 还支持不同的协议,目前包括 Bolt、RESTful、Dubbo、H2C 协议进行通信。...

金融级分布式架构 602

直播预告 | SOFAChannel#32《你的开源入门指南——Kata Containers 社区》

如今“参与开源”已然成为很多技术人追赶的浪潮。但有些人苦于找不到参加途径,有些人畏畏缩缩不敢发声,或者是由于开源项目众多,不知道该如何挑选......在本期 SOFAChannel#32 的节目中,我们邀请到了 Kata Containers 社区新星姚胤楠同学,给大家带来开源入门指南!Kata Containers 是一种基于硬件虚拟化技术、兼容 OCI/CRI 等协议的容器运行时技术,可以完美...

金融级分布式架构 145

SOFA Weekly|SOFANews、issue 精选

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 484

KubeCon 2022 的议题分享 | Dragonfly

2022 年 10 月 24 日 - 28 日,由 CNCF 与全球开源贡献者共同发起的“KubeCon + CloudNativeCon North America 2022”将以虚拟会议的形式与世界各地的开发者见面。接下来,给大家预告一下来自戚文博(花名:百蓦)的精彩议题~《Dragonfly 多集群镜像加速分发》「分享时间」2022 年 10 月 28 日14:00 - 14:35「讲师介绍...

金融级分布式架构 453

倒计时 1 天 | Meetup 合肥站--云原生技术沙龙等你来!

云原生作为下一代 IT 革命的风向标,对产业数字化、数字产业化发挥着重要作用,尤其在重点行业中,云原生已成为关键业务场景中不可或缺的技术主角。8 月 13 日,安徽开发者社区将联合SOFAStack 社区、Apache APISIX 社区、云原生社区共同举办合肥云原生技术沙龙,并邀请到来自蚂蚁集团、KodeRover、Apache APISIX 社区的资深技术专家,聚焦...

金融级分布式架构 291

直播倒计时 2 天 | SOFAChannel#31 RPC 框架设计的考和量

SOFARPC 是蚂蚁集团开源的一款基于 Java 实现的 RPC 服务框架,为应用之间提供远程服务调用能力,具有高可伸缩性,高容错性,目前蚂蚁集团所有的业务的相互间的 RPC 调用都是采用 SOFARPC。SOFARPC 为用户提供了负载均衡,流量转发,链路追踪,链路数据透传,故障剔除等功能。SOFARPC还支持不同的协议,目前包括 Bolt、RESTful、Dubbo、H2C 协议进行通信。...

金融级分布式架构 270

SOFA Weekly|SOFAServerless 社区会议预告、Layotto 社区会议回顾&预告、社区本周贡献...

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 74
上一篇: 你好,我的新名字叫 “铜锁 / Tongsuo”
下一篇: 倒计时 3 天|一起看云原生 Meetup 的六大议题
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值