当前位置: > 系统教程 > 搜狗WF每秒几万次数据库交互???

搜狗WF每秒几万次数据库交互???

发布时间:2021-11-25 08:57:10 文章来源:Linux系统下载站 浏览量:

[导读] : WF,是搜狗开源的C++服务器引擎框架。搜狗几乎所有的C++后端服务,都基于这个框架,每天处理超过百亿的请求。什么是WF高性能纯异步MySQL客户端?为什么搜狗WF异步MySQL客户端,能做到每秒几万次数据库交互?体验完搜狗WF异步MySQL客户端,有什么感受?

搜狗WF每秒几万次数据库交互???

很多朋友问,如何学习RPC内核知识?

我的回答是,直接看源码。

今年看源码,之前推荐了一个框架“”。随着源码的阅读越来越深入,我发现了 WF 框架的一个非常独特的方面:高性能的纯异步 MySQL 客户端。这很有趣。今天我将介绍我自己的学习经历。

首先,什么是WF?

WF,是搜狗开源的C++服务器引擎框架。WF的设计目标是:轻量化、高性能。几乎所有搜狗的C++后端服务都基于这个框架,每天处理超过百亿的请求。其性能超高,单机每秒QPS 50W,尤其是在高并发压力测试的情况下,优于nginx和brpc。

什么是WF高性能纯异步MySQL客户端?

WF高性能纯异步MySQL客户端不仅继承了WF的极简设计目标,不依赖任何库,而且继承了高性能设计目标。在合理的配置下,它每秒可以处理数以万计的 MySQL 请求。

另外,它可以支持事务,支持存储过程,支持多语句多结果集,在内核中防止SQL注入mysql客户端,互联网业务的大部分需求都可以轻松应对。

画外音:支持事务的异步 MySQL 客户端,很酷。

同时,作为WF原生协议的一部分,与任务流和服务管理特性完美融合,与http、redis、计算任务统一使用,通过上游可以轻松实现读写分离.

为什么搜狗WF异步MySQL客户端可以实现每秒数万次的数据库交互?

每秒几万次MySQL交互,搜狗纯异步MySQL客户端开源了!

如上图所示,传统的MySQL客户端往往是同步阻塞的。在向MySQL发送请求并返回响应的过程中,整个线程处于阻塞等待状态。

画外音,图标:

(1)粉色:本地CPU计算;

(2)蓝色:与MySQL通信,请求和响应;

(3)小白:在本地等待;

这时,如果要提高并发处理能力,往往要设置大量的工作线程,而工作线程的切换和关键资源的锁争用对性能的影响较大。

每秒几万次MySQL交互,搜狗纯异步MySQL客户端开源了!

作为一个异步MySQL客户端,该线程在向MySQL发送请求后,可以执行其他本地异步调用,或者发送下一个MySQL请求,没有任何阻塞,并且线程数少,具有很高的并发处理能力。

画外音:所有网络任务共享一个处理线程池。

体验过搜狗WF异步MySQL客户端后,感觉如何?

首先,客户端非常好用。

每秒几万次MySQL交互,搜狗纯异步MySQL客户端开源了!

如上图所示mysql客户端,简单的几行代码,就可以提交一个异步的MySQL任务。

画外音:

url 参数,mysql://uname:pwd@host:port/dbname

set_query,可以设置要执行的SQL语句;

callback,异步返回结果的回调;

其次,可以支持的命令非常丰富。

可以轻松满足增删改查、建表删表、建表删表、预处理、使用存储过程、使用事务等各种需求。

画外音:目前不支持数据库切换,但可以通过db.table进行跨库操作。

此外,结果集的处理非常友好。

在异步回调中,MySQLResponse 可以通过 task->get_resp() 获取:

(1)一个 MySQLResponse 包含几个 ResultSets;

(2)一个 ResultSet 包含几行;

(3)一行包含多个字段;

它非常人性化,可以轻松处理结果集,避免各种细节。

同时,连接的包装非常灵活。

如果不需要独占连接并且传入url来创建任务,调用者甚至不需要关注“连接”的存在;对于需要独占连接的事务需求,可以先创建连接,然后在连接上创建任务。

mysql客户端_游戏端客户是什么_pp租车客户车主端下载

最后要强调一下,github上WF的文档和demo都非常齐全,对新手极其友好。并且如果在代码中遇到不明白的地方,可以直接联系开发团队,作者会直接和大家沟通,避免二手消息。

每秒几万次MySQL交互,搜狗纯异步MySQL客户端开源了!

画外音:找一段demo代码单步执行,协议设计与实现,底层网络通信,IO线程,工作线程,任务队列,线程同步互斥机制,超时处理机制,异常处理机制,等,可以快速掌握一套RPC Core的原理和细节,基本上国内大部分公司的offer专家都在这里了。

WF是我今年看到的最清爽的开源代码。非常适合了解通信内核、RPC内核、调度框架内核。强烈推荐给大家。

WF的高性能异步MySQL-client也强烈推荐给大家。MySQL 数据库的性能瓶颈可能会得到解决。

地址:

画外音:WF还有很多优秀的设计,等待大家去探索。

相关文章:

“”