Mesos初步尝试
记得几年前,用.net做分布式批处理的时候环境搭建很麻烦,虽然参数的分片算法、配置都搞定了,但是.net虚拟机的环境建立是个头疼的事:
- 节点要自己手工建
- 环境变量没法从前往后传递
- 批处理程序改动后的分发麻烦
- 批处理程序的状态需要自己写代码通知前端系统
- 日志查看麻烦
现在讲讲基于Mesos怎么做
由于.net的历史原因,mesos没有为.net封装wrapper(java/python都有,连js都有,唯独没有.net的),正要放弃时,看到有HTTP接口,就用它了,下面介绍几个重要命令:
- SUBSCRIBE,这个是基于HTTP的事件监听订阅,mesos有什么消息过来的话都是通过这个接口过来的(Scheduler必须一直和mesos保持连接,针对这个命令,mesos会源源不断的发送消息到scheduler)
- OFFERS,这个是mesos发来的消息类型之一,代表说mesos现在有多少多少资源(cpu, memory, disk)等等,问我们自制的Scheduler要不要资源,要的话Scheduler需要回复ACCEPT,不要的话回复DECLINE来拒绝资源
- ACCEPT,这个命令需要带上需要的资源、命令、运行在哪个mesos-agent上,这里的命令最简单的就是shell命令,比如: echo 'hello',也可以是sleep 100, 当然也可以是dotnet命令
- DECLINE,没有仔细研究过,得看官方文档
基本的命令就是上面这几个了。
demo大家可以看看这个。https://github.com/daibinhua888/MesosFramework
展望:能做很复杂的资源伸缩,比如做微服务管理平台、消息队列的复杂队列资源申请、分布式批处理系统
遗憾:无法申请资源,有REQUEST方法,但是默认全部忽略,除非自己编写allocator
自省推动进步,视野决定未来。
心怀远大理想。
为了家庭幸福而努力。
商业合作请看此处:https://www.magicube.ai
心怀远大理想。
为了家庭幸福而努力。
商业合作请看此处:https://www.magicube.ai