由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - job schduleing - one and only one
相关主题
搞清楚什么叫做底层先kafka 压缩包里自带zookeeper对吧?
Node.js arrives for the JVM对分布式软件的Jepsen测试
掏钱买support的的确都是脑子进水的Kafka consumer启动怎样不读之前的massage
zookeeper 这种牛鼻软件都是apache自己的人写的?对L股价大跌的一点看法 (转载)
ES怎么玩?zookeeper还有公司在用吗
real time distributed framework一个Hadoop Cluster升级的问题
关于web client连接server的问题今天碰见一个高手
有人分享一下学习 使用卡夫卡的方法 心得么?大家公司里kafka是dev弄还是ops折腾
相关话题的讨论汇总
话题: schduleing话题: job话题: hazelcast话题: cluster话题: config
进入Programming版参与讨论
1 (共1页)
m***h
发帖数: 77
1
我有这么一个production上的java app,一台server,每天早晨定点run一个job(
Spring-Quartz),大概20分钟的模样。现在要把它搬到replicated VM/cluster里去
,所以
面临的问题是怎样实现cluster里schedule job的问题:保证还在同样的时间总有1个也
只有1个job运行。我知道利用database write lock应该可以,但是这个系统本身并不
带数据库,所以不想为了这个目的再单独install 和maintain个数据库,也没有
zookeeper之类。所以面临的问题是需要一个简单可靠不折腾的办法。各位有什么建议
没有?
g*****g
发帖数: 34805
2
没 zookeeper没数据库就写共享文件。本质是一样的。

【在 m***h 的大作中提到】
: 我有这么一个production上的java app,一台server,每天早晨定点run一个job(
: Spring-Quartz),大概20分钟的模样。现在要把它搬到replicated VM/cluster里去
: ,所以
: 面临的问题是怎样实现cluster里schedule job的问题:保证还在同样的时间总有1个也
: 只有1个job运行。我知道利用database write lock应该可以,但是这个系统本身并不
: 带数据库,所以不想为了这个目的再单独install 和maintain个数据库,也没有
: zookeeper之类。所以面临的问题是需要一个简单可靠不折腾的办法。各位有什么建议
: 没有?

m***h
发帖数: 77
3
谢谢回答,不过没有NFS,也没有EBS,shared volume...
这个job是从ElasticSearch里读数据输出报告,只有ES是现成可“写”的。
BTW,我在试http://docs.hazelcast.org,以前没用过这个,不过看着挺neat,可以在app level组cluster,支持distributed map, cache, 包括lock。不过一个问题是cluster discovery (http://docs.hazelcast.org/docs/3.5/manual/html/hazelcastclusters.html):multicast经常在network这一层出问题production不是很实际,TCP/Unicast方式需要至少一个node的hostname或IP,这就牵扯更多了,service registry discovery越滚越大。
c*m
发帖数: 836
4
最简单可靠不折腾的方法,就是“指定一个”run,而不是“任意一个”run。
N*****m
发帖数: 42603
5
你不单独维护数据库,为啥要单独维护一个hazelcast server?
app level一样可以起个数据库

【在 m***h 的大作中提到】
: 谢谢回答,不过没有NFS,也没有EBS,shared volume...
: 这个job是从ElasticSearch里读数据输出报告,只有ES是现成可“写”的。
: BTW,我在试http://docs.hazelcast.org,以前没用过这个,不过看着挺neat,可以在app level组cluster,支持distributed map, cache, 包括lock。不过一个问题是cluster discovery (http://docs.hazelcast.org/docs/3.5/manual/html/hazelcastclusters.html):multicast经常在network这一层出问题production不是很实际,TCP/Unicast方式需要至少一个node的hostname或IP,这就牵扯更多了,service registry discovery越滚越大。

