springBoot+elasticJob
springboot集成elastic-job
一、安装使用zookeeper
1.下载window版zookeeper ,下载地址为:http://apache.fayea.com/zookeeper
2.解压好了之后,进入conf文件夹,会发现有2个文件,log4j.properties和zoo_sample.cfg这2个文件。对于zoo_sample.cfg文件,需要先将文件名字修改成zoo.cfg文件才行,接下来修改里面配置,如下所示,给出了注释和简单的配置信息。
3.修改配置保存文件
1 # ZK中的一个时间单元。ZK中所有时间都是以这个时间单元为基础,进行整数倍配置的。例如,session的最小超时时间是2*tickTime。 2 tickTime=2000 3 4 # Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许F在 initLimit 时间内完成这个工作。 5 initLimit=10 6 7 # 在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。 8 syncLimit=5 9 10 # 存储快照文件snapshot的目录。默认情况下,事务日志也会存储在这里。建议同时配置参数dataLogDir, 事务日志的写性能直接影响zk性能。 11 dataDir=D:/Program Service Files/zookeeper-3.5.0-alpha/data 12 13 # 事务日志输出目录。尽量给事务日志的输出配置单独的磁盘或是挂载点,这将极大的提升ZK性能。 14 dataLogDir=D:/Program Service Files/zookeeper-3.5.0-alpha/dataLog 15 16 # 客户端连接server的端口,即对外服务端口,一般设置为2181吧。 17 clientPort=2181 18 19 # 单个客户端与单台服务器之间的连接数的限制,是ip级别的,默认是60,如果设置为0,那么表明不作任何限制。 20 #maxClientCnxns=60 21 22 # 23 # Be sure to read the maintenance section of the 24 # administrator guide before turning on autopurge. 25 # 26 # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance 27 # 28 # The number of snapshots to retain in dataDir 29 #autopurge.snapRetainCount=3 30 # Purge task interval in hours 31 # Set to "0" to disable auto purge feature 32 #autopurge.purgeInterval=1
4.参数说明:
tickTime:基本事件单元,以毫秒为单位,用来控制心跳和超时,默认情况超时的时间为两倍的tickTime tickTime:基本事件单元,以毫秒为单位,用来控制心跳和超时,默认情况超时的时间为两倍的tickTime
dataDir:数据目录.可以是任意目录.
dataLogDir:log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.
clientPort:监听client连接的端口号.
maxClientCnxns:限制连接到zookeeper的客户端数量,并且限制并发连接数量,它通过ip区分不同的客户端。
minSessionTimeout和maxSessionTimeout:最小会话超时时间和最大的会话超时时间,在默认情况下,最小的超时时间为2倍的tickTime时间,最大的会话超时时间为20倍的会话超时时间,系统启动时会显示相应的信息。默认为-1
initLimit:参数设定了允许所有跟随者与领导者进行连接并同步的时间,如果在设定的时间段内,半数以上的跟随者未能完成同步,领导者便会宣布放弃领导地位,进行另一次的领导选举。如果zk集群环境数量确实很大,同步数据的时间会变长,因此这种情况下可以适当调大该参数。默认为10
syncLimit:参数设定了允许一个跟随者与一个领导者进行同步的时间,如果在设定的时间段内,跟随者未完成同步,它将会被集群丢弃。所有关联到这个跟随者的客户端将连接到另外一个跟随着。
5、配置完成之后,就可以进入bin目录下,启动zkService.cmd了,当页面滚动时,证明启动成功了。 配置完成之后,就可以进入bin目录下,启动zkService.cmd了,当页面滚动时,证明启动成功了。 配置完成之后,就可以进入bin目录下,启动zkService.cmd了,当页面滚动时,证明启动成功了。 配置完成之后,就可以进入bin目录下,启动zkService.cmd了,当页面滚动时,证明启动成功了。但是,我们会经常遇到双击启动时,一闪而过的场景,此时会什么错误信息都看不到,最好的方式就是采取cmd启动,这样能看到报错信息。在此文件夹打开cmd执行如下命令,就会看到报错信息了。
二、整合elastic-job
1.在idea下新建一个springboot项目,pom.xml文件如下配置
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 6 <groupId>com.yto</groupId> 7 <artifactId>springboot-el-job</artifactId> 8 <version>0.0.1-SNAPSHOT</version> 9 <packaging>jar</packaging> 10 11 <name>springboot-el-job</name> 12 <description>Demo project for Spring Boot</description> 13 14 <parent> 15 <groupId>org.springframework.boot</groupId> 16 <artifactId>spring-boot-starter-parent</artifactId> 17 <version>2.1.1.RELEASE</version> 18 <relativePath/> <!-- lookup parent from repository --> 19 </parent> 20 21 <properties> 22 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 23 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 24 <java.version>1.8</java.version> 25 </properties> 26 27 <dependencies> 28 <dependency> 29 <groupId>org.springframework.boot</groupId> 30 <artifactId>spring-boot-starter-web</artifactId> 31 </dependency> 32 33 <dependency> 34 <groupId>org.springframework.boot</groupId> 35 <artifactId>spring-boot-starter-test</artifactId> 36 <scope>test</scope> 37 </dependency> 38 39 40 <dependency> 41 <groupId>com.dangdang</groupId> 42 <artifactId>elastic-job-lite-core</artifactId> 43 <version>2.1.5</version> 44 </dependency> 45 <!-- elastic-job-lite-spring --> 46 <dependency> 47 <groupId>com.dangdang</groupId> 48 <artifactId>elastic-job-lite-spring</artifactId> 49 <version>2.1.5</version> 50 </dependency> 51 </dependencies> 52 53 <build> 54 <plugins> 55 <plugin> 56 <groupId>org.springframework.boot</groupId> 57 <artifactId>spring-boot-maven-plugin</artifactId> 58 </plugin> 59 </plugins> 60 </build> 61 62 63 </project>
参考文档:
https://blog.csdn.net/weixin_40880305/article/details/84839659
https://blog.csdn.net/weixin_40880305/article/details/84840825