云原生网络代理 MOSN 扩展机制解析 | SOFAChannel#14 直播整理

SpringBoot+Vue+Mysql社区医院信息平台(源码+文档) SpringBoot+Vue+Mysql学生宿舍信息管理系统 WEB端软件项目(源码+文档) 项目包含:①完整源码(后端+管理后台+用户前台);②数据库脚本文件;③万字论文文档;④开题报告;⑤答辩PPT;⑥项目运行视频教程。 项目架构: B/S 架构、MVC 分层设计 技术栈: Java、MySQL、SpringBoot、MyBatis-Plus、Token 权限校验、管理后台 Vue+ElementUI+ECharts、用户前台 Layui+jQuery、Maven 构建。 一、角色设计 学生用户: 注册登录、浏览宿舍信息、查询宿舍安排、在线报修、缴费查询、失物招领、桶装水预订、评论交流、收藏等。 商家用户: 注册登录、桶装水品牌与商品信息维护、预订订单查看与处理。 维修人员: 注册登录、查看待处理报修、接单维修、填写报修处理结果与进度反馈。 管理员: 学生管理、班级管理、宿舍信息管理、宿舍安排管理、报修处理管理、缴费信息管理、卫生检查与文明宿舍管理、失物招领管理、桶装水与商家管理、维修人员管理、公告资讯与轮播图管理等。 二、前台功能模块(学生端) 1. 首页展示:轮播图、宿舍公告、最新动态推荐、常用服务快速入口 2. 宿舍信息模块:宿舍列表、楼栋与房间条件筛选、宿舍详情查看、我的宿舍安排查询 3. 在线报修模块:在线提交宿舍设施报修申请、上传故障描述、查看报修进度与维修处理结果 4. 缴费模块:水电等缴费记录查询、缴费状态查看 5. 卫生检查与文明宿舍:宿舍卫生检查结果公示、文明宿舍展示 6. 失物招领模块:失物信息发布、招领信息发布、详情查看、评论互动 7. 桶装水预订:桶装水品牌与商品浏览、在线预订、我的预订记录查询 8. 假期留宿:假期留校申请提交、申请记录查询 9. 评论与收藏:信息评论、查看他人评论、评论回复互动、收藏感兴趣的内容 10. 个人中心... 立即下载

<SOFA:Channel/>,有趣实用的分布式架构频道。 

回顾视频以及 PPT 查看地址见文末。欢迎加入直播互动钉钉群 : 21992058,不错过每场直播。 


本文根据 SOFAChannel#14 直播分享整理,主题:云原生网络代理 MOSN 扩展机制解析。

大家好,我是今天的讲师永鹏,来自蚂蚁金服,目前主要负责 MOSN 的开发,也是 MOSN 的Committer。今天我为大家分享的是云原生网络代理 MOSN 的扩展机制,希望通过这次分享以后,能让大家了解 MOSN 的可编程扩展能力,可以基于 MOSN 的扩展能力,按照自己实际的业务需求进行二次开发。

前言

今天我们将从以下几个方面,对 MOSN 的扩展机制进行介绍:

  • MOSN 扩展能力和扩展机制的详细介绍;

  • 结合示例对 MOSN 的 Filter 扩展机制与插件扩展机制进行详细介绍;

  • MOSN 后续扩展能力规划与展望;

欢迎大家有兴趣一起共建 MOSN。在本次演讲中涉及到的示例就在我们的 Github 的 examples/codes/mosn-extensions 目录下,大家有兴趣的也可以下载下来运行一下,关于这些示例我们还做了一些小活动,也希望大家可以踊跃参与。

MOSN:https://github.com/mosn/mosn

云原生网络代理 MOSN 简介

MOSN 作为云原生的网络代理,旨在为服务提供多协议、模块化、智能化、安全的代理能力。在实际生产使用中,不同的厂商会有不同的使用场景,通用的网络代理能力面对具体的业务场景会显得有些不足,通常都需要进行二次开发以满足业务需求。MOSN 在核心框架中,提供了一系列的扩展机制和扩展点,就是为了满足需要基于业务进行二次开发的场景,同时 MOSN 提供的部分通用逻辑也是基于扩展机制和扩展点的实现。

