2 Star 2 Fork 141

COMS / topics-2020

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

27 用Rust实现分布式管理系统状态管理

项目名称

赛题编号:27

赛题名称:用Rust实现分布式系统状态管理

团队信息

(一)团队名称: 团队名称:鲲鹏

团队编号:1237148526

(二)团队成员信息:

学生信息:

深圳职业技术学院 云计算技术与应用 云计算技术与应用 2020 陈钦宇 1824461877@qq.com 13318499181

深圳职业技术学院 云计算技术与应用 云计算技术与应用 2020 罗昕 rex@ccoe.vip 18603068036

深圳职业技术学院 云计算技术与应用 云计算技术与应用 2020 彭添淞 2821994706@qq.com 15602874821

深圳职业技术学院 云计算技术与应用 云计算技术与应用 2020 陈泽楷 1813287987@qq.com 13075686692

深圳职业技术学院 云计算技术与应用 云计算技术与应用 2020 管国斌 1505059527@qq.com 17737177447

项目介绍

RUST AND GO 分布式管理系统状态管理,具备高性能高可用。使用lru淘汰算法算法进行节点存储保证节点高可用!

**该项目使用实现 GO版本和 Rust版本。由于Rust版本的可用的库比较缺乏。先提交GO版本进行基本使用,Rust版本逐渐完善!!!! 所需要自己研发的 Rust 库比较多!性能测试保证库的安全性,与可用性! **

注:当前版本为测试环境,grpc 没有进行 ca 认证!!!!

开发者

开发者:COMS

QQ: 1824461877

描述:该系统都有我本人一个完成!!成员都跑路/(ㄒoㄒ)/~~

使用技术

  1. lru 淘汰算法
  2. go 微服务项目框架 go_universe 【速度快,高可用】
  3. grpc 协议节点通信
  4. 负载均衡策略( 一致性负载均衡策略,加权负载均衡策略,轮询负载均衡,随机负载均衡
  5. 命令行查看节点状态
  6. 节点异常恢复
  7. zookeeper 节点存储
  8. 无锁支持并发节点存储

开发思路

各模块作用

  1. grpc-service-controller :负责命令行、查看节点状态相关功能
  2. grpc-service-access-module :负责负载均衡【多个 grpc-server-pod 负载】、zookeeper存储、 节点存储、实时探测、节点异常恢复
  3. grpc-server-pod :负责管理节点【多个grpc-client-node】 、探测节点状态
  4. grpc-client-node :客户端节点

各模块分析

  1. grpc-server-pod 管理 grpc-client-node.
  2. grpc-service-access-module 负责管理 grpc-server-pod.
  3. 当某个 grpc-server-pod 死亡的时候,把所属下的 grpc-client-node 迁移到其他的节点里,保持节点的一致性!
  4. grpc-service-controller 负责用户层面的模块,查看节点基本信息。

代码结构图:

输入图片说明

测试demo

运行代码都放在 demo ,执行顺序 grpc-service-controller -> grpc-service-access-module -> grpc-server-pod -> grpc-client-node 里面内置有 windows 测试版本,由于 linux 云服务器过期暂时无 linux 执行文件,所需要自行的使用 go build 进行生成执行文件

// 生成linux执行文件
mkdir xxx
cd xxx
// 必须生成conf,来存放生成的配置文件
mkdir conf
go build -o ./xxx xxxx

以 windows 为例目录结构大概是这样!! 输入图片说明

logs 是生成日志文件给予 go_universe 微服务框架:https://gitee.com/chenqinyu/go_universe

  1. grpc-service-controller
// grpc-service-controller.exe -h
grpc-service-controller.sh -h

Usage of grpc-service-controller.sh:
  -shost string
        local address
  -show
        shows expired  : display the information of expired node
        shows executor : display the information of executor node
  -sport string
        local port number
  1. grpc-service-access-module
// grpc-service-access-module.exe -h
grpc-service-access-module.sh -h

Usage of grpc-service-access-module.sh:
  -chost string
        destination address
  -cport string
        destination port number
  -shost string
        local address
  -sport string
        local port number
  1. grpc-service-pod
// grpc-service-pod.exe -h
grpc-service-pod.sh -h

Usage of grpc-service-pod.sh:
   -chost string
        destination address
  -cport string
        destination port number
  -shost string
        local address
  -sport string
        local port number
  1. grpc-client-node
// grpc-client-node.exe -h
grpc-client-node.sh -h

Usage of grpc-client-node.sh:
  -chost string
        destination address
  -cport string
        destination port number

测试demo

开启 grpc-service-controller 默认端口为:9999 , 根据conf/conf.json5进行端口设置 ,show 显示命令行模式

// grpc-service-controller.exe -shost 127.0.0.1 -sport 9999 -show
grpc-service-controller.sh -shost 127.0.0.1 -sport 9999 -show

开启 grpc-service-access-module 默认端口为:9998 , 根据conf/conf.json5进行端口设置

// grpc-service-access-module.exe -chost 127.0.0.1 -cport 9999
grpc-service-access-module.sh -chost 127.0.0.1 -cport 9999

开启 grpc-server-pod 默认端口为:9997 , 根据conf/conf.json5进行端口设置

// grpc-server-pod.exe -chost 127.0.0.1 -cport 9998
grpc-server-pod.sh -chost 127.0.0.1 -cport 9998

开启 grpc-client-node

// grpc-client-node.exe -chost 127.0.0.1 -cport 9998
grpc-client-node.sh -chost 127.0.0.1 -cport 9998

测试demo结果

  1. 观察 grpc-service-controller 输入图片说明

  2. 当 grpc-client-node 死亡,不是异常哦!异常可会进行恢复 可用节点已经消失 输入图片说明

  3. 观察 expired 表 输入图片说明

更新与迭代

  1. 日志系统一些 bug 问题
  2. 逐渐支持分批探测节点存活
  3. 扩展命令行基本命令
  4. 支持 web 进行操作!
  5. Rust 对版本库进行更新,Rust迁移状态为 68%

空文件

简介

2020 openEuler高校开发者大赛组织管理仓库 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/chenqinyu/topics-2020.git
git@gitee.com:chenqinyu/topics-2020.git
chenqinyu
topics-2020
topics-2020
master

搜索帮助