自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Springboot集成Kafka完成消息回调,错误处理,消息拦截,批量处理

这篇文章主要是分享我做消息回调,错误处理,消息拦截,批量处理的一些代码,希望大家给我指出不足之处。 消息回调 这个简单,你只需要实现一个接口:ProducerListener @Component public class KafkaSendResultHandler implements Pro...

2019-08-12 17:03:11

阅读数 489

评论数 0

原创 CAS无锁算法

锁(lock)的代价 锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,加锁、释放锁会导致比较多的上下文切换和调度延时,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对性能有很大的损失。 Java在JDK1....

2018-12-18 21:30:38

阅读数 41

评论数 0

原创 Redis的分片方案

EX seconds : 将键的过期时间设置为 seconds 秒。 执行 SET key value EX seconds 的效果等同于执行 SETEX key seconds value 。 PX milliseconds : 将键的过期时间设置为 milliseconds 毫秒。 执行 SE...

2020-01-10 17:57:47

阅读数 13

评论数 0

原创 redis实现数据的增删查改

redis实现数据的增删查改 一、springboot集成redis实现数据的增删查改 1、添加依赖 <dependency> <groupId>org.springframework.boot</groupId> ...

2020-01-10 17:50:11

阅读数 14

评论数 0

原创 解决缓冲区泄漏

解决缓冲区泄漏 引用计数的缺点是容易泄漏引用计数的对象。因为JVM不了解Netty实现的引用计数,所以一旦它们无法访问,即使它们的引用计数不为零,它也会自动对它们进行GC。一旦回收了垃圾,就无法将其复活,因此不能将其返回到它来自的池中,从而会导致内存泄漏。 幸运的是,尽管难以发现泄漏,但Netty...

2019-12-15 00:54:28

阅读数 10

评论数 0

原创 安装Docker

1、安装Docker要求Centos内核版本高于3.10: 通过uname -r查看当前系统的内核版本 uname -r 2、使用root登陆系统,确保yum包保持更新到最新: sudo yum update 3、如果系统已经安装过Docker,请卸载旧版本: sudo yum rem...

2019-12-04 17:49:50

阅读数 7

评论数 0

原创 Redis5.0.7的部署与集群搭建

Redis5.0.7的部署与集群搭建 一、单机版部署 第一步:下载最新稳定版 wget http://download.redis.io/releases/redis-5.0.7.tar.gz 第二步:解压 tar -zxvf redis-5.0.7.tar.gz 第三步:进入解压后文件夹并编...

2019-11-22 16:12:50

阅读数 249

评论数 0

原创 Redis Cluster与Codis的选择

Redis Cluster与Codis的选择 一、Codis 1.1 Codis是什么 Codis 是 Wandoujia Infrastructure Team 开发的一个分布式 Redis 服务, 用户可以看成是一个无限内存的 Redis 服务, 有动态扩/缩容的能力. 对偏存储型的业务更实用...

2019-11-20 10:54:13

阅读数 39

评论数 0

原创 项目启动异常(已解决解决)

项目为canal adapter。 jdk版本为:1.8.0_144 报错日志: 2019-11-15 16:49:26.126 [main] INFO o.s.c.annotation.AnnotationConfigApplicationContext - Refreshing org.sp...

2019-11-15 17:02:12

阅读数 15

评论数 0

原创 数据库归档的实现方案调研(二)

之前的文章里已经写了使用TokuDB进行数据压缩,准确的说,但 TokuDB并非是归档,而是对数据进行压缩,使得数据库在保存大量数据时有更好的表现,这节就是描述一个数据库归档方案。 经过调研,发现一个比较好的工具: pt-archiver。 1、原理 通过给定的–where条件,查询出表中需要删除...

2019-11-14 11:09:44

阅读数 20

评论数 0

原创 数据库归档的实现方案调研(一)

