收藏 | 90后开发者的11套关于服务调用和消息发送的解题思路

简介: 第四届阿里中间件性能挑战赛回顾。

阿里中间件性能挑战赛至今为止已经成功举办四届,大赛是由阿里巴巴集团发起,阿里巴巴中间(Aliware)、阿里云天池联合举办,是集团唯一的工程性品牌赛事。大赛的初衷是为热爱技术的年轻人提供一个挑战世界级技术问题的舞台,希望选手在追求性能极致的同时,能深刻体会技术人的匠心精神,用技术为全社会创造更大的价值。

_1

第四届阿里中间件性能挑战赛以“挑战双十一万亿级服务调用”为主题,以开源项目为背景,基于Apache Dubbo 和 Apache RocketMQ这两个开源项目,分别实现一个高性能Service Mesh Agent组件完成服务注册与发现、协议转化、负责均衡的功能,以及实现一个进程内的队列引擎,完成单机可支持100万队列以上的性能。

»»关注 “阿里巴巴中间件” 公众号,回复“挑战赛”,获得Top11解题思路。(持续更新)


**

-变化一:更庞大的参赛队伍和人数-

**

9I8A0076

第四届阿里中间件性能挑战赛从4月26日启动,到7月22日结束,历近3个月。此次大赛分为内部赛场和外部赛场,内部赛共有273支队伍,341人报名,来自阿里的44个BU。外部赛共吸引全国3101支队伍,3435名选手,覆盖7个国家和地区、432所海内外高校、480+家企业。经过激烈角逐,全国TOP11团队产生,暨分获冠亚季军和优胜奖:

