自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (14)
  • 收藏
  • 关注

原创 如何通过springboot监听 Redis Key 失效事件实现特定任务

前言我们以订单功能为例说明下:生成订单后一段时间不支付订单会自动关闭。最简单的想法是设置定时任务轮询,但是每个订单的创建时间不一样,定时任务的规则无法设定,如果将定时任务执行的间隔设置的过短,太影响效率。还有一种想法,在用户进入订单界面的时候,判断时间执行相关操作。方式可能有很多,在这里介绍一种监听 Redis 键值对过期时间来实现订单自动关闭。实现思路在生成订单时,向 Redis 中增加一个 KV 键值对,K 为订单号,保证通过 K 能定位到数据库中的某个订单即可,V 可为任意值。假设,生成订

2020-10-29 15:28:23 315

原创 spring-data-jpa 方便数据库迁移

前言由于我们自己的开发和测试环境用的是MySQL数据库,而交付方不明确用的是MySQL还是Oracle,所以在持久层的选型上我们选用了Spring-Data-JPA,因为JPA移植性比较好,不用关心用什么数据库,而mybatis自由写sql语句,所以当项目移植的时候还需要改sql。我们知道,Jpa的实现方式是Hibernate,纯面向对象的,只需要操作对象就可以了,不需关注底层sql语句。这样就可以脱离具体数据库,以后数据库迁移就变得容易了...

2020-10-28 09:49:56 666

原创 zookeeper 持久节点和临时节点的区别

最近有些同学过来问我如何判断zookeeper的节点是持久节点还是临时节点?其实很简单,接下来我们就来看看判断方法。zookeeper 持久节点:该数据节点被创建后,就会一直存在于zookeeper服务器上,直到有删除操作来主动删除这个节点。zookeeper临时节点:临时节点的生命周期和客户端会话绑定在一起,客户端会话失效,则这个节点就会被自动清除。我们执行 sh zkCli.sh -server 127.0.0.1:2181登录zookeeper,分别创建一个持久节点和临时节点。create

2020-10-27 11:08:30 5045

原创 怎么避开Java Stream流式编程常见的坑

前言Java8 由Oracle在2014年发布,是继Java5之后最具革命性的版本了。Java8吸收其他语言的精髓带来了函数式编程,lambda表达式,Stream流等一系列新特性,学会了这些新特性,可以让你实现高效编码优雅编码。1. Stream是什么?Stream是Java8新增的一个接口,允许以声明性方式处理数据集合。Stream不是一个集合类型不保存数据,可以把它看作是遍历数据集合的高级迭代器(Iterator)。Stream操作可以像Builder一样逐步叠加,形成一条流水线。流水线一般

2020-10-25 18:13:22 1093

原创 mysql双机热备实现方案

一、概念1、热备份和备份的区别热备份指的是:High Available(HA)即高可用,而备份指的是Backup,数据备份的一种。这是两种不同的概念,应对的产品也是两种功能上完全不同的产品。热备份主要保障业务的连续性,实现的方法是故障点的转移。而备份,主要目的是为了防止数据丢失,而做的一份拷贝,所以备份强调的是数据恢复而不是应用的故障转移。2、什么是双机热备?双机热备从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一台服务器出现故障时,可以由另一台服务器承担服务任务,

2020-10-23 09:30:57 710

原创 MySQL集群的可行方案

前言如果单MySQL的优化始终还是顶不住压力时,这个时候我们就必须考虑MySQL的高可用架构(很多同学也爱说成是MySQL集群)了,目前可行的方案有:一、MySQL Cluster优势:可用性非常高,性能非常好。每份数据至少可在不同主机存一份拷贝,且冗余数据拷贝实时同步。但它的维护非常复杂,存在部分Bug,目前还不适合比较核心的线上系统,所以这个我不推荐。二、DRBD磁盘网络镜像方案优势:软件功能强大,数据可在底层快设备级别跨物理主机镜像,且可根据性能和可靠性要求配置不同级别的同步。IO操作保持顺

