[干货分享] Service Mesh中间件的发展趋势

Posted 钱包金服学院

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[干货分享] Service Mesh中间件的发展趋势相关的知识,希望对你有一定的参考价值。


[干货分享] Service Mesh中间件的发展趋势

闫旋

技术部

架构师


钱包课堂开课啦 [干货分享] Service Mesh中间件的发展趋势

面向技术岗位的专业课程又开始了,本期邀请到技术部架构师闫旋老师他从阿里云中间件比赛的经验谈起,带领大家一起开拓知识领域,现场气氛火热~


[干货分享] Service Mesh中间件的发展趋势
[干货分享] Service Mesh中间件的发展趋势

[干货分享] Service Mesh中间件的发展趋势

NETTY框架


Java 的主流网络框架: nio,akka,netty ,netty 是众多 java 选手中较为青睐的。


[干货分享] Service Mesh中间件的发展趋势


[干货分享] Service Mesh中间件的发展趋势

网络模型选择


官方提供的 demo 直接跑通了整个通信流程,省去了我们大量的时间。

提升方法:

1、使用async-http-client 提供的异步 http-client,以及 servlet3.0 提供的非阻塞 api;

2、采用future模式;

3、直接用Callback方式。


[干货分享] Service Mesh中间件的发展趋势



[干货分享] Service Mesh中间件的发展趋势

NETTY使用及EVENTLOOP复用


注意点:

1、线程数尽量少,能用一个线程就不用两个;

2、连接数尽量少,使用尽可能少的连接数和线程数,可以提升qps,减少不必要的线程切换;

3、netty 可以从客户端引导 channel,从而复用 eventLoop,把 eventLoop 理解为 io 线程,如果入站的io 线程和 出站的 io 线程使用相同的线程,可以减少不必要的上下文切换。


[干货分享] Service Mesh中间件的发展趋势

通讯协议和Buffer


使用定长头+字节数组来作为自定义协议,比http更有效:

消息的解析方式一:直接自己逐个字节解析;

消息的解析方式二:使用Netty提供的解析包,例如QueryStringDecoder等。

[干货分享] Service Mesh中间件的发展趋势

ZERO-COPY

1、尽量使用ByteBuf作为消息接收和发送的数据结构;

2、在consumer agent接收到消息后,使用一次拷贝保存;

3、边解析边做协议转换,减少拷贝次数;

4、每一次写new的时候,都要非常谨慎,尽量不要new。


Java direct buffer

Java 网络程序中使用堆外直接内存进行内容发送(Socket读写操作),可以避免了字节缓冲区的二次拷贝。


[干货分享] Service Mesh中间件的发展趋势

Batch process

(批量flush,批量decode)


1、可以把消息积攒一下,再推送;

2、批量 decode 的思想来自于蚂蚁金服的 rpc 框架 sofa-bolt 中提供的一个抽象类:AbstractBatchDecoder;

3、AbstractBatchDecoder的qps 更高。



关注“钱包金服学院”

后台菜单栏回复:中间件

即可获得现场课件及视频


以上是关于[干货分享] Service Mesh中间件的发展趋势的主要内容,如果未能解决你的问题,请参考以下文章

干货|如何入门Service Mesh微服务架构

从服务治理以及分布式发展史的角度剖析Service Mesh的精髓

25篇技术干货说尽微服务Service Mesh容器DevOps | Meetup年度实录集

Dubbo在Service Mesh下的思考和方案

阿里巴巴 Service Mesh 落地的架构与挑战

service mesh初了解