{"id":15131999,"url":"https://github.com/tencent/msec","last_synced_at":"2025-09-28T23:32:32.467Z","repository":{"id":71777520,"uuid":"74927215","full_name":"Tencent/MSEC","owner":"Tencent","description":"Mass Service Engine in Cluster(MSEC) is opened source by QQ team from Tencent. It is a backend DEV \u0026OPS engine, including RPC,name finding,load balance,monitoring,release and capacity management.  ","archived":true,"fork":false,"pushed_at":"2019-10-24T03:48:10.000Z","size":40131,"stargazers_count":2745,"open_issues_count":31,"forks_count":746,"subscribers_count":340,"default_branch":"master","last_synced_at":"2024-04-14T21:30:05.807Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tencent.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.TXT","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-11-28T01:50:35.000Z","updated_at":"2024-04-12T08:11:12.000Z","dependencies_parsed_at":"2023-03-15T10:47:22.653Z","dependency_job_id":null,"html_url":"https://github.com/Tencent/MSEC","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/Tencent%2FMSEC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tencent%2FMSEC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tencent%2FMSEC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tencent%2FMSEC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tencent","download_url":"https://codeload.github.com/Tencent/MSEC/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234575214,"owners_count":18854924,"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":[],"created_at":"2024-09-26T04:01:48.784Z","updated_at":"2025-09-28T23:32:28.748Z","avatar_url":"https://github.com/Tencent.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"项目目前是存档状态，感谢您对腾讯开源项目的关注！您可以继续fork后更新迭代，感谢理解和支持；如果您有其他疑问，建议请发送邮件：tencentopen@tencent.com 与我们联系\n\n-----\n\n\n# 1、概述 #\n这里是毫秒服务引擎的代码，分好几个模块，开发语言主要是java和c/c++。每个模块需要单独编译。\n同时提供编译好的[docker镜像](download/readme.md)可以快速部署，强烈推荐。\n\n## 编译环境要求 ##\n* gcc version \u003e= 4.1.2\n* autoconf  version \u003e= 2.59\n* JDK  version \u003e = 1.6\n* Maven version \u003e = 3.2.5\n* Linux内核版本\u003e=2.6.18\n* CPU架构：x86\\_64\n\n## 关于用到的外部库 ##\n下载到源代码后，在能够连接外网的linux服务器上手工执行get\\_third\\_party.sh脚本，会下载各模块用到的外部库，保存在third\\_party目录下； srpc\\_java和logsys是maven组织的java项目，mvn通过pom.xml配置自动下载用到的外部库。\n\n# 2、web console #\n## 2.1 简介 ##\n\nWeb console的代码在msec\\_console子目录，是一个典型的Java Web Application。目录msec\\_console下的src子目录是java代码，web子目录是静态页面、css、图片等web资源文件。\n\n## 2.2 用到的外部库 ##\n* commons-compress-1.8.jar\n* commons-fileupload-1.2.2.jar\n* commons-io-2.4.jar\n* ini4j-0.5.4.jar\n* jackson-all-1.6.0.jar\n* javax.servlet-api-3.1.0.jar\n* jcommon-1.0.21.jar\n* jfreechart-1.0.18.jar\n* junit-4.12.jar\n* log4j-1.2.17.jar\n* mysql-connector-java-5.1.38-bin.jar\n* org.json.jar\n* protobuf-java-2.6.1.jar\n* scf4j-props-1.0.1.jar\n* slf4j-api-1.7.18.jar\n* zookeeper-3.4.8.jar\n\n几乎所有上面的jar都能在 \u003chttp://mvnrepository.com/\u003e 下载到。\n\n#3、remote shell#\n## 3.1 简介 ##\n子目录remote\\_shell是console服务器用来对业务运营机进行文件传输、远程命令执行的系统的代码。典型的应用场景是：发布的时候利用remote\\_shell系统传输发布文件、执行发布命令。\n\n子目录remote\\_shell下又有三个子目录：\n\n* server是部署在console服务器上发出命令的程序，用c语言开发；\n* agent是部署在业务运营机上的程序，它接收server的命令，用java开发的；\n* InteractiveTool是和server部署在一起的一个命令行工具，通过它可以手工发起命令，用java开发的。\n\n## 3.2 用到的外部库 ##\nserver用到：\n\n* bcprov-jdk16-1.46.jar\n* jackson-all-1.6.0.jar\n* junit-4.12.jar\n* org.json.jar\n\nagent用到：\n\n* frozen, 轻量的json解析C语言库\n\n# 4、monitor #\n## 4.1 简介 ##\n子目录monitor是一套集中式的监控服务，该监控服务既可作为msec的集中式监控服务供msec业务上报，也可单独部署并使用独立的standalone\\_console进行管理。典型的应用场景是：业务上报监控到监控agent，监控agent汇总定时上报给监控服务，开发运营人员通过msec的web_console页面或独立部署的standalone\\_console页面查看业务监控汇总视图。\n\n子目录monitor下又有三个子目录：\n\n* lib是供agent/server用的公共库，用c++语言开发；\n* server是监控服务，用c++语言开发；\n* agent是部署在业务运营机上的程序，它汇总业务模块的监控数据，定时上报给监控服务，用c++开发的；\n\nstandalone\\_console是一个典型的Java Web Application。子目录standalone\\_console下的src子目录是java代码，web子目录是静态页面、css、图片等web资源文件。\n\n## 4.2 用到的外部库 ##\nserver用到：\n\n* protobuf库（版本2.5.0）\n* mysqlclient库（版本\u003e=5.5.0）\n* zlib库（版本\u003e=1.2.0）\n\nstandalone\\_console用到：\n\n* commons-compress-1.8.jar\n* commons-fileupload-1.2.2.jar\n* commons-io-2.4.jar\n* jackson-all-1.6.0.jar\n* javax.servlet-api-3.1.0.jar\n* jcommon-1.0.21.jar\n* jfreechart-1.0.18.jar\n* junit-4.12.jar\n* log4j-1.2.17.jar\n* mysql-connector-java-5.1.38-bin.jar\n* org.json.jar\n* protobuf-java-2.6.1.jar\n* scf4j-props-1.0.1.jar\n* slf4j-api-1.7.18.jar\n* zookeeper-3.4.8.jar\n\n# 5、redis #\n## 5.1 简介 ##\n子目录redis\\_console是一套基于redis cluster的KV运维管理平台。Web侧的代码在redis\\_console子目录，是一个典型的Java Web Application。子目录redis\\_console下的src子目录是java代码，web子目录是静态页面、css、图片等web资源文件。子目录monitor\\_server提供了一套专用于redis服务的监控系统，和msec的monitor服务的代码实现有些微的差别，但代码路径格式是一致的。\n\n## 5.2 用到的外部库 ##\nmonitor\\_server/server用到：\n\n* protobuf库（版本2.5.0）\n* mysqlclient库（版本\u003e=5.5.0）\n* zlib库（版本\u003e=1.2.0）\n\nredis\\_console用到：\n\n* commons-compress-1.8.jar\n* commons-fileupload-1.2.2.jar\n* commons-io-2.4.jar\n* jackson-all-1.6.0.jar\n* javax.servlet-api-3.1.0.jar\n* jcommon-1.0.21.jar \n* jedis-2.8.1.jar\n* jfreechart-1.0.18.jar\n* junit-4.12.jar\n* log4j-1.2.17.jar\n* mysql-connector-java-5.1.38-bin.jar\n* org.json.jar\n* protobuf-java-2.6.1.jar\n* scf4j-props-1.0.1.jar\n* slf4j-api-1.7.18.jar\n* zookeeper-3.4.8.jar\n\n特别注明：\n**如果用于部署，redis\\_console子目录中的web\\resources\\redis.tgz里需要加上redis的二进制服务，包含redis-server和redis-cli。**\n\n# 6、nlb #\n## 6.1 简介 ##\nnlb是一套网络负载均衡寻址系统。源码在子目录nlb下，使用纯C语言开发。src目录为所有代码，代码主要包含agent和api两部分，配置通过zookeeper集群下发，由web console导入配置到zookeeper集群。\n\n源码目录介绍：\n\n* agent\tagent源码\n* api\t\tapi源码\n* comm\t通用代码\n* tools\t\t工具源码：包含get\\_route和show\\_servers工具\n\n## 6.2 用到的外部库 ##\n* zookeeper-3.4.8\n* jansson-2.9\n\n# 7、srpc #\n## 7.1 简介 ##\nsrpc是一个逻辑层rpc框架。子目录spp\\_rpc是srpc的源码，使用C++作为主开发语言，支持C++/Python/PHP语言，C++支持微线程。\n\n源码主要目录介绍：\n\n* sync\\_frame\t微线程源码\n* controller\t\tcontroller进程源码\n* proxy\t\tproxy进程源码\n* worker\t\tworker进程源码\n* rpc\t\t\trpc代码\n* module/rpc/template\t\tC++自动生成代码源码\n* module/rpc/php\\_template\tPHP自动生成代码源码\n* module/rpc/py\\_template\t\tPython自动生成代码源码\n\n## 7.2 用到的外部库 ##\n* protobuf-2.5.0\n* http-parser\n* jansson\n* json2pb\n* libbacktrace\n* libunwind\n* php\n* r3c\n\n\n# 8、srpc\\_java #\n## 8.1 简介 ##\nsrpc\\_java是一个逻辑层的java框架, 对应的子目录是msec\\_srpc\\_java。\n\n源码主要目录介绍：\n\n* srpc     \t框架代码\n* src          业务示例代码\n* bin          框架执行脚本\n* lib          构建之后，框架依赖的库\n* pom.xml     框架通过maven构建\n\n## 8.2 用到的外部库 ##\n* commons-beanutils-1.7.0.jar\n* commons-cli-1.2.jar\n* commons-collections-3.1.jar\n* commons-lang-2.5.jar\n* commons-logging-1.1.1.jar\n* commons-logging.jar\n* ini4j-0.5.1.jar\n* junit-3.8.1.jar\n* log4j-1.2.17.jar\n* netty-3.2.10.Final.jar\n* protobuf-java-2.5.0.jar\n* protobuf-java-format-1.2.jar\n\n# 9、Elasticsearch集群 #\n\n## 9.1 简介 ##\n\n子目录elsticsearch是一套基于Elasticsearch的日志集群管理平台。\n\nWeb侧的代码在es\\_console子目录，是一个典型的Java Web Application。目录下的src子目录是java代码，web子目录是静态页面、css、图片等web资源文件。\n\n业务侧需要部署flume agent，并通过日志系统提供的api将数据通过agent集中发往Elasticsearch集群，关键的代码在logsys子目录。该目录下的目录介绍如下：\n* api  日志系统提供的API\n* flume-ng-mysql-sink    apache flume的插件，使日志数据写入mysql, 通过maven命令行构建\n* flume-protobuf-source   apache flume的插件，读取protobuf协议格式的日志数据, 通过maven命令行构建\n\n## 9.2 用到的外部库 ##\n\nes\\_console用到的库：\n\n* Elasticsearch API v5.2 (通过pom.xml获取)\n* commons-compress-1.8.jar\n* commons-fileupload-1.2.2.jar\n* commons-io-2.4.jar\n* jackson-all-1.6.0.jar\n* javax.servlet-api-3.1.0.jar\n* jcommon-1.0.21.jar \n* jfreechart-1.0.18.jar\n* junit-4.12.jar\n* log4j-1.2.17.jar\n* mysql-connector-java-5.1.38-bin.jar\n* org.json.jar\n* protobuf-java-2.6.1.jar\n* scf4j-props-1.0.1.jar\n* slf4j-api-1.7.18.jar\n\nlogsys用到的库：\n\n* protobuf-2.5.0\n* commons-beanutils-1.7.0.jar\n* commons-cli-1.2.jar\n* commons-collections-3.1.jar\n* commons-lang-2.5.jar\n* commons-logging-1.1.1.jar\n* ezmorph-1.0.6.jar\n* jackson-core-asl-1.9.4.jar\n* jackson-mapper-asl-1.9.4.jar\n* json-lib-2.4-jdk15.jar\n* junit-3.8.1.jar\n* log4j-1.2.17.jar\n* mysql-connector-java-5.1.25.jar\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftencent%2Fmsec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftencent%2Fmsec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftencent%2Fmsec/lists"}