{"id":15095888,"url":"https://github.com/george551556/distributed_control","last_synced_at":"2026-02-08T14:04:07.525Z","repository":{"id":253641833,"uuid":"843465285","full_name":"George551556/distributed_control","owner":"George551556","description":"The distributed computing task based on the gin framework and websocket. Aims to calculate whether there is a string whose MD5 value is equal to itself","archived":false,"fork":false,"pushed_at":"2025-01-04T02:12:41.000Z","size":88329,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-15T00:45:17.585Z","etag":null,"topics":["distributed","distributed-systems","gin","golang","http","md5","websocket"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/George551556.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-16T15:17:16.000Z","updated_at":"2025-01-04T02:12:45.000Z","dependencies_parsed_at":"2025-01-04T03:32:50.218Z","dependency_job_id":null,"html_url":"https://github.com/George551556/distributed_control","commit_stats":{"total_commits":32,"total_committers":2,"mean_commits":16.0,"dds":0.09375,"last_synced_commit":"4741d147b820937b33d434fe4a3784a90b47b993"},"previous_names":["george551556/distrubuted_control","george551556/distributed_control"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/George551556%2Fdistributed_control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/George551556%2Fdistributed_control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/George551556%2Fdistributed_control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/George551556%2Fdistributed_control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/George551556","download_url":"https://codeload.github.com/George551556/distributed_control/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248986274,"owners_count":21194024,"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":["distributed","distributed-systems","gin","golang","http","md5","websocket"],"created_at":"2024-09-25T15:43:12.315Z","updated_at":"2026-02-08T14:04:07.442Z","avatar_url":"https://github.com/George551556.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 分布式中央集权MD5计算\n\n### 简介\n\n分为master和worker节点，master负责接收worker的连接请求以及心跳信息，向worker发送开始/停止工作的命令，节点之间通过gin构建的后端程序以及发送http请求来通信。同时返回前端页面实现网页控制以及所有worker节点的信息查看。worker\n\n### 思路\n\n- worker在未连接状态下持续（每2s）向主节点发送连接请求，目标地址端口在*config.json*文件中保存并使用viper读取\n- worker连接成功后持续获取本机的CPU信息并向主机心跳信息用于保持连接状态不丢失\n- master持续检测工人的心跳，如果有某个心跳超过10s未更新则关闭与其的连接\n- 添加批量启动或停止的按钮，一次性控制所有节点。\n\n### 改为socket通信\n- 工人向主机发送消息的type=1，心跳信息\n- 工人向主机发送消息的type=2，计算结果及值\n- 主机向工人发送消息的type=3，开始或停止工作\n- 主机向工人发送消息的type=4，清零工作量值\n\n\n\n### 使用说明\n- 启动master节点，后加参数0即可，示例：\n   ```bash\n   ./run_win.exe 0\n   ./run_linux 0  \n   ```\n\n- 启动worker节点\n  1. 首先在根目录下创建`config.json`文件，格式如下：\n   \u003e host为要远程连接的主机的地址和端口，name给本机一个让人易明白的名字\n   ```json\n   {\n      \"host_address\":\"lzh.zzdx.gay\", \n      \"host_port\":55156,\n      \"name\":\"张三的XX机\"\n   }\n   ```\n   2. 直接执行命令，不加任何参数\n   ```bash\n   ./run_win.exe\n   ./run_linux\n\n   # 或者后台运行\n   nohup ./run-linux 2\u003e\u00261 \u0026\n   ```\n   ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorge551556%2Fdistributed_control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeorge551556%2Fdistributed_control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorge551556%2Fdistributed_control/lists"}