2020-10-23 09:15:40 239

转载 数据库连接池选型 Druid vs HikariCP性能对比

这里主要比较HikariCP 和阿里的Druidspringboot 现在官方默认的数据库连接池是 HikariCP,HikariCP的性能从测试的数据上来看也是最高的。先来看下这个著名的issue一个印度小哥提的 issuebrettwooldridge 这边主要针对性能和在中国以外的地方用的少的问题温绍这边说,由于使用公平锁所以降低了性能,至于为什么是因为在生产环境中遇到的一些问题,使设计使然。温绍同时也强调我们淘宝体量大,并发高,顺便甩了个带有马爸爸照片的链接,让他了

2020-10-22 19:25:53 10664 3

原创 Sentinel实现限流,竟是如此的简单!

前言Sentinel是阿里巴巴开源的限流器熔断器,并且带有可视化操作界面。在日常开发中,限流功能时常被使用,用于对某些接口进行限流熔断,譬如限制单位时间内接口访问次数;或者按照某种规则进行限流,如限制ip的单位时间访问次数等。之前我们已经讲过接口限流的工具类ratelimter可以实现令牌桶的限流,很明显sentinel的功能更为全面和完善。来看一下sentinel的简介:https://github.com/spring-cloud-incubator/spring-cloud-alibaba/wi

2020-10-17 09:36:21 1251

转载 TIME_WAIT过多的危害以及解决TIME_AWAIT过多方案

TIME_WAIT过多危害网络情况不好时,如果主动方无TIME_WAIT等待,关闭前个连接后,主动方与被动方又建立起新的TCP连接,这时被动方重传或延时过来的FIN包过来后会直接影响新的TCP连接;同样网络情况不好并且无TIME_WAIT等待,关闭连接后无新连接,当接收到被动方重传或延迟的FIN包后,会给被动方回一个RST包,可能会影响被动方其它的服务连接。过多的话会占用内存,一个TIME_WAIT占用4k大小解决方法相关参数优化调整(当然得根据服务器的实际情况配置,这里着重讲参数意义):既

2020-10-16 17:30:45 1061 1

原创 通过docker部署的redis,怎么样进入docker 下的redis-cli客户端呢

查看进项Id运行docker ps进入Redis-cli客户端命令行:docker exec -it 5862ac8c1778 redis-cli通过名字也可以docker exec -it redis-deng redis-cli如果有密码,要进行授权才能进行操作,否则汇报权限不够,(error) NOAUTH Authentication required.auth “你的密码”如图授权后可以进行操作了,如下写在最后操作起来相对来说比较简单...

2020-10-15 18:22:26 4057

原创 通过EventTime演示Kafka与Flink集成代码

前言本例模拟中将集成Kafka与Flink:Flink实时从Kafka中获取消息,每隔10秒去统计机器当前可用的内存数并将结果写入到本地文件中。环境准备Apache Kafka 0.11.0.0Apache Flink 1.3.1Gradle 3.5 (版本号不是强要求)本例运行在Windows环境,但可以很容易地移植到其他平台上。创建Flink Streaming工程本例使用Intellij IDEA作为项目开发的IDE。首先创建Gradle project,group为’huxihx.f

2020-10-14 17:27:04 461

原创 BigDecimal工具类,仅此一篇足以

前言需要计算的场景绕不过去会使用BigDecimal类,可频繁的判空让代码可读性下降也使代码冗余度增高,不判空又容易报空指针异常,而且有些场景下的计算,结果为空时需要返回null,所以也不可以将将BigDecimal类型的值都初始化为0,会让运算结果产生歧义。为解决上述痛点,于是整理了一个工具类供所有项目一起使用工具类支持功能加减乘除、累加、倍数运算。Integer、Long、Float、Double、String、Object转为BigDecimal。除法四舍五入并默认保留20位小数点。Bi

