为分布式微服务框架提供合适的PAAS平台,使用成熟的M(Mesos)Z(Zookeeper)M(Marathon)可以作为选择之一。在本文中将会对Marathon进行简单的介绍。

URL https://github.com/mesosphere/marathon

什么是Marathon

Marathon是一个可以用于生产环境的容器编排框架,如果说Mesos把自身定成分布式的操作系统的话,那么Marathon就是运行在操作系统上为其管理各种应用进程的init大管家。
同时从Marathon 0.7.0 和Mesos 0.20.0之后,更是更加容易更加原生态地部署/运行/扩展Docker容器应用。目前也已经在很多公司中得到了广泛的应用比如:eBay/PayPal/Yelp等。

特性

特性 详细说明
High Availability Marathon runs as an active/passive cluster with leader election for 100% uptime.
Multiple container runtimes 支持使用cgroups的Mesos Containers和Docker
Stateful apps Marathon can bind persistent storage volumes to your application. You can run databases like MySQL and Postgres, and have storage accounted for by Mesos.
UI 华美而且强大
Constraints e.g. Only one instance of an application per rack, node, etc.
服务发现和负载均衡 多种实现
Health Checks 使用HTTP或者TCP方式评估应用程序运行状况
Event Subscription Supply an HTTP endpoint to receive notifications - for example to integrate with an external load balancer.
Metrics Query them at /metrics in JSON format or push them to systems like graphite, statsd and Datadog.
REST API 完整的REST API,可以更加便利地集成

运行环境依赖

组件 详细说明
libmesos JNI绑定以便于Mesos Master进行通信
Apache Zookeeper Leader选举时需要用到Zookeeper

CentOS7上的安装

yum install -y marathon

设定zookeeper的quorum

设定文件:/etc/marathon/conf/zk
设定zookeeper的quorum 比如:zk://192.168.32.32:2181,192.168.32.33:2181,192.168.32.34:2181/marathon
也可以在启动的时候通过--zk指定

高可用性模式

Marathon缺省启用高可用性模式,如果需要关闭的话使用–disable_ha在命令行中进行设定即可。

启动/停止/确认状态

CentOS下使用systemctl即可对marathon的进行启动/停止/状态确认。

启动:systemctl start  marathon
启动:systemctl stop   marathon
启动:systemctl status marathon

Application

我们说Marathon类似于init,那么运行在其上的就被称为Application,典型情况下每个Application代表着一个在持续运行着的服务(也有人称之为长服务,因为很多E文的资料中为 long-running service),
而这些服务可以在多个机器启动多个实例,通过调整实例的个数来进行系统的横向扩展。

Hello Marathon

让我们来举一个具体的例子来说明,在Marathon上描述这样一个Application:
每5秒钟说一句Hello Marathon,永不停息。从Marathon看来描述这个Application的JSON可能就长成如下这个样子。

{"id": "basic-0", "cmd": "while [ true ] ; do echo 'Hello Marathon' ; sleep 5 ; done","cpus": 0.1,"mem": 10.0,"instances": 1
}

这是一个id名称为basic-0的Application,启动的实例是1,分配的CPU和内存分别是0.1和10MB,执行的内容则是每sleep 5秒钟就echo一下Hello Marathon的这样一个死循环的脚本。
而这个执行的方式这是通过Mesos调用/bin/sh -c ${cmd}来实现的。而在Marathon上管理这样的Appliction,则可以通过它宣称非常Beautiful 且 powerful的UI来可视地展现。

Marathon与DC/OS

更为简单的使用Marathon的方法官方称是使用DC/OS, 因为在DC/OS中预安装了Marathon,所以可以直接使用。对DC/OS感兴趣的话,可以参看下面的文章进行部署。基本上DC/OS也是在MZM的基础上进一步的封装,
但是它更侧重于“像管理一台机器那样管理整个Data Center”,ALL-In-One的全部安装了,本系列文章侧重于我们自己也有动手搭建简单的类似平台的能力,所以略显啰嗦。

项目 URL地址
DC/OS专题之安装部署篇 http://blog.csdn.net/liumiaocn/article/details/52049434

