- 博客(108)
- 收藏
- 关注
原创 官网2.0
最近一段时间不少小伙伴一直在催我把官网内容细化一些、多补一些文档比如 快速上手、配置使用、系统原理等。想想也是哈SnailJob目前功能已经非常强大了,但是官网确实有点简陋吗,趁着最近有时间决定把官网重构一下。仓库地址: https://gitee.com/aizuda/snailjob-docs。如果您对官网有什么好的建议或者您有文档需要补充欢迎PR或者issues。SnailJob目录结构全貌。
2024-11-10 19:49:34
205
原创 XxlJob迁移SnailJob工具来了
SnailJob迁移工具支持一键将xxl-job快速迁移至snail-job,有效降低了迁移过渡过程中的复杂性。由于SnailJob与XxlJob功能差异导致有些字段无法迁移。SnailJob迁移工具。阻塞策略对应关系如下。路由策略对应关系如下。
2024-10-26 21:11:33
605
原创 灵活,可靠和快速的分布式任务重试和分布式任务调度平台
修复MapReduce模式Reduce、MergeReduce阶段异常更新工作流上下文 【BUG】mysql、mariadb、sqlserver、oracle、postgres 数据库。仿钉钉设计的流程编排引擎,支持复杂的功能编排、失败重试、告警等。能够动态调整配置,启动 / 停止任务,以及终止运行中的任务。定时任务使用恢复阻塞策略时,只重新调用不成功的任务【优化】提供丰富的任务触发策略、任务分片、停止恢复、失败重试等。添加snail-job的window启动脚本.【新增】
2024-06-02 23:16:42
1485
原创 《分布式异常重试服务平台 X-RETRY》
github地址https://github.com/byteblogs168/x-retry简介X-RETRY 基于服务治理的思想我们开发了重试治理的功能,支持动态配置,接入方式基本无需入侵业务代码,并使用多种策略结合的方式在链路层面控制重试放大效应,兼顾易用性、灵活性、安全性的分布式异常重试服务平台社区https://www.byteblogs.com/chat特性管控重试流量,预防重试风暴,及早发现和预警,并且提供流程管理手段保证易用性: 业务接入成本小。避免依赖研发人员的技术水
2022-05-19 22:30:35
486
原创 基于SpringBoot+VUE的blog(个人博客)
helloblog基于SpringBoot实现零配置让系统的配置更简单,使用了Mybatis-Plus快速开发框架,在不是复杂的查询操作下,无需写sql就可以快速完成接口编写。 后台管理系统使用了vue中流行的ant,另外前后交互使用了JWT作为令牌,进行权限、登录校验。。预览地址项目下载地址后端API https://github.com/byteblogs168/hello-bl...
2020-02-19 22:22:21
5348
4
转载 【Redis】SpringBoot配置多个redis连接
1、在SpringBoot中针对于Redis中的连接配置,本质上只提供有一个,想要连接多个,就需要自己进行Redis的创建与管理2、修改application.yml文件spring: redis: host: 192.168.136.131 port: 6379 timeout: 1000 database: 0 jedis: pool...
2019-11-30 13:24:08
2355
原创 canel-1.1.5 canal.deployer安装
简介canal [kə’næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费工作原理canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送 dump 协议MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal...
2019-11-28 23:04:12
4666
转载 docker redis自定义配置文件启动
首先下载redis镜像:docker pull redis:5.0然后创建一个文件夹用来存放redis的配置文件、存储数据mkdir -p /usr/local/redis /usr/local/redis/data配置redis.conf# Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程(此处必须是no,不然启动不了)deamonize ...
2019-11-11 22:06:48
589
转载 【安装篇】CentOS安装nginx-1.11.3
1、配置支持包(下载地址)nginx程序源代码:nginx-1.11.3.tar.gz信息输出:echo-nginx-module-0.59.tar.gz缓存清除:ngx_cache_purge-2.3.tar.gz负载均衡:nginx_upstream-fair-a18b409.tar.gz2、定义nginx编译输出目录mkdir -p /usr/local/nginx/{logs...
2019-11-11 21:33:53
352
转载 【安装篇】Nginx开机自启(CentOS7)
1、本次使用Systemctl服务的设置方法,基本规则如下[Unit]:服务的说明Description:描述服务After:描述服务类别[Service]服务运行参数的设置Type=forking是后台运行的形式ExecStart为服务的具体运行命令ExecReload为重启命令ExecStop为停止命令PrivateTmp=True表示给服务分配独立的临时空间注意:[Se...
2019-11-11 21:31:35
193
转载 【部署篇】HelloBlog部署
转载 https://www.byteblogs.com/article/1931、搭建前准备后端代码:https://github.com/byteblogs168/hello-blog后端管理:https://github.com/byteblogs168/hello-blog-admin前端主题:https://github.com/byteblogs168/theme-defaul...
2019-11-11 21:30:34
448
原创 使用nuxt.js开发的helloblog简单主题
原文地址: https://www.byteblogs.com/article/167介绍什么是helloblog这里给个我之前的文章说明下什么是hello blog之前上线的默认主题不少网友说不行,尤其是在seo方面,于是我决定用nux.js开发一个简单的主题。这个页面是有Yancy实现的。在这里也非常感谢这位小伙伴的贡献。这里是他的博客http://blog.yancy.design/。...
2019-10-25 13:56:09
604
原创 SpringBoot集成JWT实现token验证,token注销
JWT官网: [https://jwt.io/][https_jwt.io]JWT(Java版)的github地址:[https://github.com/jwtk/jjwt][https_github.com_jwtk_jjwt]什么是JWTJson web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).**定义了一种简洁...
2019-10-10 10:21:55
14501
9
原创 经过几天努力终于开源了一个前后分离的vue + springboot的个人博客
为什么会开发这个个人博客?说到为什么会开发这个个人博客,愿意在上半年写了一个多人博客,byteblogs 但是总感觉缺少点什么,最后考虑一下准备写一个个人博客让个人博客的文章可以同步发到byteblogs上去,这个就形成一个圈子。只说不练假把式,于是就开工搞起了。我看了很多的个人博客大都是java + freemaker ,这个做主题是比较好更换的,但是局限性很大,不利于二次开发,而是改一下前端...
2019-10-08 11:16:10
412
原创 vue.js + springboot-网站应用接入GitHub第三方登录
转载 https://www.byteblogs.com/article/162JAVA-网站应用接入GitHub第三方登录相对 网站应用接入 QQ 登录,简单很多,Github 直接创建应用就可以用,不需要长时间的审核GitHub 开发者官方文档:https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-...
2019-10-08 11:12:39
914
原创 Java NIO深入理解ServerSocketChannel
Java NIO 简介JAVA NIO有两种解释:一种叫非阻塞IO(Non-blocking I/O),另一种也叫新的IO(New I/O),其实是同一个概念。它是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的有效方式。NIO是一种基于通道和缓冲区的I/O方式,它可以使用Native函数库直接分配堆外内存(...
2019-07-02 09:09:30
853
1
转载 JAVA 四中引用类型
强引用在Java中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到JVM也不会回收。因此强引用是造成Java内存泄漏的主要原因之一。软引用软引用需要用SoftReference类来实现,对于只有软引用的对象来说,当系统内存足够时它不会被回收,当系统内存...
2019-06-30 18:10:34
344
转载 java Thread yield()方法的理解
先看一下源码 yield()是一个native方法也就是说是C或者C++实现的 /** * A hint to the scheduler that the current thread is willing to yield * its current use of a processor. The scheduler is free to ignore this ...
2019-06-30 18:08:48
263
转载 Spring中获取request的几种方法,及线程安全性
方法1:Controller中加参数代码示例:这种方法实现最简单,直接上Controller代码:@Controllerpublic class TestController { @RequestMapping("/test") public void getXXX(HttpServletRequest request) throws InterruptedExce...
2019-06-12 22:46:18
731
原创 有了这篇文章flutter入门就简单了
环境配置1. java环境2. flutter环境下载flutter安装包解压到你的文件夹 配置环境变量PUB_HOSTED_URL=http://pub.flutter-io.cnFLUTTER_STORAGE_BASE_URL=http://storage.flutter-io.cn把flutter的bin目录配置到path,就能在任何位置使用flutter命令工...
2019-06-12 22:45:04
1159
原创 今天说说阿里云邮件推送配置
首先登陆然后进入控制台打开左侧菜单找到邮件推送的菜单这是邮件的主页面新建发信域名 email.xxx.com点击配置配置域名对应的填上就好了 然后到2的验证 就可以了代码实现 -添加maven <dependency> <groupId>com.aliyun</groupId> <a...
2019-06-09 20:28:20
2852
原创 进程的阻塞和挂起的区别
理解一:挂起是一种主动行为,因此恢复也应该要主动完成,而阻塞则是一种被动行为,是在等待事件或资源时任务的表现,你不知道他什么时候被阻塞(pend),也就不能确切 的知道他什么时候恢复阻塞。而且挂起队列在操作系统里可以看成一个,而阻塞队列则是不同的事件或资源(如信号量)就有自己的队列。 理解二:阻塞(pend)就是任务释放CPU,其他任务可以运行,一般在等待某种资源或信号量的时候出现。...
2019-06-02 21:38:00
3936
原创 nuxt.js 服务端渲染框架构建的项目部署到服务器,并用 PM2 守护程序
最近项目呢用到了nuxt为了seo没办法,项目开发完了现在遇到了一个问题咋打包上线,以前我们都是npm build完了之后就把dist包放到web服务器的工作目录下面就可以了比如nginx的www目录下面,但是服务端渲染的不一样,好了咱们开始配置吧。第一步 配置 nginx安装nginx 可以参考这个 安装nginx 这个我们给出nginx的配置location / { index ...
2019-06-02 21:36:04
1219
3
原创 java8 lambada使用Collectors.groupingBy分组顺序错误
最近有个需求就是按照LocalDate分组排序但是一直数据都是错乱的,后来查了资料可以看到有三个参数,第一个参数就是key的Function了,第二个参数是一个map工厂,也就是最终结果的容器,一般默认的是采用的HashMap::new,最后一个参数很重要是一个downstream,类型是Collector,也是一个收集器,那就是说,这三个参数其实就是为了解决分组问题的 第一个参数:分组...
2019-06-02 10:43:31
4806
2
原创 终止线程 4 种方式
1. 正常运行结束程序运行结束,线程自动结束。2. 使用退出标志退出线程一般 run()方法执行完,线程就会正常结束,然而,常常有些线程是伺服线程。它们需要长时间的 运行,只有在外部某些条件满足的情况下,才能关闭这些线程。使用一个变量来控制循环,例如: 最直接的方法就是设一个 boolean 类型的标志,并通过设置这个标志为 true 或 false 来控制 while 循环是否退出,...
2019-05-31 19:39:44
688
原创 线程生命周期(状态)
1. 线程生命周期(状态)当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。 在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞 (Blocked)和死亡(Dead)5 种状态。尤其是当线程启动以后,它不可能一直"霸占"着 CPU 独自 运行,所以 CPU 需要在多条线程之间切换,于是线程状态也会多次在运行、阻塞之间...
2019-05-31 19:37:44
2398
原创 线程池的RejectedExecutionHandler(拒绝策略)
JAVA为多线程场景提供了线程池,下面是一个线程池的构造方法:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ...
2019-05-31 19:36:12
846
原创 Spring boot实现aop
AOP全称Aspect Oriented Programming,面向切面,AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。其与设计模式完成的任务差不多,是提供另一种角度来思考程序的结构,来弥补面向对象编程的不足。 通俗点讲就是提供一个为一个业务实现提供切面注入的机制,通过这种方式,在业务运行中将定...
2019-05-31 19:31:55
979
原创 java.lang.CloneNotSupportedException: com.xxx.demo.TestClone
clone() 是 Object 的 protected 方法,它不是 public,一个类不显式去重写 clone(),其它类就不能直接去调用该类实例的 clone() 方法。 public class Demo5 { public static void main(String[] args) throws CloneNotSupportedException { ...
2019-05-27 14:36:18
1338
原创 解决:java.util.ConcurrentModificationException: null:异常
public class Test { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("aa"); list.add("bb"); list.add("cc"); ...
2019-05-27 14:24:49
41695
1
原创 一次排查腾讯云CPU100%
今天一大早网站突然挂了 然后服务器就登不上了现在就是想办法登录到云服务器上采用 腾讯云 VNS浏览器登录https://cloud.tencent.com/developer/article/1367094开始排查 首先top查看发现123这个进程高了 下面可以输入命令ll /proc/5664就可以看到路径先删除进程文件 在 kill -9 5664 解决战...
2019-05-27 09:47:11
1556
转载 Docker开启远程访问(CentOS系统)
现在打开的你的docker.servicevi /lib/systemd/system/docker.service图片是我配置好的修改以ExecStart开头的行:(因为我的系统是centos 7的,所以修改为下面得)ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock如果是cen...
2019-05-27 09:46:16
353
原创 java8 lambada使用Collectors.groupingBy分组顺序错误
最近有个需求就是按照LocalDate分组排序但是一直数据都是错乱的,后来查了资料可以看到有三个参数,第一个参数就是key的Function了,第二个参数是一个map工厂,也就是最终结果的容器,一般默认的是采用的HashMap::new,最后一个参数很重要是一个downstream,类型是Collector,也是一个收集器,那就是说,这三个参数其实就是为了解决分组问题的第一个参数:分组按照什么...
2019-05-27 09:44:44
3354
1
原创 Vue+WebSocket 实现页面实时刷新长连接
vue实现与websocket实现长链接export default { data() { return { websock: null, } },created(){//页面刚进入时开启长连接this.initWebSocket()}, destroyed: function() { //页面销毁...
2019-05-27 09:36:56
3733
转载 SpringBoot对ActiveMQ的配置解析
spring.activemq.broker-url=tcp://127.0.0.1:61616在考虑结束之前等待的时间spring.activemq.close-timeout=15s 默认代理URL是否应该在内存中。如果指定了显式代理,则忽略此值。spring.activemq.in-memory=true 是否在回滚回滚消息之前停止消息传递。这意味着当启用此命令时,消息顺序不会被...
2019-05-27 09:32:59
1310
转载 docker时间与宿主机器不同步
前言: 最近使用idea部署docker 发现时间一直与宿主机器时间不一致,各种百度发现一个问题就是修改一下容器的时区RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone但是执行后会报找不到zoneinfo目...
2019-05-05 11:04:55
180
转载 在集成redis的时候报错这个错误availableProcessors is already set to [4], rejecting [4]
基础环境:jdk8IntelliJ IDEA 2018.1.6Elasticsearch 6.1.1SpringBoot 2.0.2.RELEASE问题重现:做redis session 共享,加入以下依赖时引发java.lang.IllegalStateException: availableProcessors is already set to [4], rejectin...
2019-02-28 15:55:03
3153
原创 oauth 2.0 资源服务器的异常自定义
@Componentpublic class BootOAuth2AuthExceptionEntryPoint extends OAuth2AuthenticationEntryPoint { private Logger logger = LoggerFactory.getLogger(BootOAuth2AuthExceptionEntryPoint.class); ...
2019-01-23 10:58:11
390
原创 oauth 认证服务器 配置HandlerInterceptorAdapter
编写LoginHandlerInterceptor@Configurationpublic class LoginHandlerInterceptor extends HandlerInterceptorAdapter { private static final Logger logger = LoggerFactory.getLogger(LoginHandlerInte...
2019-01-22 14:53:10
207
原创 Security 配置过滤器
配置 LoginInterceptor@Servicepublic class LoginInterceptor implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("in...
2019-01-22 14:50:58
2033
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人