自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LVS+keepalived搭建高可用架构

我在确认我所部署的lvs节点跟后端的real server不在同一二级网络,且中间还要经过一道防火墙后,想到了另外一个办法,在中间增加一层nginx,分别在两台lvs安装部署nginx,通过将请求转发到nginx,再由nginx转发请求,这样就能在不增加机器的情况下完成请求转发,实现后端服务的高可用。脚本执行成功后一样通过ip addr查看是否绑定成功,绑定成功则可以在客户端访问VIP了,看是否正常响应,到此MASTER就部署完成可,接下来可以按照以上的步骤完成另外一个lvs节点部署。

2025-04-17 23:28:09 739

原创 Otter数据同步原理

上图是基于memory的仲裁器实现的数据扭转时许图,数据在经过SETL四个阶段完成数据处理,每个数据阶段处理完成将数据推送至下一个阻塞队列由下一个阶段的任务处理器完成数据处理再推向下一个阶段。在讲otter同步原理前需要提一下mysql的日志,otter是基于mysql的增量日志解析来实现数据同步的,这里的日志就是mysql二进制日志——binlog日志,该类型日志详细记录了所有修改的数据的sql,当某一时刻的数据误操作导致问题,或者数据库当即数据丢失,就可以通过binlog日志完成数据的找回。

2024-12-07 21:53:23 927

原创 otter 扩展

通过实现EventProcessor 接口,完成自已逻辑处理,可以完成每一条数据的处理,不过此处自定义EventProcessor也存在一些坑,比如在执行ddl语句时,如果对应的Pipeline中配置了支持ddl同步,ddl语句在执行至自定义的EventProcessor时存在不可预见的异常,这块在实际处理的过程中可以关闭对ddl同步支持,或者忽略掉ddl异常。Transform模块:这个模块的自定义目前没有看到对应的官方demo,源码叶没有关注到对应的实现,有待进一步了解。

2024-11-30 21:41:22 356

原创 otter 高可用策略

manager对node的节点监控室基于zookeeper的发布定于机制,node节点在启动时会在zookeeper上创建node的临时节点信息,manager会订阅node节点变化,若出现临时节点被删除的事件,会触发manager上的异常告警处理机制,在异常处理机制中会尝试重启对应的同步任务。注意点:每个node节点,都会在zookeeper中生成Ephemeral节点,每个node都会缓存住当前存活的node列表,node节点消失,通过zookeeper watcher机制刷新每个node机器的内存。

2024-11-30 21:28:13 733

原创 关于otter监控告警使用

otter监控告警

2024-11-30 17:08:19 1076

原创 otter 自由门使用方法

* 业务表授权,这里可以限定只授权同步业务的表 */一、先参考otter官方文档完成channel的配置。(2)删除现有的系统表。(1)数据库账户授权。(4)插入初始化数据。二、涉及的部分数据库操作。

2024-11-14 22:55:05 512

原创 工作经验,技巧记录(三)

例如:create_time和channel_pay_time相差时间大于10小时。

2024-07-21 16:51:21 196 1

原创 redis间歇性断连解决方式

开启连接池的连接检查功能,定义LettuceConnectionFactory的bean时增加设置对应的validateConnection属性值为true,在每次使用链接前都增加一次ping的操作,如果ping不通代表当前连接已经不可用,再重新初始化连接。但是开启该功能会有较大的性能消耗,目前所做的性能压测结果来看,平均耗时是不开启检查时的7倍以上,详情见下图,这样的性能消耗确实无法接受。存在的问题:1、通过开启连接池的连接检查功能,能保证每一次拿到可用的连接,但是性能损耗过大;

2024-01-07 15:00:19 2019 1

原创 关于深分页解决办法记录

mysql深分页

2023-06-11 10:46:22 1485

原创 Prometheus+grafana实现zookeeper监控实现

1)zookeeper作为一块优秀的分布是协调服务管理工具,当前仍然作为较多公司集群管理的工具,最近在看关于zookeeper的监控实现,发现zookeeper有自己的监控实现方案,将对应的方案之一进行了复现,并记录在此,以便以后查看,也希望能够帮助到需要的人。本文记录的是使用zookeeper3.8自己的api完成的zk监控。 2)环境:mac 2018 MacOS 11.4,JDK1.8/zookeeper3.8,prometheus2.34.0,grafanazookeepe...

2022-05-15 22:05:34 2199