比如通过 MOSN “内置实现”的透明劫持的能力,就是通过 MOSN Filter 机制实现。而要实现消息的代理,则可以通过类似的扩展实现。在通用代理的情况下,可以通过 Filter 机制实现业务的认证鉴权,也可以实现定制的负载均衡逻辑;除了转发流程可以扩展实现以外,MOSN 还可以扩展日志的实现,用于对标已有的日志系统,也可以扩展 XDS 实现定制的配置更新;根据不同的业务场景还会有很多具体的扩展情况,就不在此展开了,有兴趣的可以关注 MOSN 社区正在建设的源代码分析系列文章与文档。

MOSN 作为一款网络代理,在转发链路上的网络层、协议层、转发层,在非转发链路上的配置、日志、Admin API 等都提供了扩展能力,对于协议扩展的部分,有兴趣的可以看一下上期直播讲的 MOSN 多协议机制解析,我们今天将重点介绍一下转发层的 Stream Filter 扩展机制与 MOSN 的插件机制。

Stream Filter 机制

在实际业务场景中,在转发请求之前或者回写响应之前,都可能需要对请求/响应做一些处理,如判断是否需要进行转发的认证/鉴权,是否需要限流,又或者需要对请求/响应做一些具有业务语义的记录,需要对协议进行转换等。这些场景都与具体的业务高度耦合,是一个典型的需要进行二次开发的情况。MOSN 的 Stream Filter 机制就是为了满足这样的扩展场景所设计的,它也成为目前 MOSN 扩展中使用频率最高的扩展点。

在目前的内置 MOSN 实现中,Stream Filter 机制暂时与内置的 network filter: proxy 是绑定的,后面我们也考虑将这部分能力进行抽象,让其他 network filter 也可以复用这部分能力。

关于 Stream Filter,今天会为大家讲解两个部分的内容:

1. 一个 Stream Filter 包含哪些部分以及在 MOSN 中是如何工作的;

2. 通过一个 Demo 演示来加深对 Stream Filter 的实现与应用;

一个完整的 Stream Filter

一个完整的 StreamFilter,包含三个部分的内容:

  • 一个 StreamFilter 对象,存在于每一个请求/响应当中,在 MOSN 收到请求的时候发挥作用,我们称为 ReceiverFilter,在 MOSN 收到响应时发挥作用,我们称为 SenderFilter。一个 StreamFilter 可以是其中任意一种,也可以是两种都是;

  • 一个 StreamFilterFactory 对象,用于 MOSN 在每次收到请求时,生成 StreamFilter 对象。在 Listener 配置解析时,一个 StreamFilter 的配置会生成一个其对于的 StreamFilterFactory。同一个 StreamFilter 在不同的 Listener 下可能对应不同的 StreamFilterFactory,但是也有的特殊情况下,StreamFilterFactory 可能需要实现为单例;

  • 一个 CreateStreamFilterFactory 方法,配置解析时生成 StreamFilterFactory 就是调用它;

Stream Filter 在 MOSN 中是如何工作的

接下来,我们看下 Stream Filter 在 MOSN 中是如何工作的。

当 MOSN 经过协议解析,收到一个完整的请求时,会创建一个 Stream。此时收到请求的 Listener 中每存在 StreamFilterFactory,就会生成一个 StreamFilter 对象,随后进入到 proxy 流程。

进入 proxy 流程以后,如果存在 ReceiverFilter,那么就会执行对应的逻辑,ReceiverFilter 包括两个阶段,“路由前”和“路由后”,在每个 Filter 处理完成以后,会返回一个状态,如果是 Stop 则会中止后续尚未执行的 ReceiverFilter,通常情况下,返回 Stop 状态的 Filter 都会回写一个响应。如果是 Continue 则会执行下一个 ReceiverFilter,直到本阶段的 ReceiverFilter 都执行完成或中止;路由前阶段的 ReceiverFIlter 执行完成后,就会执行路由后阶段,其逻辑和路由前一致。如果是正常转发,那么随后 MOSN 会收到一个响应或者发现其他异常直接回写一个响应,此时就会进入到 SenderFilter 的流程中,完成 SenderFilter 的处理。SenderFilter 处理完成以后,MOSN 会写响应给 Client,并且完成最后的收尾工作,收尾工作包括一些数据的回收、日志的记录,以及 StreamFilter 的“销毁”(调用 OnDestroy)。

Stream Filter Demo

对 StreamFilter 有了一个基本的认识以后,我们来看一个实际的 Demo 代码来看下如何实现一个 StreamFilter 并且让它在 MOSN 中发挥作用。