Mesos实践:基于MZM的PAAS的构建(3):Marathon简介相关推荐

  1. Mesos实践:基于MZM的PAAS的构建(2):Zookeeper简介

    为分布式微服务框架提供合适的PAAS平台,使用成熟的M(Mesos)Z(Zookeeper)M(Marathon)可以作为选择之一.在本文中将会对Zookeeper进行简单的介绍. URL https ...

  2. Mesos实践:基于MZM的PAAS的构建(1):Mesos简介

    前几天介绍了如何使用Spring Cloud搭建分布式的微服务框架,在接下来的这系列的文章中将会介绍如何构建简单的为微服务框架提供服务的PAAS平台.使用成熟的M(Mesos)Z(Zookeeper) ...

  3. Mesos实践:基于MZM的PAAS的构建(4):环境搭建

    为分布式微服务框架提供合适的PAAS平台,使用成熟的M(Mesos)Z(Zookeeper)M(Marathon)可以作为选择之一.本文将介绍一下如何在CentOS7下进行环境的搭建,同时将搭建的脚本 ...

  4. Flink CDC入门实践--基于 Flink CDC 构建 MySQL 和 Postgres 的 Streaming ETL

    文章目录 前言 1.环境准备 2.准备数据 2.1 MySQL 2.2 postgres 3.启动flink和flink sql client 3.1启动flink 3.2启动flink SQL cl ...

  5. 企业为什么要使用基于Docker的PaaS/CaaS平台

    作者:精灵云 前言 早在十多年前国内外的一些大厂就开始投入研发和使用容器技术,比如Google,对他们来说,使用容器能够充分利用计算资源节省硬件成本.而这几年--众所周知--真正把容器技术发扬光大的是 ...

  6. 如何选择基于 Kubernetes 的 PaaS?

    作者 | Bram Dingelstad 译者 | 弯月,责编 | 郭芮 头图 | CSDN 下载自视觉中国 出品 | CSDN(ID:CSDNnews) 我们都遇到过这种情况:有人发现了一个bug, ...

  7. 基于koajs的web项目构建-心得篇

    2019独角兽企业重金招聘Python工程师标准>>> 根据 基于koajs的web项目构建-入门篇 所描述的,建立了项目的基本目录结构,接下来的工作便是编码,编译,测试,发布.做为 ...

  8. 知识图谱入门2-1:实践——基于医疗知识图谱的问答系统

    注:欢迎关注datawhale:https://datawhale.club/ 系列: 知识图谱入门一:知识图谱介绍 知识图谱入门2-1:实践--基于医疗知识图谱的问答系统 知识图谱入门2-2:用户输 ...

  9. 机器学习实践—基于Scikit-Learn、Keras和TensorFlow2第二版—第9章 无监督学习技术(Chapter9_Unsupervised_Learning_Techniques)

    机器学习实践-基于Scikit-Learn.Keras和TensorFlow2第二版-第9章 无监督学习技术(Chapter9_Unsupervised_Learning_Techniques) 虽然 ...

最新文章

  1. 网络流最大流EK算法板子
  2. 用loader.loadbytes直接load bitmapdata.getpixels产生的bytearray
  3. tensorflow就该这么学--5( 神经网络基础)
  4. matplotlib绘图_Python之matplotlib绘图示例
  5. mysql st centroid_postgresql – ST_Distance的返回值单位
  6. RPLIDAR的坐标系问题
  7. 计算机网络搭建一个小型局域网,如何建立一个小型的局域网,来实现电脑与电脑之间的通信连接问题...
  8. 计算功耗设备待机时间!
  9. 傅里叶变换后面的到底有什么小秘密?
  10. mysql插入路径_Conventional-pathinsert(传统路径插入)
  11. n918st能刷Android5吗?,中兴 N918st(V5S 双4G版)获取Root权限服务含精简系统方案
  12. MATLAB 数学应用 微分方程 时滞微分方程 dde23
  13. 企业微信内自创建app 获取用户信息问题
  14. 联想电脑中的数据丢失怎么办?分享实用有效的技巧
  15. android打包发布流程,从源文件到APK-Android打包流程
  16. Linux IP 地址修改
  17. 计算机专业评级高校b,国内大学计算机专业的排名是怎样的?
  18. exe4j打成的exe文件运行时每次弹窗this executable was created with an evaluation version of exe4j
  19. 菜鸟的redis学习总结
  20. 概率论4.5中心矩与原点矩

热门文章

  1. 为基恩士 TM-3000 激光测量仪定制的测量管理系统
  2. ubuntu上播放yuv数据
  3. mysql行锁索引问题_Mysql锁机制--索引失效导致行锁变表锁
  4. Adobe Acrobat pro 9.0 序列号
  5. Python超级素数
  6. 如何为 FB Messenger 设置聊天机器人?
  7. cs1.6让别人成为op_可以勇敢地成为新的CS吗
  8. 数据额结构(C语言)调试过程中的一些问题
  9. 关于进程的终止和暂停
  10. 不是机器人韩剧所有歌曲_不是机器人OST插曲mp3音源哪里有 不是机器人背景音乐详细介绍...