自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 rabbitmq实现分布式事务

代码理论参考链接https://blog.csdn.net/pastxu/article/details/124531593自我理解:生产端:通过建立一张消息表,消息表中的状态来实现数据是否发送到rabbitmq中,利用rabbitmq的消息确认机制更新消息发送状态,未发送成功的消息可以采用定时任务扫描重新发送这样保证生产端能闭环成功发送消息到rabbitmq消费端:同样利用rabbitmq的消息确认机制保证消息能够被消费,未正常消费的消息可以通过死信队列进行人工消费处理...

2022-06-08 18:42:55 222 1

原创 redis中的事务和watch

redis中的事务实际是将操作指令放在了一个队列QUEUE中,exec提交事务就是提交队列中的数据Multi 开启事务EXEC 提交事务Watch 可以监听一个或者多个key,在提交事务之前是否有发生了变化如果发生边了变化就不会提交事务,没有发生变化才可以提交事务 底层实际是通过(版本号码来实现的乐观锁)watch namemultiset name xiaoxiaoexecDiscard 取消提交事务Redis官方是没有提供回滚方法, 值提供了取消事务。...

2022-05-10 09:48:16 310

原创 cas中的ABA问题解决

package com.zl.jvm;import java.util.concurrent.atomic.AtomicStampedReference;/** * @description: cas aba问题 * @createTime:2022/5/5 14:44 * @version:1.0 */public class CasABA { //带时间戳的原子类,类似于数据库乐观锁的version private static AtomicStampedRefer.

2022-05-05 15:32:57 121

原创 springboot整合sharding-jdbc

yml配置server: # 程序端口 port: 8095spring: application: # 注册到 nacos 注册中心的服务名 name: iot cloud: nacos: discovery: # nacos 注册中心的地址 server-addr: 127.0.0.1:8848 freemarker: checkTemplateLocation: false main: .

2022-04-24 15:17:49 1367

原创 分布式锁的两种实现方式

1.基于redisson实现(本质redis)原理:SET my:lock 随机值 NX PX 30000  这个的NX的意思就是只有key不存在的时候才会设置成功,PX 30000的意思是30秒后锁自动释放。别人创建的时候如果发现已经有了就不能加锁了。  释放锁就是删除key,但是一般可以用lua脚本删除,判断value一样才删除 <dependency> <groupId>org.springframework.

2021-12-03 16:00:39 708

原创 字符串作为多线程的锁

1.有一种业务场景,多线程下处理大量数据字符串,我们希望相同的字符串只能同时被一个线程处理,这个时候就可以对字符串加锁,注意字符串要调用intern方法在JAVA虚拟机中,有运行时数据区,包含线程共享的:堆,方法区 和线程隔离的:程序计数器,Java虚拟机栈,本地方法栈.其中方法区包含一块取域,叫做常量池,因为String类型被用到的频率高,所以HotSpot将它放入了常量池.Intern()String.intern()是一个Native方法,它的作用是:如果字符常量池中已经包含一个等于此Str

2021-12-02 18:09:51 393

原创 基于双向链表实现LinkedList

package com.zl.jdk.hashmap;/** * @description: 双向链表 * @author:zhanglei * @createTime:2021/7/19 16:43 * @version:1.0 */public class ExtLinkedList<E> { //第一个元素 private Node first; //最后一个元素 private Node last; //链表大小 .

2021-10-27 13:45:08 96

原创 mysql常用优化方法

explain 分析执行sql的情况,包括索引等,用法如下:explain select a.*from t_iot_meter_warn a where a.meterno = 4 and a.TRIGNUM = 22 and a.WARNTYPECODE = 01PROCEDURE ANALYSE() 分析表的结构问题,比如一些字段类型,用法如下:select * from t_iot_meter_warn PROCEDURE ANALYSE()...

2021-09-27 21:26:31 45

原创 MySql组合索引

1.创建组合索引create index index_meterwarn_fuhe on t_iot_meter_warn(METERNO,TRIGNUM,WARNTYPECODE)2.查看索引使用情况explain select a.*from t_iot_meter_warn a where a.TRIGNUM = 22 and a.WARNTYPECODE = 01说明没有用到索引,以下几个个语句均用到:explain select a.*from t_iot_meter_wa

2021-07-07 15:09:15 4288

原创 jvm参数调优

-XX:+PrintGC 每次触发GC的时候打印相关日志-XX:+UseSerialGC串行回收-XX:+PrintGCDetails更详细的GC日志-Xms 堆初始值-Xmx 堆最大可用值-Xmn 新生代堆最大可用值-XX:SurvivorRatio用来设置新生代中eden空间和from/to空间的比例.-XX:NewRatio 配置新生代与老年代占比...

2021-07-07 15:02:17 64

原创 手写springIOC

springIOC主要是通过java实现,而容器主要就是一个ConcurrentHashMappackage com.zl.springIOC.utils;import com.zl.springIOC.ann.ExtResource;import com.zl.springIOC.ann.ExtService;import java.lang.reflect.Field;import java.util.List;import java.util.Map;import java.ut

2021-04-30 15:04:21 76 1

原创 spring嵌套事务问题

@Override public void addClassify(Classify classify) { classifyDao.insert(classify); addClassify2(classify); //int m = 1/0; } @Transactional public void addClassify2(Classify classify) { ...

2021-04-26 17:16:42 236

原创 netty5高级

netty服务器端package com.zl.netty.gaoji;import io.netty.bootstrap.ServerBootstrap;import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpooled;import io.netty.channel.*;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.S.

2021-04-14 17:56:53 108

原创 netty入门及使用

Netty 是一个基于 JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性。Netty是基于Java NIO client-server的网络应用框架,使用Netty可以快速开发网络应用,例如服务器和客户端协议。Netty提供了一种新的方式来开发网络应用程序,这种新的方式使它很容易使用和具有很强的扩展性。Netty的内部实现是很复杂的,但是Netty提供了简单易用的API从网络处理代码中解耦业务逻辑。Netty是完全基于NIO实现的,所以整个Ne.

2021-04-12 17:24:36 134

原创 设计模式之代理模式

什么是代理?通过代理控制对象的访问,可以详细访问某个对象的方法,在这个方法调用处理,或调用后处理。既(AOP微实现),AOP核心技术面向切面编程。静态代理静态代理需要自己生成代理类public class XiaoMing implements Hose { @Override public void mai() { System.out.println("我是小明,我要买房啦!!!!haha "); }}class Proxy implements H...

2021-04-09 17:06:10 57

原创 设计模式之单例设计模式

单例设计模式单例保证一个对象JVM中只能有一个实例,常见单例 懒汉式、饿汉式什么是懒汉式,就是需要的才会去实例化,线程不安全。什么是饿汉式,就是当class文件被加载的时候,初始化,天生线程安全。package com.zl.design;/** * @author zhanglei * @description : 单例设计模式 * @date 2021/4/9$ 15:17$ * @return $ */public class SingletonDemo { ..

2021-04-09 15:47:35 38

原创 自定义注解实现基本ORM

主要实现思路,自定义注解+反射package com.zl.annotion;import jdk.nashorn.internal.runtime.logging.Logger;import java.lang.annotation.*;import java.lang.reflect.Field;/** * @author zhanglei * @description : 自定义注解实现简单ORM * @date 2021/4/9$ 10:48$ * @return $

2021-04-09 11:37:35 177

原创 java中的各种锁

悲观锁:悲观锁悲观的认为每一次操作都会造成更新丢失问题,在每次查询时加上排他锁。每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Select * from xxx for update; (这个for update就是在加锁,只能有一个连接操作该数据,其他的全部阻塞)乐观锁:总是假设最好的情况,每次去拿数据的时候都认为别人不会.

2021-04-08 17:09:11 65

原创 线程池原理

corePoolSize: 核心池的大小。 当有任务来之后,就会创建一个线程去执行任务,当线程池中的线程数目达到corePoolSize后,就会把到达的任务放到缓存队列当中maximumPoolSize: 线程池最大线程数,它表示在线程池中最多能创建多少个线程;keepAliveTime: 表示线程没有任务执行时最多保持多久时间会终止。unit: 参数keepAliveTime的时间单位,有7种取值,在TimeUnit类中有7种静态属性:Java通过Executors(jdk1.5并发包...

2021-04-08 11:25:00 39

原创 java利用BlockingQueue(可阻塞)模拟队列

package com.zl.thread;import java.util.concurrent.BlockingQueue;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;/** * @author zhanglei * @description : * @date.

2021-04-07 14:29:47 78

原创 java并发包Semaphore的用法

Semaphore是一种基于计数的信号量。它可以设定一个阈值,基于此,多个线程竞争获取许可信号,做自己的申请后归还,超过阈值后,线程申请许可信号将会被阻塞。Semaphore可以用来构建一些对象池,资源池之类的,比如数据库连接池,我们也可以创建计数为1的Semaphore,将其作为一种类似互斥锁的机制,这也叫二元信号量,表示两种互斥状态。它的用法如下:availablePermits函数用来获取当前可用的资源数量wc.acquire(); //申请资源wc.release();// 释放资源

2021-04-06 11:49:22 73

原创 java内存模型

java内存模型主要是多线程之间变量如何通信,主要每个线程有个自己的临时内存,线程之间的通信都要先经过主内存才行可参考:https://blog.csdn.net/byhook/article/details/83038796

2021-03-26 16:59:14 53

原创 线程安全

package com.zl.thread;/** * @author zhanglei * @description : 模拟两个线程抢火车票场景 * @date 2021/3/26$ 14:29$ * @return $ */class HcThread implements Runnable{ private int count = 100; private Object suo = new Object(); public void run() { .

2021-03-26 16:02:28 34

原创 2021-01-19

vue中覆盖或修改框架中的样式当设置的样式为scope时样式前加上::v-deep 不为scope直接填写,例如覆盖iview框架中的drawer的样式:::v-deep .ivu-drawer-header { background: white;}

2021-01-19 16:48:13 53

原创 linux上shelle脚本

判断进程一直运行,如果进程挂掉,则新启动一个进程,设置为每10s扫描一次此处需要在crontab中设置1分钟执行一次以下脚本#!/bin/bashstep=10for (( i = 0; i < 60; i = (i+step) )); do pid="$(cat /home/ffmpeg/cmd.pid)" mm="$(ps -ax | awk '{ print $1 }' | grep -e "^${pid}$")" echo $mm if [ -z "...

2020-11-25 18:24:54 289

原创 docker常用命令

1.制定固定ip启动容器docker run -itd --name mongo --network mynetwork --ip 172.18.0.2 mongo bash2.查看容器信息;docker inspect 容器id

2020-11-09 09:29:47 85

原创 调用spark中的reduceByKey的坑

上图找不到reduceByKey方法,主要是rdd2可能为空的情况,而reduceByKey只能给确定的(k,v)使用,这种不确定性导致无法调用reduceByKey,修改为下面的就好了可以看到将if去掉就可以调用了...

2020-04-05 11:19:00 992

原创 腾讯云scrapy定时爬虫

1.定时执行的.sh脚本 --->/zhanglei/sh/scrapySchedule.shcd /zhanglei/python/scrapy_project/zl1/zl1 //到达scrapy项目目录(必须写,不然报找不到scrapy)/usr/local/python3/bin/scrapy crawl zlsp1 //开始执行爬虫1/usr/l...

2019-12-21 14:39:42 235

原创 shell报错:/bin/sh^M: bad interpreter: No such file or directory

测试shell#!/bin/shecho "test shell"12运行,报错[root@localhost test]# ./test.sh -bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory 12原因test.sh 是在windows下进行编辑然后上传到linux下的,...

2019-12-21 11:44:43 123

转载 Linux下Crontab的格式及含义

crontab的基本格式:f1  f2  f3  f4  f5  command分  时 日  月  周  命令第一列f1代表分钟1~59:当f1为*表示每分钟都要执行;为*/n表示每n分钟执行一次;为a-b表示从第a分钟到第b分钟这段时间要执行;为a,b,c,...表示第a,b,c分钟要执行第二列f2代表小时0~23(0表示凌晨):当f2为*表示每小时都要执行;为*/n表...

2019-12-14 13:17:12 137

原创 git常用命令操作

git pull 拉取代码git add -A提交所有变化(包括删除、新增、修改)git commit -m "注释" 本地仓库提交git push origin master 推送参考 :https://blog.csdn.net/nimoyaoww/article/details/78985041...

2019-12-13 09:27:23 70

原创 linux上部署springboot项目

确保maven的环境配好了,在Terminal窗口中执行 mvn clean install -Dmaven.test.skip=true这时已经打包成功了,可以在project结构中可以看到多了一个target包,打包好的jar包就在下面执行#nohup java -jar demo-0.0.1-SNAPSHOT.jar &命令,执行这个命令后台就可以启动这个jar...

2019-12-03 13:29:12 350

转载 linux上安装nginx,并且部署vue项目

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel//创建一个文件夹cd /usr/localmkdir nginxcd nginx//下载tar包wget http://nginx.org/download/nginx-1.13.7.tar.gztar -xvf nginx-1.13....

2019-12-03 13:12:14 1459

原创 linux上安装python,pip,scrapy

1、下载python3.6的安装包: wgethttps://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz2、解压后,进入到解压目录下,执行如下命令,将python3.6进行编译,如下是将python的环境编译到/usr/local/python3的目录下,注意先创建该目录:./configure –prefix=/usr/l...

2019-12-03 13:04:12 250

原创 springboot 解决跨域问题

package com.zl.projectone;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.cors.CorsConfiguration;imp...

2019-12-01 19:10:53 72

原创 vue利用webpack搭建项目

vueinitwebpackwebpack-multipage//创建项目cdwebpack-multipage//进入webpack-multipage目录npminstall//下载依赖npmrundev//运行安装饿了么vue插件npm i element-ui -S...

2019-11-29 15:48:49 72

原创 比较两个List是否相同(利用hashCode比较)

1.利用eclipse中自动重写hashCode和equals对象@Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + age; result = prime * result + ...

2019-06-26 16:32:32 2014

原创 weblogic下查询系统日志

查询系统服务器的请求日志/u01/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/logs 命令:tail -fn30 access.log 获取请求地址,请求状态,返回数据信息。命令:tail -fn30 AdminServer.log获取系统报错和系统内存剩余...

2019-06-18 10:07:25 4783

原创 数据库错误定位(to_date日期格式错误数据定位)

定位到具体id(在工具中的DBMS Output输出台看)DECLARE v_date DATE; BEGIN FOR aRecord IN (SELECT * FROM EPB.EBW2_ONE_SL_SCHEDULE_PORT P WHERE P.EVENT_CODE = 'EDD') ...

2019-04-23 15:37:00 1136

原创 EXCEL中设置滚动条初始位置在最左边

打开excel右键sheet--&gt;查看代码--&gt;添加如下代码:Private Sub UserForm_Activate()  Dim i  For i = 1 To 100    Application.SendKeys "{RIGHT}"  NextEnd Sub

2018-05-09 14:56:34 2809

空空如也

空空如也

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

TA关注的人

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