自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 Canal基本操作原理

思维导图文章已收录Github精选,欢迎Star:https://github.com/yehongzhi/learningSummary前言我们都知道一个系统最重要的是数据,数据是保存在数据库里。但是很多时候不单止要保存在数据库中,还要同步保存到Elastic Search、HBase、Redis等等。这时我注意到阿里开源的框架Canal,他可以很方便地同步数据库的增量数据到其他的存储应用。所以在这里总结一下,分享给各位读者参考~一、什么是canal我们先看官网的介绍can.

2021-11-16 11:51:57 1652

转载 XxxJob运用

概述​ 首先我们要知道什么是XXL-JOB?​ 官方简介:XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用​ XXL-JOB的有点特性:​ 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;​ 2、动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;​ 3、调度中心HA(中心式):调度采用中心式设计,“调度中心”自研调度组件并支持集群部署,可保证调度中

2021-08-30 09:50:59 1379

原创 线程池使用规则

Java的线程池的好处进程-线程的简单介绍 进程 进程是计算机中的程序关于某数据集合的一次运行活动,是系统进行资源分配的调度的基本单位,是操作系统结构的基础。简单来讲:进程是指运行中的应用程序,进程是一个实体,每一个进程都有它自己的地址空间。例如我们点击了QQ,就启动了一个进程,操作系统就会为这个进程分配独立的地址空间,当我们又点击浏览器,这样又启动了一个进程,操作系统将为新的进程分配新的独立的地址空间。 线程 线程是操作系统能够进行运算调度的最小单位,被包含在进程之中,是进程中的实

2021-07-08 11:09:05 479

转载 Rabbitmq的死信队列和延时队列

死信队列其实和普通的队列没啥大的区别,都需要创建自己的Queue、Exchange,然后通过RoutingKey绑定到Exchange上去,只不过死信队列的RoutingKey和Exchange要作为参数,绑定到正常的队列上去,一种应用场景是正常队列里面的消息被basicNack或者reject时,消息就会被路由到正常队列绑定的死信队列中,还有一种还有常用的场景就是开启了自动签收,然后消费者消费消息时出现异常,超过了重试次数,那么这条消息也会进入死信队列,如果配置了话,当然还有其他的应用场景,这里不一一讨论

2021-07-07 14:04:20 306

转载 MyBatis动态SQL

动态sqlMybatis的映射文件中,前面我们的SQL都是比较简单的,有些时候业务逻辑复杂时,我们的SQL是动态变化的,此时在前面的学习中我们的SQL就不能满足要求了。而,我们使用动态sql可以使我们的sql语句有多种可能性,根据不同语句使用不同的语法。动态sql之ifMybatis的映射文件,可在sql语句中使用sql来根据当前情况来使用不同的语句:下面是一个多条件聚合查询。向查询语句中传入一个类,可根据类的属性进行查询,当属性值为空,则跳过此属性,当属性值不为空,则合并此条件进行查询

2021-07-06 10:31:45 84

转载 Java集合数组和链表

本文先来介绍下最最简单的数据结构,数组和链表。一、数组  数组是我们使用到的最简单的一个数据结构,数组的使用// 动态初始化:初始化时由程序员只指定数组长度,由系统为数组元素分配初始值char c1[] = new char[5];// 静态初始化: 初始化时由程序员显示置顶每个数组的初始值,由系统决定数组长度char c2[] = new char[]{'E','D','U','Y','U'};char c3[] = {'E','D','U','Y','U'};12345  

2021-07-05 13:37:49 461

原创 Redis-避免缓存穿透的利器之BloomFilter

前言 你在开发或者面试过程中,有没有遇到过 海量数据需要查重,缓存穿透怎么避免等等这样的问题呢?下面这个东西超屌,好好了解下,面试过关斩将,凸显你的不一样。Bloom Filter 概念布隆过滤器(英语:Bloom Filter)是1970年由一个叫布隆的小伙子提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查...

2019-12-24 10:30:07 288

原创 Spring Cloud feignclient实现远程调用问题

由之前的dubbo改用SpringCloud,微服务之间通过FeignClient进行调用,今天在测试的时候,eureka注册中心有相应的服务,但feignclient就是无法调通,一直报404错误,排查过程如下:一、问题:  服务提供方定义的接口如下:/** * 黑白名单查询接口 * * @author LiJunJun * @since 2018/10/18 */...

2019-09-01 11:08:16 3283

原创 spring定时任务-配置及解决并发问题

一.spring定时任务配置applicationContext.xml:红色代码部分为需要配置的部分。<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/X...

2019-08-22 10:17:22 564

原创 Spring+quartz集群配置