公司最近说是数据库中数据量比较大,好多是15/16年的数据,基本不用,但是堆在数据库又严重影响性能,想找个方法解决掉它。所以,这个任务就这么放到了我的头上。 一、 目前问题 业务系统的业务表的数据量很大,严重影响性能,需要进行优化。 二、 问题解决方案 按照目前问题,对症下药,我们需要对数据进行归...

2019-11-13 10:57:40

阅读数 34

评论数 0

原创 利用LogStash同步ORACLE数据至ES

1、LogStash 1.1下载Logstash Wget https://artifacts.elastic.co/downloads/logstash/logstash-6.5.4.tar.gz 1.2项目结构 解压缩后项目结构为: 其中我们需要手动添加oracle的jar包作为logsta...

2019-11-13 10:46:13

阅读数 475

评论数 0

原创 利用Canal全量/增量同步mysql数据至ES

Canal同步mysql数据至ES 1、更改Mysql配置 1.1 开启 Binlog 写入功能 配置 binlog-format 为 ROW 模式,配置my.cnf [mysqld] log-bin=mysql-bin # 开启 binlog binlog-format=ROW # 选择 ROW...

2019-11-05 17:01:20

阅读数 542

评论数 8

原创 ES学习第二篇

ES学习第二篇 一、与elastic search的交互 我是Java工程师,相应的我就说我们是怎么交互的。 1.1 Java API 在代码中你可以使用 Elasticsearch 内置的两个客户端: 1.1.1 节点客户端 节点客户端作为一个非数据节点加入到本地集群中。换句话说,它本身不保存任...

2019-10-28 10:49:08

阅读数 12

评论数 0

原创 ES学习第一篇

