正文
这时,你可能想要看看是不是实际构建出来了,运行
$ ./mvnw verify
。如果一切正常,那么mvnw命令应该能够下载到Maven以及项目所有依赖的特定版本,并且最终运行应用程序的集成测试。要注意,这是个几乎空白的应用程序。
我们已经得到了一个可以工作的应用程序,现在添加Mesos-starter的依赖。编写的同时它已经发布到Maven Central了,因此可以在pom.xml添加Bintray存储库。
bintray-containersolutions
bintray
http://dl.bintray.com/containersolutions/maven
这样就能够访问spring-boot-starter-mesos模块了。
com.containersolutions.mesos
spring-boot-starter-mesos
0.2.2
这些在classpath上,应用程序现在就已经是成熟的Mesos集群了。显然调度器还需要一些配置。首先,在src/main/resources/application.properties里添加如下行配置名称:
spring.application.name=Tansu
名称很重要,因为调度器需要注册到框架里。
接下来是分配资源。这个用例里,0.1 cpus和64 MB内存就足够了。再次通过application.properties文件配置,
mesos.resources.cpus=0.1
mesos.resources.mem=64
并且应用程序需要三个实例
mesos.resources.count=3
还需要的最后资源是http接口的端口。
mesos.resources.ports.tansu-http-port.host=ANY
这会向运行时暴露一个名为TANSU_HTTP_PORT的环境变量,实际端口是从Mesos offer里抓取的。
资源配置完成,现在需要配置任务本身。Tansu已经有了Docker镜像,可以通过如下方法添加
mesos.docker.image=shortishly/tansu:0.28.0
因为Tansu节点是通过mdns互相发现的,因此它们需要处在同一个网络上。Mesos里可以通过一些方法达到这一目的。要么使用Docker里的overlay网络,或者可以将Docker容器里的网络适配器改变为宿主适配器。