原创 如何在MAC上安装rocketMQ-console?

如何在MAC上安装rocketMQ-console?本篇文件时接上一篇关于《如何在MAC上安装RocketMQ实现消息发送?》Console是一个可以直观查看MQ发送消费消息的控制台,通过控制台我们能够查看MQ发送消费消息的情况,下面就讲述下如何完成安装配置:下载架包:下载链接:https://github.com/apache/rocketmq-externals/releases/tag/rocketmq-console-1.0.0下载完成后将解压后的包mv到自己安装目录下c..

2021-07-04 15:26:37 616 1

原创 如何在MAC上安装RocketMQ实现消息发送?

如何在MAC上安装RocketMQ实现消息发送? 近段时间因为学习RocketMQ的消息发送相关机制,需要在MAC上搭建RocketMQ开发环境,期间遇到了较多的问题,此篇文章用于记录整个搭建过程,及其中遇到的问题,需要也能帮助有需要的童鞋解答疑惑。环境准备:1、系统:MacOS11.42、JDK:1.83、Maven:3.8.14、rocketMQ 4.2.0注:关于JDK和Maven的安装本文就不在赘述了,很多资料可以找到。接下开始描述如何在mac上搭建R...

2021-07-04 15:19:54 429

原创 如何实现修改架包中的class文件?

在实际的开发中我们可能因为某些原因需要修改依赖包中的某个class文件源码,比如class中将某个异常吃掉了在发生异常时未打印异常的message,又或者你就是想修改源码实现等等,class文件时不能直接通过我们的编辑器进行修改,通常的实现方式是通过一些特殊的工具修改,今天记录一下如何使用我们的eclipse达到修改架包中的class文件的一种方式:.class格式的文案我们的java文件通过编译后生成的,基于这个过程,我们逆向思维,只要我们能够拿到.class文件的内容,然后再新建一个编译...

2021-05-23 11:01:36 793

原创 如何在单台机器上完成zookeeper集群搭建