一、ES的产生 1.1 大批量数据如何检索 问题:当系统数据量上了10亿条的时候,我们通常会从以下角度去考虑问题: 用什么数据库好?(mysql、oracle、mongodb、hbase…) 如何解决单点故障;(zk、mq) 如何保证数据安全性;(热备、冷备) 如何解决检索难题;(数据库代理中间...

2019-10-28 10:48:16

阅读数 18

评论数 0

原创 ElasticSearch和solr的区别

最近接了一个新需求,做一个搜索引擎。 先看一下技术选型吧。 ElasticSearch和solr的区别 Elasticsearch简介 Elasticsearch是一个实时分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。 它用于全文搜索、结构化搜索、分析以及将这三者混合使用: 如维...

2019-10-14 16:50:07

阅读数 12

评论数 0

原创 Kafka的条件接收

有时候,我们需要有针对性的接收一些消息,在之前的文章里我已经写过基于kafkaTemplate的消息组件。 Springboot集成Kafka完成消息回调,错误处理,消息拦截,批量处理。 关于cloud stream又有了新的拦截方式。或者更形象的说是,按条件接收消息。 发送者: public i...

2019-09-25 11:53:49

阅读数 17

评论数 0

原创 Spring Cloud Stream消费失败后的处理策略(四):使用DLQ队列(Kafka版)

Spring Cloud Stream消费失败后的处理策略(四):使用DLQ队列(Kafka版) 之前写了一个一个DLQ的rabbit版本,接下来说一下kafka版本的。因为kafka的管理监控界面没有那么详细(我太菜,没找到)。 动手试一下: 准备一个会消费失败的例子,可以直接沿用前文的工程。也...

2019-09-18 16:39:50

阅读数 9

评论数 0

原创 Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列

Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列 应用场景 前两天我们已经介绍了两种Spring Cloud Stream对消息失败的处理策略: 自动重试:对于一些因环境原因(如:网络抖动等不稳定因素)引发的问题可以起到比较好的作用,提高消息处理的成功率。 自定义...

2019-09-18 16:14:20

阅读数 16

评论数 0

原创 Spring Cloud Stream 消费失败

首先我们新建一个注定会消费失败的案例: @RestController public class TestController { @Autowired private TestTopic testTopic; @RequestMapping("test"...

2019-09-16 10:38:58

阅读数 38

评论数 0

原创 Spring Cloud Stream(二)

Spring Cloud Stream(二) 前面那一节就是讲一下各种概念,接下来就是如何使用咯。 一:编程模型 介绍Spring Cloud Stream的编程模型。Spring Cloud Stream提供了许多预定义的注释,用于声明绑定的输入和输出通道,以及如何收听频道。 1.1 声明和绑定...

2019-09-16 10:14:11

阅读数 14

评论数 0

原创 Spring Cloud Stream(一)

Spring Cloud Stream 一:介绍 Spring Cloud Stream是构建消息驱动的微服务应用程序的框架。Spring Cloud Stream基于Spring Boot建立独立的生产级Spring应用程序,并使用Spring Integration提供与消息代理的连接。它提供...

2019-09-12 09:57:25

阅读数 12

评论数 0

原创 反射生成的类无法进行自动注入的解决方案

造成问题的原因: 之前我有一个设计,需要设置一个灵活的过滤规则,但考虑到各部门之间的过滤规则过于繁复,依靠个人能力完全无法在短时间内完成,因此我写了一个接口,让使用者通过实现接口来实现他们自己的过滤规则。 问题: 设计就是让使用者通过实现该接口,并在我的配置文件里写他们的类路径,我通过反射生成这个...

2019-09-06 20:06:14

阅读数 224

评论数 0

原创 linux不小心修改了/etc/profile下的path,该怎么办

刚才在配置kafka环境时,原本按照我想象的: export KAFKA_HOME=/data/kafka/kafka_2.11-1.1.0 PATH=$PATH:$KAFKA_HOME/bin/ export PATH 结果一不小心,就变成了: export KAFKA_HOME=/data/...

2019-09-05 18:50:58

阅读数 269

评论数 0

原创 Kafka安装时遇到的错误-防火墙

错误一: 问题描述: controller服务器不能连接到另外两台kafka服务器,但是telnet却可以通。 WARN [RequestSendThread controllerId=137] Controller 137's connection to broker 192.168...

2019-09-03 15:09:05

阅读数 44

评论数 0

原创 理解2PC,3PC与TCC

理解TCC、2PC和3PC 2PC 2PC,是Two-Phase Commit的缩写,二阶段提交。 过程如下: 阶段一:提交事务请求 事务询问 协调者节点向所有参与者节点询问是否可以执行提交操作(vote),并开始等待各参与者节点的响应。 执行事务 参与者节点执行询问发起为止的所有事务操作,并...

2019-08-29 15:53:32

阅读数 185

评论数 0

原创 Canal进阶(二)

我们公司的业务流程是通过canal模拟MySQL slave的交互协议,获取MySQL的binary log,从而解析MySQL的日志。将解析后的数据通过kafka发送至其他系统从而达到数据同步的目的。 所以canal与kafka的集成也就是我的下一步工作。老规矩,先看官方给的example。 c...

2019-08-28 15:54:08

阅读数 51

评论数 0

原创 canal进阶(一)

客户端代码分析 首先我是从官方实例example项目开始。 项目结构 其中,assembly文件夹中都是一些xml配置,我们将其忽略就可以了。 bin目录里面是一些可执行文件,如果我们将变量配置好,是可以直接通过可执行文件来执行,实现自己的功能。 conf文件夹里是日志的配置文件,忽略过去就好,...

2019-08-26 09:49:54

阅读数 163

评论数 0

原创 Canal入门(四)

Canal入门(四) 实际上,在实际应用开发中,单体架构的很少存在,我们要为其做一个HA高可用的架构,保障其中一台宕机后,不影响正常使用。 Canal的HA模式配置 1、机器准备 a. 运行canal的机器: 10.20.144.22 , 10.20.144.51. b. zookeeper地...

2019-08-23 09:42:51

阅读数 25

评论数 0

原创 Kafka安装配置

Kafka安装配置 环境版本 操作系统:CentOS release 6.6 (Final) java版本: jdk1.8 kafka 版本: kafka_2.11-1.1.1.tgz 一、安装Kafka 1.1 下载压缩包,复制到固定目录并解压 到官网下载压缩包 wget https://w...

2019-08-22 16:50:02

阅读数 11

评论数 0

原创 Zookeeper安装配置

Zookeeper安装配置 环境版本: 操作系统:CentOS release 6.6 (Final) java版本: jdk1.8 zookeeper版本: zookeeper-3.4.11 一、安装jdk 此处省略,自己百度安装 二、安装zookeeper 2.1 下载源码包,并解压 官网...

2019-08-22 16:49:34

阅读数 19

评论数 0

原创 Canal入门(三)

Canal入门(三) Canal的配置 介绍配置之前先了解下Canal配置的加载方式: canal配置方式有两种: ManagerCanalInstanceGenerator:基于manager管理的配置方式,目前alibaba内部配置使用这种方式。可以通过实现CanalConfigClient...

2019-08-22 16:48:06

阅读数 24

评论数 0

原创 Canal入门(二)

Canal入门(二) canal kafka quickStart 这两天看了一下canal的github文档,有了一些笔记,在这里记录一下: https://github.com/alibaba/canal 1、基本说明 canal 1.1.1版本之后, 默认支持将canal server接收到...

2019-08-22 16:18:32

阅读数 35

评论数 0

原创 读取配置文件中值,并声明数组

读取配置文件中值,并声称数组

2019-08-20 10:41:19

阅读数 164

评论数 0

原创 Canal入门(一)

Canal 前段时间做完kafka基础功能后,公司又增加了一个新需求,利用kafka和canal完成数据库的实时增量。于是开始对canal的调研之路。希望看到的人可以给我一些指导,共同进步。 1、背景 早期,阿里巴巴 B2B 公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求 ,主要是基于...

2019-08-20 10:28:13

阅读数 17

评论数 0

原创 Springboot集成Kafka实现消息队列的组件化

一、Kafka简介 1.1 Kafka架构 (1)点对点消息系统 (2)发布 - 订阅消息系统 1.2 Kafka的组件介绍 1、Producer:消息生产者,就是向kafka broker发送消息的客户端 2、Concumer:消息消费者,向kafka broker拉取消息的客户端 3、T...

2019-08-12 16:12:14

阅读数 30

评论数 0

原创 Kafka的API-Java篇

上一篇文章已经将Kafka的服务配置分享了一遍,这篇主要是将java的API分享一波。 Kafka有四个核心API: Producer API :允许应用程序发送数据流到kafka集群中的topic。 Consumer API :允许应用程序从kafka集群的topic中读取数据流。 Strea...

2019-08-12 15:22:26

阅读数 20

评论数 0

原创 消息中间件之Kafka

公司需求变动,对消息中间件的选型从RabbitMQ转为Kafka,我也这段时间好好了看了下Kakfa。将最近的学习笔记整理整理,共享一哈。 1、什么是kafka Apache kafka是消息中间件的一种。 举个例子,生产者消费者,生产者生产鸡蛋,消费者消费鸡蛋,生产者生产一个鸡蛋,消费者就消费...

2019-08-12 14:54:11

阅读数 14

评论数 0

原创 消息队列(二)-RabbitMQ初步认识

1、什么是MQ 消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。 其主要用途:不同进程Process/线程Thread之间通信。 1.1 MQ产生的原因 不同进程(process)之间传递消息时,两个进...

2019-07-03 10:50:48

阅读数 14

评论数 0

原创 消息队列(一)-技术选型

最近有个需求是做一个消息队列的技术组件。 技术比较: 特性 ActiveMQ RabbitMQ RocketMQ Kalfa 单机吞吐量 万级 万级 10万级 10万级 topic 数量对吞吐量的影响 topic 可...

2019-06-26 09:47:47

阅读数 51

评论数 0

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