按照刚才我们的介绍,一个 Stream FIlter 要包含三部分:Filter、Factory、CreateFactory。

  • 首先我们实现一个 Filter,其逻辑是模拟一个鉴权的 Filter:只有请求的 Header 中包含所配置的 Key-Value 时,MOSN 才会对请求做继续转发,否则直接返回 403 错误;

  • 然后我们实现一个 Factory,它负责生成我们实现的 Filter,并且说明 Filter 应该发挥作用的阶段(在请求阶段、路由匹配之前);

  • 最后我们定义了一个生成 DemoFactory 的函数 CreateDemoFactory,并且通过 init 将其“注册”,注册完成以后,MOSN 配置解析就可以识别这个 StreamFilter;

完成实现以后,我们就可以通过具体的配置来实现对应的功能了。在示例的配置中,配置 StreamFilter 为我们刚才实现的 Filter,只转发 Header 中包含 user:admin 的请求。示例配置中监听的端口是 2046,转发的后端 server 端口是 8080。在演示之前,我已经完成了 8080 server 的启动,这个 server 会对收到的任意请求返回 200 。我们来看一下 MOSN 转发情况。(Demo 操作可以在文末直播的视频回顾中查看)

  • Stream Filter Demo: 

    https://github.com/mosn/mosn/tree/master/examples/codes/mosn-extensions/simplestreamfilter

  • Demo Readme:

    https://github.com/mosn/mosn/tree/master/examples/cnreadme/mosn-extensions

MOSN Plugin 机制

下面我们来了解一下 MOSN 的 Plugin 机制。

刚才我们对 Stream Filter 有了一个了解,MOSN 中其余的扩展实现也是类似的方法,思路就是编码实现 MOSN 扩展点所需要的接口然后利用 MOSN 的框架运行扩展的实现。

但是这里会发现一个问题,就是有时候我们需要的扩展能力已经有现成可用的实现了,那么我们是否可以做简单的改造就让 MOSN 可以获取对应的能力,哪怕目前可用的实现不是 Go 语言的实现,比如现成的限流能力的实现、注入能力的实现等;又或者对于某些特定的能力,它需要有更严格的控制,更高的标准,比如安全相关的能力。

类似这样的场景,我们引入了 MOSN 的 Plugin 机制,它支持我们可以对 MOSN 需要的能力进行独立开发或者我们对现有的程序进行适当的改造以后,就可以将它们引入到 MOSN 当中来。

MOSN 的 Plugin 机制包含了两部分内容,一是 MOSN 自定义的 Plugin 框架,它支持通过在 MOSN 中实现 agent 与一个独立的进程进行交互来完成 MOSN 扩展能力的实现。二是基于 Golang 的 Plugin 框架,通过动态库(SO)加载的方式,实现 MOSN 的扩展。其中动态库加载的方式目前还存在一些局限性,还处于 beta 阶段。

我们先来看一下多进程 Plugin 框架。

多进程 Plugin 框架

MOSN 的 Plugin 框架是 MOSN 封装的一个可以让 MOSN 通过 gRPC 和独立进程进行交互的方式,它包含两部分:

1. 独立的进程通过 MOSN Plugin 框架管理,作为 MOSN 的子进程;MOSN 的 Plugin 框架可以管理它们,如启动、关闭等;

2. 通过在 MOSN 中实现的 agent,使用 gRPC 的方式和子进程进行交互,gRPC 可以是基于 tcp 的,也可以是基于 domain socket 的;

基于这个框架,我们只需要开发或者进行一些改造,让程序满足 MOSN 框架的规范,就可以作为 MOSN 多进程插件的一部分。

首先我们需要提供一个 gRPC 的服务,并且满足 MOSN 框架下的 proto 定义。当 gRPC server 启动完成以后,向标准输出(stdout)输出一段约定的字符串,作为 MOSN 和子进程之间的握手协议。MOSN 中的对应 agent 会通过握手协议完成与子进程之间的连接建立。握手协议的字符串包含5个字段,每个字段之间用"|"分割,其中带$符号的是根据实际进程情况需要填写的值,其余的是当前约定的固定字段。network 支持 tcp/unix,代表通过 tcp 方式还是 unix domain socket 的方式进行通信,addr 表示 gRPC server 监听的地址。

MOSN 提供了 go 语言的子进程 server 封装,在 go 语言场景下,作为子进程的程序只需要实现一个 MOSN 框架下的 plugin.Service 接口,并且通过 plugin.Serve 方法启动即可。

通过 Plugin 框架,让 MOSN 做到在扩展功能实现的时候,支持隔离性、支持异构语言扩展能力、支持模块化,以及具备进程管理的能力。