zookeeper作为非常流行的分布式应用程序协调服务管理开源框架,最初是由雅虎研究院研发,能够作为注册中心、集群Leader选举、分布锁……等等应用,今天我主要记录关于如何在单台机器上模拟zookeeper集群创建。环境准备:(1)一台笔记本电脑(2)windows10操作系统(3)JDK1.8安装包(4)zookeeper安装包(5)破解版VMvare(6)通过VMvare安装三台linux系操作统虚拟机一、在虚拟机上安装JDK (1...

2021-05-19 23:16:57 750

原创 如何书写线程安全的单例实现?

如何书写线程安全的单例实现? 在某些场景下只需要初始化一个对象一次,在后面需要使用的时候直接获取之前初始化的对象,这可以借助单例模式编程模帮助我们来实现这个需求,常见的单例模式有饿汉式和懒汉式的实现方式,还有通过枚举的方式实现单例,今天就将单例模式的实现进行简单的总结并就其线程安全性进行浅析,有不妥的地方还请大家批评指正。所有代码实例皆以JAVA进行实现。一、懒汉式实现private SingleronExample2(){} // 提供私有的构造方法防止在外部实例化 priva...

2021-03-28 11:11:02 172

原创 curator之事件监听实现

Zookeeper原生支持通过注册Watcher来进行事件监听,但是每次在使用完后都是需要重新进行注册,十分繁琐不方便开发者使用,curator引入了Cache实现了对Zookeeper服务端事件的鉴定,Cache对Zookeeper的事件监听的包装,能够自动实现为开发人员处理反复注册监听,从而简化了原生API开发的繁琐过程,Cache分为两分两类监听类型:节点监听和子节点监听。下面我们就看下分别如何实现监听。1、NodeCache用于监听节点本身的变化,下面使用NodeCache...

2020-12-27 20:53:12 569

原创 curator之zk节点操作

Curator是一套Zookeeper客户端框架,由Netflix公司开源,类似ZkClient,Curator封装了Zookeeper很多底层的工功能,包括连接重试、反复注册和NodeExistsException异常,如此极大的方便了开发人员使用,能更多的聚焦于业务逻辑上,而不是zk如何实现集群的创建、维护上。 使用前首先在项目中引入对应的jar架包,需要注意Curator和Zookeeper版本兼容问题,可以参考这篇博文:https://blog.youkuaiyun.com/w...

2020-12-23 22:50:35 652

原创 如何在windows上安装Zookeeper

如何在windows上安装Zookeeper Zookeeper是一个典型的分布式数据一致性的解决方案,分布式系统可以基于它实现数据发布订阅、命名服务、分布式协调通知、集群管理、分布式锁和分布式队列等功能,本文简要记录如何在windows系统上进行zookeeper的安装及伪集群搭建。Zookeeper的安装官网链接:https://zookeeper.apache.org/releases.html1、前往官网选择想要下载的版本,下载对应的包,然后解压至本地目录:...

2020-11-29 21:10:35 572

原创 三种常见的排序算法  

近期因实际需求需要使用到排序算法,就此将常见的三种排序算法进行复习、整理并记录,用于以后的参考,在程杰老师的《大话数据结构》一书中生动的阐述了多种排序算法(冒泡排序、选择排序、堆排序、快速排序、希尔排序、归并排序),本文借鉴《大话数据结构》一书中的概念并结合自身的理解记录其中三种排序算法的原理、实现及时间复杂度的简单分析。 在进行实际的算法记录前先回顾一下一个概念:时间复杂度。时间复杂度是用来描述一个算法的运行时间的量,通常情况,解决一个问题,使用的时间最少的算法,其...

2020-09-14 22:34:55 1876

原创 QTcreator&Matlab混合编程

Matlab&Qtcreator混合编程总结 因为项目的需要这两日一直在摸索matlab与qtcreator混合编程的东西,期间遇到过很多的问题,在此进行一个总结,希望能够帮到后面有需要的人。环境:Windows10 64位、Qtcreator5.7 32位、Matlab2014b 32位(注意:这里在使用Qtcreator和Matlab是要求使用相同位数的版本,我之前用的是6...

2018-10-23 21:30:09 3456 12

翻译 使用Maven创建SSM开发环境

        今天复习一下关于使用IDEA+Maven来SSM后台开发环境的步骤:首相要创建Maven项目,点击File->New->Project->Maven勾选Create from archetype,然后选择maven-archetype-webapp点击next填写好GroupId和ArtifactId后点击next在Properties中添加一个archetype...

2018-08-27 15:04:32 256

原创 使用Maven构建SSM开发环境时遇到spring配置文件中无法加载(引用)jdbc.properties的情况

        今天使用Maven构建SSM开发环境时遇到spring配置文件中无法加载(引用)jdbc.properties的情况,在经过排查后发现是在创建resources文件时没有将该文件的一项属性设置正确,右键单击resources文件夹找到Mark Directory as将其设置为Resource roots ,这样便解决了文件无法引用的问题,具体的这样文件的该项属性可以参照这篇博客:...

2018-08-27 14:13:26 2221

原创 微信公众号后台开发总结之二

微信公众号后台开发总结之二第二个部分、公众号后台实现获取用户信息 其实获取用户信息和简单,但是在这个过程中有比较多的坑,只要把这些坑跳过了,真是很简单,下面我就简单介绍几种获取用户信息的方式:(1)      网页授权获取用户的信息分为授权登录和静默授权,授权登录个人觉得该方法可能会影响用户的体验,用户需要确认后才能继续访问相应的内容,过程相对耗时;但基于用户对个人信息安全的考虑来讲还是值得推荐。...

2018-03-19 20:19:48 5617

原创 微信公众号后台开发总结

微信公众号后台开发总结一、项目简介当前需要做一个公众号后台,前期需要实现的功能有:(1)      在用户关注公众号时便获取用户的信息同时还要将用户信息存入数据库。(2)      在用户给公众号发送消息时,后台能够对消息的类型进行识别同时进行回复。        从要实现的功能数量上来讲,这的确很少,但是却牵涉到很多的东西,包括后台开发环境的搭建(使用的框架、数据库选择、服务器、前端页面的选择)...

2018-03-19 17:24:10 39781 5

转载 Mapped Statements collection does not contain value for...可能的解决方法

最近在做一个SSM项目时总是报这样一个错误,在网上查找资料发现出现该问题的原因一般有三种:    1.mybatis的映射文件的命令空间与接口的全限定名不一致;    2有可能mybatis的映射文件名字与接口的类名字不一致;    3.还有一种情况就是接口声明的方法在映射文件里面没有。但经过仔细的检查之后发现我没有出现这些问题,然后我浏览target文件中发现问题的所在,在生成的

2018-01-03 09:54:21 1373

空空如也

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

TA关注的人

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