2020-10-13 20:00:09 3087

原创 你了解zookeeper的基本原理吗

CAP定理一个分布式系统不可能在满足分区容错性(P)的情况下同时满足一致性(C)和可用性(A)。在此ZooKeeper保证的是CP,ZooKeeper不能保证每次服务请求的可用性,在极端环境下,ZooKeeper可能会丢弃一些请求,消费者程序需要重新请求才能获得结果。另外在进行leader选举时集群都是不可用,所以说,ZooKeeper不能保证服务可用性。BASE理论BASE理论是基本可用,软状态,最终一致性三个短语的缩写。BASE理论是对CAP中一致性和可用性(CA)权衡的结果,其来源于对大规模互联

2020-10-12 20:12:00 110

原创 zookeeper客户端zkCli.sh 的增删改查

前言zk使用场景非常的多,今天收集了zk操作的客户端指令,供大家参考登录zk服务命令./zkCli.sh -timeout 5000 -server 127.0.0.1:2181客户端与ZooKeeper建立链接timeout:超时时间,单位毫秒r:只读模式,当节点坏掉的时候,还可以提供读服务登录成功显示如下:root@941881570b74:/apache-zookeeper-3.6.2-bin/bin# ./zkCli.sh -timeout 5000 -server 127.

2020-10-09 18:00:07 1189

原创 Flink的window窗口计算

window 类型Keyed 和 Non-Keyed:根据上游算子是否为KeyStream类型,如果是则为Keyed窗口,不是则为Non-Keyed窗口。Keyed使用window方法,Non-Keyed使用windowsAll方法。。。

2020-10-06 21:48:21 226

转载 kafka auto.offset.reset latest earliest 详解

前言auto.offset.reset关乎kafka数据的读取,是一个非常重要的设置。常用的二个值是latest和earliest,默认是latest一,latest和earliest区别1,earliest 当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费2,latest 当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,消费新产生的该分区下的数据提交过offset,latest和earliest没有区

2020-10-04 23:00:56 6054 3

原创 flink命令行提交是什么

很多人问我flink命令行怎么提交的,现在我写在博客上,希望大家可以查看博客,也不用我再一一回答了,如下图-c: 运行包所在main函数的类名全路径,-p: 并行度jar包及路径,host:主机post:端口...

2020-10-03 21:37:07 451

转载 关于缓存穿透、缓存雪崩、热点数据失效问题的解决方案!

前言昨天晚上接到阿里的电面电话,过程中就问到了关于缓存相关的问题。虽然以前接触过,多多少少了解了一些。但是之前自己并没有好好记录这些内容,在真正面试的时候,并没有回答得出来。今天记录一下,长长记性。在我们的平常的项目中多多少少都会使用到缓存,因为一些数据我们没有必要每次查询的时候都去查询到数据库。特别是高 QPS 的系统,每次都去查询数据库,对于你的数据库来说将是灾难。今天我们不牵涉多级缓存的知识,就把系统使用到的缓存方案,不管是一级还是多级的都统称为缓存,主要是为了讲述使用缓存的时候可能会遇到的一

2020-10-02 20:06:02 403

原创 CountDownLatch的理解和使用

CountDownLatch的理解和使用在笔者想要了解Thrift时候,找到一个博主写的系统间通信技术的架构设计,在了解和学习的过程中遇到很多小问题和基础知识,自己还是不够清楚,就查询和总结下。因为笔者也都是从网上找的一些资料,好的资料笔者都是自己收敲一遍,这样觉得能够加深下印象,引发更多的思考,毕竟很多时候笔者感觉自己都是七秒的记忆。在第一篇文章中遇到了一个CountDownLatch同步计数器,当计数器数值减为0时,所有受其影响而等待的线程将会被激活,这样保证模拟并发请求的真实性。CountDo

2020-10-01 21:01:43 224

nacos-mysql.sql 为nacos链接mysql数据库的脚本,包括初始化数据