http://fanshuyao.iteye.com/一、问题描述Spring自带的Task虽然能很好使用定时任务,只需要做些简单的配置就可以了。不过如果部署在多台服务器上的时候,这样定时任务会在每台服务器都会执行,造成重复执行。二、解决方案Spring+quartz 集群可以解决多服务器部署定时器重复执行的问题。1、下载quartz的Jar包或者在Maven...

2019-08-22 10:01:36 265

原创 Spring 定时任务

使用场景日常开发中经常有这样的场景,如每隔几秒钟或几分钟去执行一下某段业务代码,或者到达某个时间点去执行某个动作。定时任务通常是处理一些非及时的操作,具有异步性,规律性。常用的定时任务框架QuartzQuartz 准确来说它不单单是一个定时任务框架,而是一个调度框架。它的功能比 Spring 的定时任务功能要强大的多。Quartz 有强大的调度能力,灵活的应用方式,还具有集群,...

2019-08-21 13:18:05 152

转载 Mysql only_full_group_by以及其他关于sql_mode原因报错详细解决方案

Mysql only_full_group_by以及其他关于sql_mode原因报错详细解决方案网上太多相关资料,但是抄袭严重,有的讲的也是之言片语的,根本不连贯(可能知道的人确实不想多说)我总共花了3个多小时,反复测试,总结一下Mysql only_full_group_by以及其他关于sql_mode原因报错详细解决方案 报错信息: 原因: 怎么查看呢: 解...

2019-05-31 09:56:15 143

转载 微信对接

微信支付文档传送门:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_31.开发工具:Eclipse+Tomcat+微信web开发工具2.开发环境:java+maven3.开发前准备:3.1 所需材料小程序的appid,APPsecret,支付商户号(mch_id),商户密钥(key),付款用户的o...

2019-05-30 13:40:38 235

转载 SpringBoot使用Sharding-JDBC分库分表

SpringBoot使用Sharding-JDBC分库分表技术博客 | 2019-03-07 09:47:40| 5SpringBoot本文介绍SpringBoot使用当当Sharding-JDBC进行分库分表。有关Sharding-JDBC介绍这里就不在多说,之前Sharding-JDBC是当当网自研的关系型数据库的水平扩展框架,现在已经捐献给Apache...

2019-03-07 10:20:45 127

转载 ShardingSphere(开源的分布式数据库中间件解决方案组成的生态圈)

ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。ShardingSphere定位为关系型...

2019-03-07 10:15:21 650

转载 Nginx实现负载均衡

