升级到MajoraV3
大约 4 分钟
升级到MajoraV3
自2025年因体对Majora第二代系统进行了重构,开发了新的majora3系统。和Majora2相比有如下改动和优势
关注点重心转移
majora系统早起从echo系统开发,重心关注在手机代理IP池搭建系统,同时考虑用户终端节点数量非常多,但是每个节点可能只有短时间在线的场景。
经过多年实践,发现实际上最多的用户还是将majora作为一个代理IP池搭建系统使用,其底层IP资源更多的是VPS拨号服务器。
- 确定性终端节点部署,更加关注VPS终端节点的搭建和配置
- 在AndroidApp中,不再支持通过
shizhuku提权实现飞行模式切换。若用户需要支持手机终端重播,则必须要求root权限 - 删除终端vendor(供应商)的概念,实践发现这也是一个伪需求。若用户依然希望实现终端供应结算,可以使用终端账单进行复合计算来实现
- 强化在Linux环境下部署容易度,具备更加方便的部署方式和更加稳定的终端稳定性能力
协议升级
majora3重构了majora的私有网络协议,用于处于v2阶段的各种不完美遗憾
- 严格设计网络字段冗余,避免协议存在字段空间浪费。
- 从协议层规定对负载数据进行加密,解决majora2在某些公司内部使用时被公司防火墙错误拦截风险
- 在协议层将网络转发负载句柄表达为共享内存池,避免使用语言层面的栈空间分配引发可能的GC消耗。如此进一步提高系统的内存使用性能上线
- 设计了从用户流量到终端数据转发的全部链路追踪机制,并将trace机制嵌入到协议中。如此更好的实现majora本身的代码追踪和调试能力
- 协议语义化:majora2是一个较为通用的公共协议,大量机制内部语义依靠扩展字段传输。在v3则将内部语义提升到协议本身中,此行为使得协议更加可读和可靠
- 细化控制指令远程调用机制:重播、执行shell等终端控制机制在v2阶段也是后期用户需要增加的,他和majora协议本身不契合导致一些使用方便性和稳定性问题。
- 增加了
pty远程终端能力,Linux终端可以直接在majora后台进行web terminal控制。 - 终端(java侧)支持了二级代理转发能力。可以轻松将内网环境的IP池资源对接到majora3,且自带内网穿透。
可组合IP池
在majora2,代理IP池区分全局IP池和用户子池。用户不容易对终端节点进行组合。而用户子池则是一个为了满足客户需求实现的一个不完美方案。 在majora3,我将终端节点和代理IP池进行了分层,用户可以轻松的创建自己的IP池,然后将特定的终端节点加入到IP池。如此用户可以随意组合终端节点,任意构建IP池。
性能与安全性
majora3重新设计了内存管理模型和统计指标模型,这主要是因为majora2时代实际运行存在能力上限
- 用户规模:majora2大约估计系统账户支持几百个用户
- 节点数量:majora2设计的实时节点数量大约在1万以内
majora3考虑用户规模可达数万,实时在线终端节点规模可达数十万,且继续扩大规模后系统表现不会显著变差。同时我们更好的适配了多核和大规模内存服务器环境, 多核和大内存服务器预期可以支持百万规模终端节点(实际上国内云服务器很难达到此配置,国内服务器带宽上限一般只有200M)