冠军:Blink`

亚军:做作业、98K

季军:强迫症康复中心、===BASELINE===、YLJZ

优胜奖:LJY=+∞、Zaun、DDDDDD、RDP飞起来、三个火枪手

他们将分别获得20万元,8万元,3万元和1万元的大赛奖励,用于参赛选手在技术领域的进一步深造和课外学习。此外,作为挑战赛的独立大赛单元,设置了极客挑战赛,并采用国际上通用的24小时黑客马拉松赛制,不仅挑战着选手的脑力,也挑战着选手的体力,经过整整24小时的鏖战,江海挺、徐哲、杨晓、石超各赢得了4万元的西行游学基金,用于美国游学、参加国际顶级技术会议和拜访硅谷科技企业。


-变化二:场景更贴近实战-

DSC_2679

此次挑战赛以“挑战双十一万亿级服务调用”的实战场景作为主题,让选手们亲临“双十一现场”,真实模拟压力场景,处理世界级难题。

众所周知,随着来自业务需求的压力逐渐增长,系统架构的微服务改造越来越流行。但改造过程中充满了不确定性。

将单体系统剥离、引入服务化组件、将内部调用转化为远程调用、解决因为调用远程化和分布化而带来的各种次生问题,例如网络问题、安全问题、状态管理问题、一致性问题等等。选手们面对用户基数大、并发访问量大、突发极端峰值的双十一场景,如何保证服务调用的可用性和服务性能将成为本次比赛的关注重点之一。

.

如何设计一个存储引擎,实现单机可支持100万以上队列,以满足日益增长的业务需求和云上输出,是本次比赛的另一个关注重点。

不同于上一届,今年大赛开发语言不限的设置也让大赛场景不限于Java领域,参赛团队可以选择自己中意的技术,主流的、非主流的,让更多的开发者参加到中间件性能挑战的大赛中。


-变化三:赛题更贴近开源-

FS3_8545

无论是会议还是比赛,内容总会契合当下大家所关注的、所讨论的、所期待的。例如作为云计算行业现象级的大会– 云栖大会,从2009第一届的“融合、创新、发展”到2017年的“飞天、智能”,以及即将到来的2018年的“驱动数字中国”,似乎成了中国云计算行业发展历程的脚本,记录着创新者们的进化。

阿里中间件性能挑战赛的赛题已经成为了行业内的技术风向标。今年的阿里中间件性能挑战赛源于开源、回馈于开源,将ApacheDubbo 和 Apache RocketMQ 分别作为大赛初赛和复赛赛题的内容,正是出于开源正在对整个世界产生越来越大影响的大背景下提出的。

从2017年开始,阿里巴巴开源的脚步开始加速。

2017年9月,RocketMQ 在Apache毕业,成为了Apache顶级项目(TLP)。

10月份,OpenMessaging发布,分布式消息中间件、流处理领域的应用开发标准,已正式入驻Linux基金会, 这也是国内首个在全球范围内发起的分布式消息领域国际标准。

2018年2月,将Dubbo捐献给Apache,进入apache孵化期,2018年7月,Dubbo官方域名更新到Dubbo.apache.org,页面焕然一新,并启用新logo,品牌全面升级。

2018年7月,启动新的开源项目Nacos,支持Dubbo生态发展。近期,Dubbo 在GitHub的star数突破2万,成为目前国内唯一一家star数超过2万的Java开源项目。

初赛赛题:《Service MeshAgent for Apache Dubbo(incubating)》

复赛赛题:《Apache RocketMQ消息缓存设计》


**变化的是逐年提升的赛事关注度

不变的是选手的热情和赛事的专业程度**

FS3_9298

依旧是强大的参赛团队:

来自7个国家和地区的选手们不仅来自有432所海内外高校在读本科生、研究生和博士生,包括北京大学、北京邮电大学、都柏林大学、伦敦大学学院、墨尔本大学、南京大学、南京理工大学、清华大学、西安电子科技大学、山东大学、香港科技大学、浙江大学、中国科学技术大学,还有来自480+家企事业单位的在职员工,包括百度、滴滴出行、美团点评、小米、腾讯、微软、亚马逊、中国工商银行、中国平安、中国科学院等。众多顶尖技术人才在比赛中一决高下,表现出技术人才的风貌和技术无国界的精神。

依旧是强大的嘉宾和评审导师团队:

阿里巴巴研究员小邪、阿里巴巴中间件、系统软件、研发效能事业部负责人毕玄、阿里巴巴高级研究员多隆、阿里巴巴高级研究员索尼、中间件自身技术专家姬风、存储技术资深专家宗岱、中间件资深产品专家丹臣、中间件高级技术专家冯嘉、中间件高级技术专家北维、中间件高级技术专家千臂,导师们给予了选手们很多实践上的指导,也从选手们的分享和创新中获得了不少的启发,大家不分彼此,从分享中共同成长。

作为此次承办方之一的阿里中间件(Aliware)团队,是阿里巴巴集团技术生态系统的基石,一直以来为集团内部各大业务群提供可靠、高效、易扩展的技术基础服务。阿里中间件团队自主研发的云计算产品,包括企业级分布式应用EDAS、消息队列MQ、性能测试PTS、业务实时监控ARMS等10余款核心产品,帮组企业快速搭建互联网架构平台,具备业务中台能力,促进企业数字化转型的快速落地,目前已广泛应用于政府、央企、零售、物流、工业、金融、IoT等众多行业。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
消息中间件 NoSQL 关系型数据库
6年高级开发就因这道题少了5K,Kafka如何避免消息重复消费?
一个6年工作经验的小伙伴,被问到这样一个问题,说Kafka是如何避免消息重复消费的?面试完之后,这位小伙伴来找到我,希望我能给一个思路。今天,我给大家分享一下我的思路。
161 1
|
6月前
|
缓存 NoSQL 前端开发
《优化接口设计的思路》系列:第六篇—接口防抖(防重复提交)的一些方式
本文探讨了后端开发中的接口防抖策略,作者是一名有六年经验的Java开发者,分享了如何防止重复提交导致的问题。防抖主要用于避免用户误操作或网络波动引起的多次请求,作者提出理想防抖机制应具备正确性、响应速度、易集成和用户反馈。文章详细分析了哪些接口需要防抖(如用户输入、按钮点击、滚动加载)以及如何识别重复接口,提出了使用共享缓存和分布式锁两种实现方式,并展示了基于Redis的Java代码示例。作者通过注解实现请求锁,并提供了测试截图证明防抖效果。然而,实现完全幂等性还需要业务层面的补充措施。
431 7
|
7月前
|
设计模式 Dubbo Java
遇到无序多变请求怎么办,可以试试责任链模式
责任链模式(Chain Of Responsibility Design Pattern),也叫做职责链,是将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止
64 1
遇到无序多变请求怎么办,可以试试责任链模式
|
7月前
|
移动开发 前端开发 JavaScript
面试官为啥总是喜欢问前端路由实现方式?
面试官为啥总是喜欢问前端路由实现方式?
|
存储 JSON API
带你掌握开发者必备的WebStorageAPI,客户端案例细讲
带你掌握开发者必备的WebStorageAPI,客户端案例细讲
|
JSON 前端开发 Java
《优化接口设计的思路》系列:第一篇—接口参数的一些弯弯绕绕
大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。 作为一名从业已达六年的老码农,我的工作主要是开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多租户体系系统,对接过许多开放平台,也搞过消息中心这类较为复杂的应用,但幸运的是,我至今还没有遇到过线上系统由于代码崩溃导致资损的情况。这其中的原因有三点:一是业务系统本身并不复杂;二是我一直遵循某大厂代码规约,在开发过程中尽可能按规约编写代码;三是经过多年的开发经验积累,我成为了一名熟练工,掌握了一些实用的技巧。
76 0
|
消息中间件 Kafka
设计 MQ 的思路
设计 MQ 的思路
89 0
|
存储 索引 Cloud Native
【刷题日记】1656. 设计有序流
【刷题日记】1656. 设计有序流
|
消息中间件 算法 Dubbo
并发编程-25 高并发处理手段之消息队列思路 + 应用拆分思路 + 应用限流思路
并发编程-25 高并发处理手段之消息队列思路 + 应用拆分思路 + 应用限流思路
114 0
|
Java 微服务
手撸一个动态Feign,实现一个“万能”接口调用
手撸一个动态Feign,实现一个“万能”接口调用