Nginx实现负载均衡技术博客 | 2019-03-07 09:31:43| 2Nginx本篇文章介绍Nginx实现负载均衡,本文使用Nginx和两个SpringBoot简单Web应用实现。1.准备工作。结合本文场景,需要安装Nginx和Java环境(运行SpringBoot项目)。1.准备工作。结合本文场景,需要安装Nginx和Java环境(...

2019-03-07 10:10:32 134

转载 SpringCloud Gateway入门

SpringCloud Gateway入门技术博客 | 2019-03-06 16:38:53| 33SpringCloud本文是介绍一下SpringCloud Gateway简单路由转发使用。SpringCloud Gateway简介SpringCloud是基于Spring Framework 5,Project Reactor和Spring Boot 2...

2019-03-07 10:03:34 280

转载 IntelliJ IDEA,酷炫插件系列,提高你的工作效率

今天介绍一下IDEA的一些炫酷的插件,IDEA强大的插件库,不仅能给我们带来一些开发的便捷,还能体现我们的与众不同。 1.插件的安装打开setting文件选择Plugins选项 Ctrl + Alt + S File -&gt; Setting 分别是安装JetBrains插件,第三方插件,本地已下载的插件包。详情见往期关于settings的文章。2.各种插...

2018-12-29 14:15:40 382

转载 SpringBoot 快速整合Mybatis(去XML化+注解进阶)

一. 基础注解MyBatis 主要提供了以下CRUD注解:@Select@Insert@Update@Delete增删改查占据了绝大部分的业务操作,掌握这些基础注解的使用还是很有必要的,例如下面这段代码无需XML即可完成数据查询:@Mapperpublic interface UserMapper {   @Select("select * from t_user...

2018-12-29 14:12:26 598

转载 程序猿如何培养第二技能

我为什么说程序员培养第二技能异常重要呢?想必大家都听过这么一句话,程序员都是吃青春饭。这句话虽然我不完全同意,但是不可否认的是如果你想一直写代码,你是很难写到 35 岁的,有人反驳了,国外谁谁谁写代码都写到 50 岁呢,以特例来论证整体是不成熟理智的,我敢这么说,单纯的写代码,在国内能写到 35 岁的人极少数,也许你对代码有极大的热情,但是技术的变迁实在太快,年轻的时候你有时间

2018-01-08 10:33:47 425

原创 学习心得

每个程序员、或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来。今天小编给大家分享的是一篇来自阿里Java工程师对3年工作经验程序员的职业建议,希望对你有启发。    程序员的三个阶段   第一阶段-——三年 我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人。这一阶段,我们走

2017-12-25 17:56:52 206

转载 ActiveMQ消息过滤

一、消息的过期允许消息过期 。默认情况下,消息永不会过期。如果消息在特定周期内失去意义,那么可以设置过期时间。 有两种方法设置消息的过期时间,时间单位为毫秒: 1.使用消息生产者的setTimeToLive 方法为所有的消息设置过期时间。2.使用消息生产者的send 方法为每一条消息设置过期时间。 消息过期时间,send 方法中的 timeToLive 值加上发送时刻的 GMT

2017-12-01 10:38:12 572

转载 (四)RabbitMQ消息队列-服务详细配置与日常监控管理

RabbitMQ服务管理启动服务:rabbitmq-server -detached【 /usr/local/rabbitmq/sbin/rabbitmq-server -detached 】查看状态:rabbitmqctl status关闭服务:rabbitmqctl stop列出角色:rabbitmqctl list_users开启某个插件:rabbitmq-pluginsena

2017-11-15 11:04:27 911

转载 (三)RabbitMQ消息队列-Centos7下安装RabbitMQ3.6.1

用什么系统本文使用的是Centos7,为了保证对linux不太熟悉的伙伴也能轻松上手(避免折在安装的路上),下面是我的系统镜像地址:https://pan.baidu.com/s/1gfl6Y9l养成良好的习惯,安装好系统运行更新:yum update -yreboot //一般情况不用重启,个人习惯。123有人问如果我是初学者使用ubuntu可以吗?我的答案是如果你是为

2017-11-15 10:49:17 251

转载 (二)RabbitMQ消息队列-RabbitMQ消息队列架构与基本概念

RabbitMQ架构说是架构其实更像是应用场景下的架构(自己画的有点丑,勿嫌弃)从图中可以看出RabbitMQ主要由Exchange和Queue两部分组成,然后通过RoutingKey关联起来,消息投递到Exchange然后通过Queue接收。RabbitMQ消息队列基本概念RabbitMQ Server: 也叫broker server,它是一种传输服务。 他的角色就是维

2017-11-15 10:36:45 188

转载 了解Java线程的start方法如何回调run方法

面试中可能会被问到为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法?Java 创建线程的方法实际上,创建线程最重要的是提供线程函数(回调函数),该函数作为新创建线程的入口函数,实现自己想要的功能。Java 提供了两种方法来创建一个线程:继承 Thread 类class MyThread extends Thread{ pub

2017-11-14 09:45:25 149

原创 Springboot

https://github.com/alex2chen/spring-boot-cloud-note

2017-08-11 11:12:52 196

转载 SimpleDateFormat

日期转换用到了SimpleDateFormat类,其中有两个方法format()和parse(),下面讲一下用法及可能出现的问题。parse方法:将字符串类型(Java.lang.String)解析为日期类型(java.util.Date)format方法:将日期类型(Date)数据格式化为字符串(String)1.先说parse(),parse()是将字符串类型的解析为日期类型的

2017-08-10 17:53:38 879

转载 Quartz调度器

一、Quartz下载Quartz官网:http://www.quartz-scheduler.org/以2.2.3版本为例,下载 Quartz 2.2.3 .tar.gz,解压,把quartz-2.2.3-distribution\quartz-2.2.3\lib目录下jar包添加到工程中即可,如果使用maven,添加一下依赖: dependency> groupId>o

2017-08-04 11:38:18 261

转载 Liux查看日志的简单方法

linux查看日志文件内容命令tail、cat、tac、head、echolinux查看日志文件内容命令tail、cat、tac、head、echotail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C,---------------------------linux 如何显示一个文件的某几行(中间几行)从第3000行开始,显示

2017-08-04 11:03:56 217

转载 RabitMQ相关介绍

“Hello world” of RabbitMQ1、Windows下RabbitMQ的安装下载Erlang,地址:http://www.erlang.org/download/otp_win32_R15B.exe ,双击安装即可(首先装)下载RabbitMQ,地址:http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.4/rabb

2017-08-04 10:47:12 1058

转载 java创建线程池的四种方法

Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。

2017-08-03 17:29:16 2461

原创 java编程经验

1. 关于动态加载机制??学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成分。很多人都能背出来Java语言的特点,所谓的动态加载机制等等。当然概念往往是先记住而后消化的,可有多少人真正去体会过动态加载的机制,试图去寻找过其中的细节呢?  提供大家一个方法:在命令行窗口运行Java程序的时候,加上这个很有用的参数:java  ?verbose   *

2017-08-03 11:43:20 490

转载 Java序列化与反序列化

Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?本文围绕这些问题进行了探讨。 1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。 2.为什么需要序列化与反序列化 我们知道,当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片、音频

2017-08-03 09:52:38 163

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除