1、数据库创建选择
2、定时任务的实现方式
3、分片原理
4、框架图
5、XXL-Job报错Logback configuration error detected
解决:
(1)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
(2)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
6、xxl-job配置流程
(1)启动拉下来的文件
xxl-job: 一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
(2)访问http://localhost:8080/xxl-job-admin/toLogin
输入账号密码admin 123456
(3)yml配置
server:
port: 4000
xxl:
job:
admin:
addresses: http://127.0.0.1:8080/xxl-job-admin
accessToken: default_token
executor:
appname: xxl-job-executor-sample
address:
ip: 127.0.0.1
port: 8081
logpath: /data/applogs/xxl-job/jobhandler
logretentiondays: 30
(4)config配置信息
package com.smart.community.xxl.config;
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author liuhuitang
*/
@Configuration
public class XxlJobConfig {
private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.accessToken}")
private String accessToken;
@Value("${xxl.job.executor.appname}")
private String appname;
@Value("${xxl.job.executor.address}")
private String address;
@Value("${xxl.job.executor.ip}")
private String ip;
@Value("${xxl.job.executor.port}")
private int port;
@Value("${xxl.job.executor.logpath}")
private String logPath;
@Value("${xxl.job.executor.logretentiondays}")
private int logRetentionDays;
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
logger.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appname);
xxlJobSpringExecutor.setAddress(address);
xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
/**
* 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
*
* 1、引入依赖:
* <dependency>
* <groupId>org.springframework.cloud</groupId>
* <artifactId>spring-cloud-commons</artifactId>
* <version>${version}</version>
* </dependency>
*
* 2、配置文件,或者容器启动变量
* spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
*
* 3、获取IP
* String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
*/
}
(5)配置job
package com.smart.community.xxl.job;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* @author liuhuitang
*/
@Component
public class SimpleXxlJob {
@XxlJob("demoJobHandler")
public void demoJobHandler(){
System.out.println("执行定时任务,执行时间:"+new Date());
}
}
(6)这边会出配置
(7)新增任务之后执行
(8)效果
7、mac配置zookeeper
1.下载zookeeper安装包
2.解压安装包
3.修改配置文件
4.启动服务端
5.启动客户端
(1)下载zookeeper安装包
https://archive.apache.org/dist/zookeeper/
选择需要的版本下载
下载的时候要注意下载已经编译好的二进制版本
(2)解压安装包
将下载的安装包解压到你想要的位置。可以使用MacOS自带解压,也可以使用如下命令:
tar -zxvf zookeeper-3.5.1-alpha.tar.gz
1
(3)修改配置文件
进入解压后的zookeeper目录,进入conf目录下,复制一份zoo_sample.cfg文件并命名为zoo.cfg。
cp zoo_sample.cfg zoo.cfg
1
(4)测试
创建好zoo.cfg文件后,打开该文件。如果只是本地开发测试用,基本不用修改什么配置了,需要特别注意一点,那就是zookeeper从3.5.x版本之后,新增了一个AdminServer,默认会随着zookeeper的启动而启动,而且其默认端口是8080,与我们常用的tomcat服务端口冲突了,所以需要修改一下这个端口。在zoo.cfg配置文件最后添加如下内容即可:
admin.serverPort=8180
1
这样,就把AdminServer的端口改为了8180。
那么,这个AdminServer长啥样呢?就是这样
地址是:http://localhost:8180/commands
(4)启动服务端
进入bin目录,执行如下命令就可以了
./zkServer.sh start
1
(5)启动客户端
进入bin目录,执行如下命令就可以连接到本地的zookeeper上
./zkCli.sh
1
如果需要连接指定IP端口的zookeeper服务,使用如下命令