Mesos初步尝试

记得几年前,用.net做分布式批处理的时候环境搭建很麻烦,虽然参数的分片算法、配置都搞定了,但是.net虚拟机的环境建立是个头疼的事:

  1. 节点要自己手工建
  2. 环境变量没法从前往后传递
  3. 批处理程序改动后的分发麻烦
  4. 批处理程序的状态需要自己写代码通知前端系统
  5. 日志查看麻烦

现在讲讲基于Mesos怎么做
由于.net的历史原因,mesos没有为.net封装wrapper(java/python都有,连js都有,唯独没有.net的),正要放弃时,看到有HTTP接口,就用它了,下面介绍几个重要命令:

  1. SUBSCRIBE,这个是基于HTTP的事件监听订阅,mesos有什么消息过来的话都是通过这个接口过来的(Scheduler必须一直和mesos保持连接,针对这个命令,mesos会源源不断的发送消息到scheduler)
  2. OFFERS,这个是mesos发来的消息类型之一,代表说mesos现在有多少多少资源(cpu, memory, disk)等等,问我们自制的Scheduler要不要资源,要的话Scheduler需要回复ACCEPT,不要的话回复DECLINE来拒绝资源
  3. ACCEPT,这个命令需要带上需要的资源、命令、运行在哪个mesos-agent上,这里的命令最简单的就是shell命令,比如: echo 'hello',也可以是sleep 100, 当然也可以是dotnet命令
  4. DECLINE,没有仔细研究过,得看官方文档


基本的命令就是上面这几个了。

demo大家可以看看这个。https://github.com/daibinhua888/MesosFramework

展望:能做很复杂的资源伸缩,比如做微服务管理平台、消息队列的复杂队列资源申请、分布式批处理系统
遗憾:无法申请资源,有REQUEST方法,但是默认全部忽略,除非自己编写allocator

posted @ 2017-10-05 14:22  McKay  阅读(741)  评论(0编辑  收藏  举报