对于 MOSN 通过多进程方式完成扩展,今天准备了两个示例和大家进行分享。一个是基于 MOSN 的 TLS 扩展,模拟了通过一个安全等级比较高的证书管理程序来获取 TLS 配置证书、私钥等敏感信息的能力;第二个是将之前演示的 Stream Filter 修改为了“子进程”,模拟“如何将现成的能力”引入 MOSN。

基于 MOSN 的 TLS 扩展示例

首先来看 TLS 的扩展,示例包含两部分内容:

  • 独立的子进程,用 Go 语言实现,实现了 plugin.Service 接口,并通过 plugin.Serve 方法启动;

  • MOSN 扩展点实现交互 agent。在这里就不详细展开TLS扩展点的细节了,只关注交互过程:通过 Call 方法发送 gRPC 请求,获取响应,完成相关逻辑;

  • Load Cert Demo: 

    https://github.com/mosn/mosn/tree/master/examples/codes/mosn-extensions/plugin/certloader

  • Demo Readme:

    https://github.com/mosn/mosn/tree/master/examples/cnreadme/mosn-extensions

下面我们来看一下效果,首先配置依然是监听 2046 的端口,配置了扩展的 TLS 配置,就需要 HTTPS 才可以访问 MOSN。(Demo 操作可以在文末直播的视频回顾中查看)

Stream Filter 作为 agent 示例

下面我们来看下 Stream Filter 作为 agent,与多进程之间的示例,模拟“如何将现成的能力”引入 MOSN。在示例中我们把之前的“鉴权”认为是一个“现成的”能力。

独立进程中实现和之前一样的“鉴权”能力,其配置来自进程的启动参数。Stream Filter 作为 agent 实现,其中“校验”逻辑修改为和子进程交互,在生成 Factory 时完成子进程的启动和配置设置。

这个示例运行以后和之前 Stream Filter 的效果是一样的。(Demo 操作可以在文末直播的视频回顾中查看)

  • Stream Filter Plugin Demo: 

    https://github.com/mosn/mosn/tree/master/examples/codes/mosn-extensions/plugin/filter

  • Demo Readme:

    https://github.com/mosn/mosn/tree/master/examples/cn_readme/mosn-extensions

动态库(SO)扩展机制

在目前的多进程框架中,虽然扩展能力可以通过一个独立的子程序实现,但是仍然需要在 MOSN 中实现一个 agent 用于交互,依然需要在MOSN中编写一部分代码;而我们希望引入动态库(SO)加载的机制,实现在不重新编译 MOSN 的情况下,通过加载不同的 SO,做到不同的扩展能力。

与子程序模式相比,SO 虽然也是一个独立的二进制,但是最终启动的时候,不会有额外的子进程存在,其生命周期可以和 MOSN 完全保持一致,而且动态库机制还有一个优势:它可以让扩展代码和 MOSN 完全解耦合。

但是,目前使用动态库加载的方式还存在一些限制,因此 MOSN 对于这个能力也还处于 Beta 阶段,并没有投入实际使用,需要完善。相关的原因包括:

  • 部分 MOSN 扩展的实现需要用到 MOSN 中的一些定义,因此在动态库实现时不能完全做到解耦合。

为了解决这个问题,MOSN 将一些基础库(如日志、buffer 等),一些 API 定义从 MOSN 的核心仓库中独立出来,这样扩展实现和 MOSN 核心都引用这些“独立”的库,减少扩展对 MOSN 核心代码的依赖。

如果某一个扩展点要支持完全解耦合的动态库扩展,那么对应的扩展点都需要进行支持动态库加载的改造,包括配置模型与实现。

  • MOSN 动态库加载的方式,其实是基于 Go 语言的 plugin 包实现的,它可以加载用 Go 语言编译的动态库。但是对于动态库的编译环境存在一些限制,编译它时必须和 MOSN 编译时的 GOPATH 保持一致;同时引用的代码路径都需要保持一致,如果存在 vendor 目录,那么意味着编译动态库时的项目路径也得和 MOSN 核心保持一致。

为了解决这个问题,我们考虑使用 Docker 编译,在编译时统一 GOPATH,强制修改代码目录结构,屏蔽掉 Vendor 目录差异的方式来解决,这种方式目前仍然在验证中。

因此理论上 MOSN 目前所有的扩展点都可以使用 Go 语言原生机制通过加载 SO 的方式来实现,而目前 MOSN 最适合实现这个能力的一个扩展点就是 Stream Filter。

