直播带货服务

服务器架构本质,服务器性能测试是一项比较繁琐的事情

服务器架构本质,服务器性能测试是一项比较繁琐的事情

服务器架构本质,服务器性能测试是一项比较繁琐的事情

服务器性能测试是一项比较繁琐的事情,作为没有做过性能测试的同学可能需要理清楚以下几个事情。

1.1. 协议分析

首先是协议分析,性能测试本质上是我们用代码来模拟真实的用户请求,所以我们必须要知道发送出去的请求内容才能模拟。在典型的CS服务器中很多使用了protobuf,thrift,tdr(腾讯自研)来序列化以及反序列号请求内容。

序列化之后一方面可以对数据进行压缩处理,另一方面也避免请求内容明文传输造成被抓包·泄漏数据的危险。之前有过服务器传输数据的时候使用的是明文直接发送,而且这个数据是一些敏感的sql语句,这样首先暴露了数据库的表结构,同时不法分子可以通过模拟发包造成“脱裤”甚至是数据被清空。

1.1.1. Protobuf

谷歌出品,必属精品。Protobuf使用起来很方便,学习成本非常低,而且序列化和反序列号的接口很容易使用。同时它相对于xml以及json,极大的的减小了数据占用的空间,减少了传输成本。目前支持包括C++,java以及python等多个语言。Protobuf目前用的比较多,打解包也很方便,比较推荐使用。

1.1.2. Thrift

Thrift是一个跨语言的轻量级rpc消息和数据交换框架。Thrift支持几乎绝大部分主流的语言,包括C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml,虽然大部分我都没有用过。相对于protobuf,thrift提供了全套RPC解决方案,包括序列化机制、传输层、并发处理框架等,也因为如此thrift的学习成本比较高。

1.1.3. 腾讯自研协议tdr

Tdr是腾讯自研跨平台多语言数据表示组件,主要用于基于数据的序列化反序列化(支持二进制方式和XML文本方式)以及ORM数据存储。广泛用于互娱研游戏和部分代理游戏。在性能上基本和protobuf差不多,主要应用在C++程序中。

在做服务器性能测试之前,我们需要了解它的协议是怎么定义的。

服务器架构本质,服务器性能测试是一项比较繁琐的事情

1.2. 机器人管理

本质上机器人管理就是一个调度控制器,在获取需要发送的请求协议之后,需要有一个框架来管理所有的机器人,控制机器人的启动,发送请求以及停止的动作。框架的选择需要根据服务器的实际情况来,不同的业务场景,使用不同的框架产生的压力上限也会不一样。


© Copyright 六六互联.Some Rights Reserved.www.ic.vip