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 @   McKay  阅读(743)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示