我们只需要实现一个通用的、可以加载 SO 的 Filter,然后在具体的 SO 中实现真正的 StreamFilter 逻辑,由于 StreamFilter 实现所需要的接口定义都在 mosn.io/api 中,所以 SO 可以做到和 MOSN 核心框架解耦合。

关键点就是这个通用 Filter 的设计和实现,我们也通过 Demo 来看一下。

通用 Filter 的设计和实现

这个通用的 Filter 和普通的 StreamFilter 不同,它只包含一个要素:CreateFactory。思路是通过通用的 CreateFactory,加载 SO 中的 CreateFactory 并执行,让 SO 中的 Factory 发挥作用。

通用 CreateFactory 包括:

  • 配置解析,解析出两部分内容:一是需要加载的 SO 路径,二是 SO 中对应 Filter 所需要的配置;

  • SO 路径就代表了 SO 中 Filter 的“注册”,以及本次会选择这个 Filter;

  • 加载 SO,基于其中约定好的函数名,获取真正的 CreateFactory 函数;

  • 调用真正的 CreateFactory 函数,实现 SO 中 StreamFilter 的加载;

  • 由此,我们可以看到,SO 中的 StreamFIlter 也和普通的 FIlter 有些区别:

  • 生成 StreamFilterChainFactory 的函数必须是固定的名字;

  • 不再需要 init “注册”该函数;

  • Stream Filter SO Demo: 

    https://github.com/mosn/mosn/tree/master/examples/codes/mosn-extensions/plugin/so

  • Demo Readme:

    https://github.com/mosn/mosn/tree/master/examples/cn_readme/mosn-extensions

下面我们来看一下这个 Demo 的效果。本次 Demo 中的 Filter 实现依然是之前的“鉴权”示例。经过验证,我们发现这个思路是可行的,但是离生产实践还需要完善更多的细节。(Demo 操作可以在文末直播的视频回顾中查看)

代码扩展活动

经过这些演示,相信大家对 MOSN 的扩展能力也有所了解了,这里我们来做一个代码扩展活动,希望大家可以踊跃参与。完成活动任务,提交相关代码 PR 到 MOSN 的仓库,我们会进行 CodeReview 和验证,第一个验证通过的代码将合并到 MOSN 的 example 中,并且对提交的同学送上一份奖励;对于前3名提交、同样结果正确并且是原创的,虽然我们不能合并对应的代码,但是我们也将送上奖励。

活动任务共有五个:

  • 多进程 Demo 中证书加载的独立进程,使用 python 或者 java 实现以后,demo 运行演示成功。任意一种语言就算完成一个任务。

    + examples/codes/mosn-extensions/plugin/cert_loader/python/

    + examples/codes/mosn-extensions/plugin/cert_loader/java/

  • 多进程 Demo 中 stream filter 的独立进程,使用 python 或者 java 实现以后,demo 运行演示成功。任意一种语言就算完成一个任务。

    + examples/codes/mosn-extensions/plugin/filter/python/

    + examples/codes/mosn-extensions/plugin/filter/java/

  • SO 动态加载 Demo 中,SO 里实现的 Stream Filter 结合多进程框架(GO 语言)实现,Demo 运行演示成功。

    + examples/codes/mosn-extensions/plugin/so/subprocess/

跨语言相关的实现可以参考以下示例:

https://github.com/mosn/mosn/tree/master/examples/codes/plugin/across-languages/server/

规划与展望

最后向大家介绍一下 MOSN 后续扩展能力的规划,也希望大家有需求的可以向我们反馈,有兴趣的一起参与到 MOSN 的建设中来。首先就是要完善 SO 动态库加载机制,让 MOSN 支持 SO 方式加载扩展;然后就是针对 LUA 的脚本扩展以及支持 WASM 的扩展能力;最后 MOSN 还会增加更多的扩展点,以满足更多更复杂的场景。非常欢迎大家参与到 MOSN 社区的共建中。

MOSN:https://github.com/mosn/mosn

MOSN 官网:https://mosn.io/

以上就是本期分享的全部内容,如果大家对 MOSN 有问题以及建议,欢迎在群内与我们交流。

本期直播视频回顾以及 PPT 查看地址

https://tech.antfin.com/community/live/1152

本文归档在 sofastack.tech。

???? 奖励支持 SOFAStack 的你~

* 点下右下角“在看”

* 到公众号对话框发送“T 恤”,试试手气~

* 本期互动奖品“SOFAStack T 恤”

YOLOv8作物病害检测实战源码 这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。 立即下载

相关推荐

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.youkuaiyun.com/mtl1994

