{"id":15351938,"url":"https://github.com/zonghaishang/rpc-performance-test","last_synced_at":"2026-03-05T05:30:20.803Z","repository":{"id":43048417,"uuid":"254520080","full_name":"zonghaishang/rpc-performance-test","owner":"zonghaishang","description":null,"archived":false,"fork":false,"pushed_at":"2022-06-10T20:02:35.000Z","size":22,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-31T10:54:58.414Z","etag":null,"topics":["dubbo","rpc-benchmark","sofa-rpc"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zonghaishang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-10T01:54:29.000Z","updated_at":"2021-03-03T09:51:42.000Z","dependencies_parsed_at":"2022-09-19T10:30:23.576Z","dependency_job_id":null,"html_url":"https://github.com/zonghaishang/rpc-performance-test","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zonghaishang%2Frpc-performance-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zonghaishang%2Frpc-performance-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zonghaishang%2Frpc-performance-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zonghaishang%2Frpc-performance-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zonghaishang","download_url":"https://codeload.github.com/zonghaishang/rpc-performance-test/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239889025,"owners_count":19713702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dubbo","rpc-benchmark","sofa-rpc"],"created_at":"2024-10-01T12:08:12.578Z","updated_at":"2026-03-05T05:30:20.704Z","avatar_url":"https://github.com/zonghaishang.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"一、在pom.xml引入测试api facade\n\n二、获取压测工程\n\n1. 获取rpc-performance工程\n\n```shell\ngit clone https://github.com/zonghaishang/rpc-performance.git\n# 本地install依赖和打包\nmvn clean install package\n```\n\n2. 解压rpc-performance-xx.tar.gz\n\n```shell\ntar -xzvf rpc-performance-xx.tar.gz\n# 解压后生成rpc.benchmark目录\n```\n\n三、开发压测接口实现类(eg: BenchmarkRandom_1k)，并且继承AbstractExchangeRunnable并实现doInvoke方法\n\n参考实现：\n\n```java\npublic class BenchmarkRandom_1k extends AbstractExchangeRunnable {\n\n    public BenchmarkRandom_1k(InvokeOption option) {\n        super(option);\n    }\n\n    @Override\n    public Object doInvoke() {\n        /**\n         * 通过serviceFactory获取接口proxy,\n         * 如果返回值不为空并且没有异常抛出，认为调用成功.\n         */\n        BenchmarkService benchmarkService = (BenchmarkService) serviceFactory.getReference(BenchmarkService.class);\n        return benchmarkService.send_1k(randomString(1024));\n    }\n}\n```\n\n四、打包本地测试工程执行测试\n\n1. 打包工程\n\n```shell\nmvn clean package\n```\n\n2. 复制本地测试工程jar到`rpc.benchmark/ext`目录\n\n3. 执行压测\n\n```shell\ncd rpc.benchmark\n./benchmark.sh\nusage: benchmark.sh [options]\n -b,--target \u003carg\u003e         target benchmark runnable class\n -c,--threads \u003carg\u003e        The number of concurrent\n -d,--duration \u003carg\u003e       benchmark running duration(seconds)\n -h,--host \u003carg\u003e           server host or address\n -p,--port \u003carg\u003e           server port\n -t,--timeout \u003carg\u003e        rpc request timeout(milliseconds)\n -tc,--connections \u003carg\u003e   The number of tcp connection\n -w,--warm-up \u003carg\u003e        warm up duration(seconds)\n\n# 开始压测, 为了测试结果更准确，建议warm up 30秒.\n# 压测工具默认会不统计最后调用10秒\n./benchmark.sh -b com.demo.rpc.benchmark.BenchmarkRandom_1k -h 127.0.0.1 -p 20880 -d 300 -w 30\n```\n\n五、本项目依赖facade指引\n\n目前测试用facade api包含在开源仓库：\n\nhttps://github.com/sofastack-guides/sofastack-mesh-demo.git\n对应的分支：benchmark\n\n1. 本机进入sofastack-mesh-demo根目录，执行mvn clean install一下\n\n2. 在测试时，可以把dubbo-echo-server注册中心禁用掉，这样本地启动server即可。\n```\n\u003cdubbo:registry address=\"N/A\"/\u003e\n```\n\n\n六、完整开发实例，可以切到run_test分支","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzonghaishang%2Frpc-performance-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzonghaishang%2Frpc-performance-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzonghaishang%2Frpc-performance-test/lists"}