SOFA Weekly | Layotto 本周新晋 Contributor、QA 整理、新手任务

 SOFA WEEKLY | 每周精选 

3876de260a5d156932b3d1ce75aecb8c.png

筛选每周精华问答,同步开源进展

欢迎留言互动~

SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,也是在金融场景里锤炼出来的最佳实践。

SOFAStack 官网: https://www.sofastack.tech

SOFAStack: https://github.com/sofastack

  SOFAGirl 的周五 Weekly   

  Layotto 本周新晋 Contributor  

343c4013c746683648775beea197546f.png

  每周读者问答提炼  

欢迎大家向公众号留言提问或在群里与我们互动

我们会筛选重点问题通过 

" SOFA WEEKLY " 的形式回复

1、@郑楚齐 提问:

我们在 Istio 环境下,因为 MOSN 是自动 sidecar 注入的,我怎么控制他读取我的配置文件内容呢?

而且我看官方的 Istio 案例也是可以通过 virsual service 进行流量控制的,我们这个 config.json 也是可以进行流量控制的,是不是我理解的 config.json 是在 virsualService.yaml 的功能上进行拓展的功能(比如这种 tag 路由是 virsualService 不能控制的)。

A:Istio 场景下对应的 sidecar 的静态配置是一些通用的模板(如 pilot 地址渲染等)。关于 service 相关的路由及治理控制都是通过 Istio 定义的 CRD 控制: 

https://istio.io/latest/docs/reference/config/networking/

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

2、@郑楚齐 提问:

MOSN 执行的这个 config.json 是如何使用呢?

因为目前 Istio 的这个配置 DestinationRule VirsualService 是不满足需求的,或者说 MOSN 收到我们订制的DestinationRule VirsualService,会自动转为 config.json 供给 MOSN 使用呢?

A:cluster subset 配置目前 Istio 的 Destination Rule 还不支持:

https://github.com/istio/istio/issues/29322 

不过目前是可以通过 Envoy Filter 来给对应的 cluster 打 patch 实现(比较麻烦点)。

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

3、@郑楚齐 提问:

如果是在 Envoy Filter 打 patch 的话,有没有什么例子吗?

A:这个就是上面说的 cluster subset 配置。目前 Istio 的 Destination Rule 里面还不支持这个(详细见上面的那个讨论 issue),目前唯一的方法就是使用 Envoy Filter 的这个 CRD 打 patch 实现。

可参考文档:

https://istio.io/latest/docs/reference/config/networking/envoy-filter/#EnvoyFilter-ClusterMatch

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

4、@郑楚齐 提问:

看了官方的 EnvoyFilter,不过感觉跟我们 MOSN 的 config.json 里面的内容想对照匹配起来确实很难。

A:你可以用 xds 动态更新或者扩展用我们的 API 更新,不需要直接用这个配置文件。直接调用 MOSN 自己的 API,xds 其实也是 adapt 到这些 API 接口的,如果你们不用 Istio 的话,自己封装可能更简单,主要就 route 和 cluster 两个 API 就行了。

这是一个用 zk 更新 Dubbo 的例子:

https://github.com/mosn/mosn/blob/38b3b922b59500acc082e0ac9d705e41944c94ee/pkg/upstream/servicediscovery/dubbod/common.go#L99

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

5、@孤若 提问:

当空回滚时,如果是因为远程方法调用 try 响应超时,怎么解决终止 try 执行?比如 rollback 执行远比 try 阶段快,rollback 结束 try 还在执行。

A:我之前有参考这个,有提到 TCC 异常控制:

https://www.infoq.cn/article/g33hcc-qosjplkt4e64e

「Seata」https://github.com/seata/seata

6、@林祥标 提问:

Seata 1.3.0 jdk 1.8 使用 jackson 对 localDateTime 进行序列化时报错,有大佬知道怎么解决吗?

A:如果数据库用 datetime,实体又是 localdatetime,目前我发现只能 spi、替换序列化方式、依赖等等都没用。通过 spi 定义三个序列化方式就行了:LocalDate、LocalDateTime、LocalTime...反正如果数据库不是时间戳,目前给的适配方式是无用的(个人用下来的结果)。

「Seata」https://github.com/seata/seata

7、@康德 提问:

理论上这里的 business logic 和 SDK 可以是任何语言的吧,比如 Python,只要能通过 gRPC 和 Layotto 通信即可?

e98f966cbff4a7f95712f1356ec25c12.png

A:是的。

「Layotto」https://github.com/mosn/layotto

  SOFAStack:新手任务计划  

作为技术同学,你是否有过“想参与某个开源项目的开发、但是不知道从何下手”的感觉?

为了帮助大家更好的参与开源项目,社区会定期发布适合新手的新手开发任务,帮助大家 learning by doing !

Easy

  • 为 Layotto 中的关键模块添加注释(例如限流/分布式锁等模块)、添加 nodejs sdk。

Medium

  • 用某种存储实现 File API 组件(例如本地文件系统、minio、hdfs、ftp 等)。

「详见」

https://github.com/mosn/layotto/issues/108#issuecomment-872779356

   本周推荐阅读  

ccbb2dca0d0caba73a13edfbb6530447.png

攀登规模化的高峰 - 蚂蚁集团大规模 Sigma 集群 ApiServer 优化实践


4472a76eee22e9fed919476fc79f4708.png

MOSN 子项目 Layotto:开启服务网格+应用运行时新篇章


d69d36c229382cae4c18991c9fd37a17.png

带你走进云原生技术:云原生开放运维体系探索和实践


0455f54e6de80ac09835c409bd06b362.png

积跬步至千里:QUIC 协议在蚂蚁集团落地之综述


7f1e646e8c56c9cdc2dc86e9bfc2145b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值