MOSN 多协议扩展开发实践

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

金融级分布式架构 462

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?.docx

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?

云原生网络代理 MOSN 多协议机制解析 | SOFAChannel#13 直播整理

<SOFA:Channel/>,有趣实用的分布式架构频道。回顾视频以及 PPT 查看地址见文末。欢迎加入直播互动钉钉群 : 21992058...

金融级分布式架构 884

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Mosn环境搭建(二)MOSN 开发环境 搭建

MOSN Linux环境开发环境搭建安装Golang环境安装Goland开发工具下载mosn源码新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 安装Golang环境 安装Goland开发工具 下载mosn源码 你好! 这是

ruanjiangjx的博客 1172

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

MOSN 源码浅析

本文作者李乾坤,喜马拉雅Java资深开发工程师,主要负责业务中台及容器化工作,业余比较喜欢跑步、户外活动,个人博客:http://qiankunli.github.ioMOSN是基于Go...

ServiceMesher 2435

高校技术转移办公室人员如何系统化管理科技成果信息?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

科技中介服务机构如何构建标准化、模块化的智能服务工具?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

MOSN 反向通道详解

目前例如 SuperEdge、Yurttunnel 等业界知名云边协同开源框架,对于云边通信的实现方案都是基于反向通道。本文将着重介绍 MOSN 之上的反向通道运作流程和原理。

金融级分布式架构 586

fab-pm-optimizer-python-entry-py39-20261021-v1-1-0

fab-pm-optimizer-python-entry-py39-20261021-v1-1-0

云原生网络代理 MOSN 平滑升级原理解析 | 开源

MOSN 是一款使用 Go 语言开发的网络代理软件,作为云原生的网络数据平面,旨在为服务提供多协议,模块化,智能化,安全的代理能力。MOSN 是 Modular Open Smart N...

金融级分布式架构 1304

PSIM-三相维也纳VIENNA整流器电压电流双闭环+中点电位平衡SVPWM控制仿真

内容概要:本文档详细介绍了一种基于PSIM软件实现的三相维也纳(VIENNA)整流器仿真模型,重点实现了电压电流双闭环控制与中点电位平衡的SVPWM调制策略。该仿真系统通过精确的控制算法有效提升了整流器的功率因数,降低了输入电流谐波含量,并解决了三电平拓扑中常见的直流侧中点电位偏移问题,具有较高的工程实用价值,适用于高效率、高功率密度的电力电子系统设计与科研验证。文档还整合了丰富的配套资源,涵盖多种电力电子变换器拓扑结构、先进控制算法及典型应用场景,形成了系统化的技术资料体系,有助于深入理解现代整流技术的核心原理与发展动态。; 适合人群:面向从事电力电子、电气工程、新能源变换系统等领域的科研人员、高校研究生以及具备一定仿真基础的工程技术人员。; 使用场景及目标:①深入研究三相VIENNA整流器的工作机理与控制特性;②掌握电压外环、电流内环双闭环控制结构的设计方法;③理解并实现SVPWM调制技术与中点电位平衡控制策略的协同作用;④开展相关控制算法的仿真验证、性能优化与实验对比,为高性能整流装置的研发提供理论支撑和技术原型。; 阅读建议:建议结合文中列出的其他仿真案例(如PWM整流器、LLC谐振变换器、DAB变换器等)进行横向对比学习,充分利用所提供的PSIM、MATLAB/Simulink等多平台仿真资源,重点关注控制逻辑与主电路的耦合关系,通过参数调试与波形分析深化对系统动态响应和稳态性能的理解,强化“理论—建模—仿真—优化”的闭环研究能力。

产业园区运营负责人如何利用数智工具提升园区企业的技术对接效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Mosn环境搭建(三) 测试Mosn代理例子

测试Mosn代理 http-sample查看源码例子说明测试第一个Mosn代理例子 http-sample启动mosn服务测试代理是否能访问serverMosn 加载config配置说明 查看源码例子说明 测试例子说明目录: mosn/src/mosn.io/mosn/examples/cn_readme 测试例子资源目录 mosn/src/mosn.io/mosn/examples/codes 测试第一个Mosn代理例子 http-sample 设置mosn启动参数 start -c /root/

ruanjiangjx的博客 755

ICD10 openGauss版

ICD10 openGauss版

上一篇: 蚂蚁金服服务注册中心如何实现 DataServer 平滑扩缩容 | SOFARegistry 解析
下一篇: SOFA Weekly | Service Mesh 系列直播预告、Seata 发布
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值