niubi-job迎来第一次重大优化 niubi-job是一款专门针对定时任务所设计的分布式任务调度框架,它可以进行动态发布任务,并且有超高的可用性保证. 有多少人半夜被叫起来查BUG,结果差到最后发现,是因为某个定时任务挂了导致出了问题? 有了niubi-job,你再也不用担心这个问题! 又有多少人因为要发布一个新的定时任务,为了不影响线上的运行,只能等到半夜再去发布应用? 有了niubi-job,你可以随时发布你的定时任务而且不会影响当前任务的运行! 是不是很兴奋呢? 还有更兴奋的呢,那就是…
引言 niubi-job的框架设计是非常简单实用的一套设计,去掉了很多其它调度框架中,锦上添花但并非必须的组件,例如MQ消息通讯组件(kafka等).它的框架设计核心思想是,让每一个jar包可以相对之间独立的运行,并且由zk辅助进行集群中任务的调度. 接下来,咱们就一步一步的来看下niubi-job整个的框架设计与实现. 框架设计概述 讲解之前,让我们先来看一张niubi-job的框架设计图.如下. 可以看到,该图的结构非常简单,只有四个部分组成. 1.web控制台:负责发布任务,监控任务的状态…
niubi-job的框架设计是非常简单实用的一套设计,去掉了很多其它调度框架中,锦上添花但并非必须的组件,例如MQ消息通讯组件(kafka等).它的框架设计核心思想是,让每一个jar包可以相对之间独立的运行,并且由zk辅助进行集群中任务的调度. 接下来,咱们就一步一步的来看下niubi-job整个的框架设计与实现. 框架设计概述 讲解之前,让我们先来看一张niubi-job的框架设计图.如下: 可以看到,该图的结构非常简单,只有四个部分组成. web控制台:负责发布任务,监控任务的状态信息,上传…
引言 上篇文章LZ主要讲解了niubi-job如何安装,如果看过上一篇文章的话,大家应该知道,niubi-job执行的任务是需要用户自己上传jar包的. 那么问题来了,这个jar包如何产生?有没有要求? 本文就是来解决这个问题的,虽然LZ的github上面有例子,但是终究还是LZ自己解释一下会让大家更清晰一些.废话不多说,接下来咱们就来看看如何开发一个定时任务,并且可以运行在niubi-job的容器中. 概述 首先,LZ在设计的时候,主要将任务分成两大类:一类是运行在spring容器当中的任务,…
niubi-job是什么 niubi-job是LZ耗时三个星期,费尽心血打造的一个具备高可靠性以及水平扩展能力的分布式任务调度框架,采用quartz作为底层的任务调度管理器,zookeeper做集群的管理与协调. niubi-job可以做什么 niubi-job与Hadoop的MR框架,包括storm等的目标不同,niubi-job主要针对的是需要定时执行,且同一时间只能有一个节点运行此任务的场景.例如,有一个定时任务是定时去请求某个API获取交易的状态,然后将状态更新到数据库里.类似于这样的j…
引言 本文为niubi-job的FAQ文档,该文档会无限更新.如果您在这里没有找到您想要的答案,请把问题提交到这里. FAQ 1.为什么我的所有任务总是运行在同一个节点上,而没有平均分配到所有节点上? 答:请检查您的job.properties文件中,node.mode属性是否为standby.如果是,请修改成masterSlave.standby为主备模式,只有master才会运行任务. 2.我下载了niubi-job-examples的源码,但是依赖下载不了,编译报错. 答:请将总pom文件…
之前手动实现了一次简陋的 rpc 调用,为了简单使用了 json 编码信息,其实这是非常不可靠的,go 中 json 解析会有一些问题,比如整数会变成浮点数,而且 json 字符串比较占空间. gRPC 由 google 开发,是一款语言中立.平台中立.开源的 RPC 框架,默认使用 protocol buffers 来序列化和传输消息,基于 http2. protobuf Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.它很适合做数…
Cola:一个分布式爬虫框架 - 系统架构 - Python4cn(news, jobs) Cola:一个分布式爬虫框架 发布时间:2013-06-17 14:58:27, 关注:+2034, 赞美:+4, 不爽:+2 本文标签: 爬虫 分布式 原始出处: 残阳似血的博客 由于早先写的WeiboCrawler问题很多,而且当时我有提到,其实可以实现一个通用的爬虫框架.最近由于要抓取新的数据,于是我就写了这个cola.下面的文字来自wiki. Cola是一个分布式的爬虫框架,用户只需编写几个特定的…
平时的开发中线程是个少不了的东西,比如tomcat里的servlet就是线程,没有线程我们如何提供多用户访问呢?不过很多刚开始接触线程的开发工程师却在这个上面吃了不少苦头. 怎么做一套简便的线程开发模式框架让大家从单线程开发快速转入多线程开发,这确实是个比较难搞的工程. 那具体什么是线程呢?首先看看进程是什么,进程就是系统中执行的一个程序,这个程序可以使用内存.处理器.文件系统等相关资源.例如QQ软件.Eclipse.Tomcat等就是一个exe程序,运行启动起来就是一个进程.为什么需要多线程?…
Quartz.Net是一个开源的任务调度框架,非常强大,能够通过简单的配置帮助我们定时具体的操作. 相对于我们用的线程里面while(true)然后sleep来执行某个操作,应该算的上是高端,大气,上档次了. 目前最新版本是2.2,新的版本里面有些方法名发生了变化,从之前的版本用过来的人应该会有体会. 这里我使用最常用,也是最稳定的方式--Windows服务里面使用Quartz.net,并且使用配置的方式来设置触发器. Quartz.NET 入门 http://www.cnblogs.com/j…