m***h
发帖数: 77
6
我尝试用hazelcast主要是因问它可以embedded在app里,这样我所有的app 就自己组成
一个cluster,可以share数据什么的
import com.hazelcast.config.Config;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
import java.util.concurrent.locks.Lock;
public class DistributedLock {
public static void main(String[] args) {
Config config = new Config();
HazelcastInstance h = Hazelcast.newHazelcastInstance(config);
Lock lock = h.getLock("my-distributed-lock");
lock.lock();
try {
//do something here
} finally {
lock.unlock();
}
}
}

【在 N*****m 的大作中提到】
: 你不单独维护数据库,为啥要单独维护一个hazelcast server?
: app level一样可以起个数据库

N*****m
发帖数: 42603
7
数据库也可以啊,随便搞个H2,jdbc一连就可以了,比hazelcast还简单
hazelcast还没法persistent

【在 m***h 的大作中提到】
: 我尝试用hazelcast主要是因问它可以embedded在app里,这样我所有的app 就自己组成
: 一个cluster,可以share数据什么的
: import com.hazelcast.config.Config;
: import com.hazelcast.core.Hazelcast;
: import com.hazelcast.core.HazelcastInstance;
: import java.util.concurrent.locks.Lock;
: public class DistributedLock {
: public static void main(String[] args) {
: Config config = new Config();
: HazelcastInstance h = Hazelcast.newHazelcastInstance(config);

g*****g
发帖数: 34805
8
S3. Cheap and effective.

【在 m***h 的大作中提到】
: 谢谢回答,不过没有NFS,也没有EBS,shared volume...
: 这个job是从ElasticSearch里读数据输出报告,只有ES是现成可“写”的。
: BTW,我在试http://docs.hazelcast.org,以前没用过这个,不过看着挺neat,可以在app level组cluster,支持distributed map, cache, 包括lock。不过一个问题是cluster discovery (http://docs.hazelcast.org/docs/3.5/manual/html/hazelcastclusters.html):multicast经常在network这一层出问题production不是很实际,TCP/Unicast方式需要至少一个node的hostname或IP,这就牵扯更多了,service registry discovery越滚越大。

g*****g
发帖数: 34805
9
结点当了就玩完了。

【在 c*m 的大作中提到】
: 最简单可靠不折腾的方法,就是“指定一个”run,而不是“任意一个”run。
c*m
发帖数: 836
10
他这个本来就一个instance在run, 可见也不是啥非常critical的东西。在现实工作里
,节点当了一般会马上trigger alert, 这个时候来个人重启一下就好了。我个人觉得
,这是最经济实惠又符合绝大多数工作环境的做法。
如果需要自动fail over,我觉得你前面说的S3是最简单的方法。如果因为种种原因不
允许跟外界通讯,那么次简单的方法就是在instance启动的时候start 一个listening
thread,跟其他instance 通讯。

【在 g*****g 的大作中提到】
: 结点当了就玩完了。
相关主题
real time distributed frameworkkafka 压缩包里自带zookeeper对吧?
关于web client连接server的问题对分布式软件的Jepsen测试
有人分享一下学习 使用卡夫卡的方法 心得么?Kafka consumer启动怎样不读之前的massage
进入Programming版参与讨论
H****S
发帖数: 1359
11
Zookeeper + curator leader latch 是最不折腾但又可靠的方式了。

【在 m***h 的大作中提到】
: 我有这么一个production上的java app,一台server,每天早晨定点run一个job(
: Spring-Quartz),大概20分钟的模样。现在要把它搬到replicated VM/cluster里去
: ,所以
: 面临的问题是怎样实现cluster里schedule job的问题:保证还在同样的时间总有1个也
: 只有1个job运行。我知道利用database write lock应该可以,但是这个系统本身并不
: 带数据库,所以不想为了这个目的再单独install 和maintain个数据库,也没有
: zookeeper之类。所以面临的问题是需要一个简单可靠不折腾的办法。各位有什么建议
: 没有?

m***h
发帖数: 77
12
谢谢各位的建议,汇报一下进展
1,in-app cluster/data grid, Hazelcast, infra不可行,因为整个系统正向
container方向转,infra team搞了一套东西,wrap了Kubernets 和 docker,但是有一
个limit-只能有一个port forwarding,系统已经用来expose 8080了,这样Hazelcast
nodes没办法通讯
2,H2类似的embedded小db,也是同样的问题,cluster 需要hostname和open port。
结论是要么用external db/s3/EBS/zookeeper,或者single container with
monitoring and restarting
3,这个single container就是CDM建议的方向,infra有现成的,但是这个小job和一些
Kafka的consumer绑在一起,不希望这些consumer局限于一个container,而剥离这两个
module也麻烦。
看来怎么都得折腾了。
4,Kafka伴随的zookeeper,归另一个team,爱搭不理的。
5,S3貌似在同一个region可以保证consistency,Netflix有个相关的open source http://techblog.netflix.com/2014/01/s3mper-consistency-in-cloud.html,可以做为选择
6,我们另外一个数据处理的部分有可能用Cassandra,这也是个candidate,DBA team关
系不错,头儿还是老中。上次用它还是0.6 version,估计变化很大了。
N*****m
发帖数: 42603
13
s3mper用dynamodb
那你还不如直接用dynamo得了

Hazelcast

【在 m***h 的大作中提到】
: 谢谢各位的建议,汇报一下进展
: 1,in-app cluster/data grid, Hazelcast, infra不可行,因为整个系统正向
: container方向转,infra team搞了一套东西,wrap了Kubernets 和 docker,但是有一
: 个limit-只能有一个port forwarding,系统已经用来expose 8080了,这样Hazelcast
: nodes没办法通讯
: 2,H2类似的embedded小db,也是同样的问题,cluster 需要hostname和open port。
: 结论是要么用external db/s3/EBS/zookeeper,或者single container with
: monitoring and restarting
: 3,这个single container就是CDM建议的方向,infra有现成的,但是这个小job和一些
: Kafka的consumer绑在一起,不希望这些consumer局限于一个container,而剥离这两个

m***h
发帖数: 77
14
确实,其实S3,还有Dynamodb和Cassandra本来都不是为我这个要求设计的。
技术的选择经常更多基于技术之外的因素。如果另外一个project用C*的话,可能就搭
那趟车了。
关于Cassandra...java driver我记得早年用Vector很多,现在似乎推荐DataStax自己
的了?

【在 N*****m 的大作中提到】
: s3mper用dynamodb
: 那你还不如直接用dynamo得了
:
: Hazelcast

k**n
发帖数: 3989
15
一般需要一个queue.. cluster server workers 到queue 里取job 运行...

【在 m***h 的大作中提到】
: 我有这么一个production上的java app,一台server,每天早晨定点run一个job(
: Spring-Quartz),大概20分钟的模样。现在要把它搬到replicated VM/cluster里去
: ,所以
: 面临的问题是怎样实现cluster里schedule job的问题:保证还在同样的时间总有1个也
: 只有1个job运行。我知道利用database write lock应该可以,但是这个系统本身并不
: 带数据库,所以不想为了这个目的再单独install 和maintain个数据库,也没有
: zookeeper之类。所以面临的问题是需要一个简单可靠不折腾的办法。各位有什么建议
: 没有?

b*******s
发帖数: 5216
1 (共1页)
进入Programming版参与讨论
相关主题
大家公司里kafka是dev弄还是ops折腾ES怎么玩?
办公室问题:其他组如何把自己的code让infra组接收?real time distributed framework
请问MySQL的replication不通过应用程序能达到strong consistenc (转载)关于web client连接server的问题
NOSQL排名有人分享一下学习 使用卡夫卡的方法 心得么?
搞清楚什么叫做底层先kafka 压缩包里自带zookeeper对吧?
Node.js arrives for the JVM对分布式软件的Jepsen测试
掏钱买support的的确都是脑子进水的Kafka consumer启动怎样不读之前的massage
zookeeper 这种牛鼻软件都是apache自己的人写的?对L股价大跌的一点看法 (转载)
相关话题的讨论汇总
话题: schduleing话题: job话题: hazelcast话题: cluster话题: config