nacos-mysql.sql 为nacos链接mysql数据库的脚本,包括初始化数据

2022-10-18

flinkdemo.rar

flinkdemo, 里面分别介绍了流式计算的单词统计,聚合,从kafka的数据生产,到flink从kafka消费再写入mysql,源是mysql消费数据再写入目标数据等一系列的代码,经过测试,完成能运行的

2020-09-25

最新的税收分类编码表

最新最全的税收分类编码表,各种大类商品进行精确的匹配,分类精确可靠。通过税局官网整理后获得,花费了不少精力哈

2020-09-22

completabletuture使用

completabletuture使用方法介绍,每个方法都进行了测试,使用sprintboot,也可以直接使用java文件进行测试

2020-08-19

springboot 整合消息队列kafka(kafka-with-springboot.rar)

springboot整合kafka消息队列,提供了完整的demo,可以供初学者或对有一定经验的童鞋学习使用,里面demo是经过测试,完全可用的

2020-08-19

基于RateLimiter的令牌桶算法实现限速控制和计算法实现限流控制

本demo适用于分布式环境的基于RateLimiter令牌桶算法的限速控制与基于计数器算法的限量控制,可应用于中小型项目中有相关需求的场景(注:本实现未做压力测试,如果用户并发量较大需验证效果)。

2020-08-01

建造者模式源代码---BuilderDemo.rar

这是一个简单的建造者模式的开发demo,对于想了解设计模式的童靴还是有一定的学习和借鉴的作用。源代码都是经过自己测试,完全可用

2020-06-27

装饰器模式的简单demo

简单了说明,并用代码的方式解释了什么是装饰器模式,方便想要学习设计模式的童靴可以更好的学习和掌握设计模式,是自己的代码变得更高效和优雅

2020-06-27

静态代理和动态代理Demo

资源列举了设计模式中的静态代理和动态代理的简单java实现,jdk1.8版本经过测试验证,对于想学习设计模式的童靴应该有所帮助

2020-06-24

责任链设计模式开发的demo

写了几个实现责任链模式的代码,仅供参考,环境jdk1.8,代码完成可用,经过测试的,对于初学者还是有一定的帮助,

2020-06-23

ForkJoinUtil.java,一个分而治之的框架工具类

Fork/Join框架的测试demo,含源代码。 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结果。比如计算1+2+。。+10000,可以分割成10个子任务,每个子任务分别对1000个数进行求和,最终汇总这10个子任务的结果

2020-06-17

ImportServiceImpl.java

通过上传excel文件,使用poi读取excel的数据内容及图片信息,保存到数据库及服务器磁盘中,支持xls,xlsx两种格式

2020-06-16

Springboot+SpringCloud微服务架构demo

用Springboot 2.2.2.RELEASE,Spring Cloud Hoxton.SR1 搭建的最基本的微服务架构demo,供初学者学习springcloud使用,

2020-06-04

通过shell脚本,备份mysql数据库

linux系统通过shell脚本,备份mysql数据库,并通过定时任务的配置,每天在设定的时间内执行备份计划

2020-06-04

qt5-qtwebkit-5.212.20200324-1-omv4002.x86_64.rpm

成功安装Teamviewer的关键,解决:缺少libQt5WebKitWidgets.so的关键包。 以下是错误原文 --> 解决依赖关系完成 错误:软件包:teamviewer-15.5.3-0.x86_64 (/teamviewer_15.5.3.x86_64) 需要:libQt5WebKitWidgets.so.5()(64bit) >= 5.5 错误:软件包:teamviewer-15.5.3-0.x86_64 (/teamviewer_15.5.3.x86_64) 需要:libQt5WebKit.so.5()(64bit) >= 5.5 您可以尝试添加 --skip-broken 选项来解决该问题 您可以尝试执行:rpm -Va --nofiles --nodigest

2020-05-12

空空如也

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

TA关注的人

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