自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 0-MQTT基础使用教程【学习】

​ MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。一个使用MQTT协议的应用程序或者设备,它总是建立到服务器的网络连接。

2024-02-03 21:24:53 816

原创 GitLab通过CI/CD 实现流水线部署(演示主要是通过shell上传SpringBoot项目)

gitlab 通过ci/cd实现流水线部署

2022-11-21 10:43:09 1130 2

原创 SpringBoot 自定义properties获取值(此方法可以适用于调用第三方接口)

SpringBoot 自定义properties获取值可以通过此方法,去实现调用其他接口或者第三方接口,这样的话可以代码更加整洁,方便其他人员查找。1.首选需要准备好properties文件:需要注意的地方:本人采用的是SpringBoot框架,properties编写的位置是在resources文件夹下(基本上都是明白是做什么的,此处就不做过多的赘述)如下图所示:2.编写对应的配置类:配置文件,重点是需要将PropertySource和ConfigurationPropertie

2021-07-06 14:34:17 510

原创 FastDFS 分布式存储系统搭建以及使用

FastDFS 分布式存储系统搭建以及使用主要适用于图片等文件的存储,使用docker可以快速的实现搭建。FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重 高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下

2021-06-28 00:00:52 329

原创 Redis+分布式锁实现发红包抢红包Java版

Redis+分布式锁实现发红包和抢红包:直接上图:上图为发红包和抢红包的整体业务逻辑(当然,这个只是比较简单的版本,只有发红包和抢红包功能,后期继续完善);controller层 /** * 发红包请求 * @param dto 发红包需要的实体 * @param result 获取校验信息 * @return */ @PostMapping("/hand/out") public BaseResponse handOut(@Requ

2021-03-23 10:02:30 675 1

原创 zookeeper的基本使用+Linux

zookeeper:1. zookeeper入门级介绍:zookeeper是什么?1) 用设计模式来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生改变,zookeeper就讲负责通知已经在zookeeper上注册的那些观察者做出相对应的反应,从而实现集群中类似Master/Slave管理模式。此处的zookeeper和redis中的哨兵机制是一样的。2)一句话解释:zookeeper=类似Linux文件系统+通

2020-07-14 17:04:40 611 2

原创 Linux高级命令+查看整机性能,CPU性能,内存和硬盘

Linux高级指令:以前写过一篇关于Linux基础指令的使用。现在想添加一篇Linux高级指令的博客。如果想了解Linux基础指令的,可以点击链接。1.首先查看整机的性能:使用top指令:1)我们首先需要看一下load average:中三个值之和是否大于0.6。他们三个值分别代表着1分钟,5分钟和15分钟整机的负载均衡值。2)查看id的值(此处的id是为空闲率)空闲率越大,说明系统性能越好(这个是和硬件有关系的,我们暂不做讨论)3)zombie:占用越大,系统就越差。直接查看下面表格中的

2020-07-14 16:59:35 716

原创 反射:通过配置文件去读取相关属性

利用反射,去读取配置文件里边的内容import java.io.InputStream;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.Properties;public class EmpReflect { public static void main(String[] args) throws Exception { //1.利用反射获取实体类

2020-06-08 10:32:01 175

原创 list集合实现自定义排序

1.基本数据类型的简单排序public class Demo01 { public static void main(String[] args) { List<Integer> list = Arrays.asList(1,5,2,0,-1); Collections.sort(list); System.out.println(list); }}(1)Collections.sort(list)分析:@Suppress

2020-06-08 09:51:30 5930

原创 mycat中间件+mysql集群

1.定义:多角度描述:一个彻底开源的,面向企业应用开发的大数据库集群支持事务、ACID、可以替代 MySQL 的加强版数据库一个可以视为 MySQL 集群的企业级数据库,用来替代昂贵的 Oracle 集群一个融合内存缓存技术、NoSQL 技术、HDFS 大数据的新型 SQL Server结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品一个新颖的数据库中间件产品2.优势:基于阿里开源的 Cobar 产品而研发,Cobar 的稳定性、可靠性、优秀的架构和性能以及众 多成熟的使用案

2020-05-21 22:39:41 264

原创 Java使用阿里云短信服务+阿里云短信服务整合redis使用

1.前期准备:​ 现在的网站,越来越多的人开始使用验证码的方式来进行验证,下面将粗略的展示一下。​ 收费标准:可以直接参考阿里云给出的官方价格。小于70字的价格0.045元/条。​ 在自己的阿里云账户里边,要先先充值一点钱,这样在后面代码开发测试的时候,不会出现报错的现象。1)充值:2)准备AccessKey和密码:(这个涉及到个人隐私,大家一定需要保护好,如果发现泄漏的,可以及时在阿里云平台做出对应的措施。)3)生成AccessKey和密码:(此处本人踩了第一个坑,大家一定要注意)如

2020-05-21 10:39:38 5116 3

原创 mycat分库分表具体操作

一、务理解:​ 垂直切分​ 业务维度水平切分数据维度混合切分业务+数据2.定义基于MySQL的数据库中间件,用来协调切分后的数据库,使其可以进行统一管理逻辑库数据库集群对外的统一访问入口3.思路:1.schema.xml配置参数:逻辑库,逻辑表,数据节点,节点主机2.rule.xml3.server.xml4.基础概念:1.schema.xml 逻辑库,逻辑表,数据节点,节点主机附注:balance=“0”---->不进行读写分离writeHost------

2020-05-21 07:34:32 145

原创 mysql集群+docker镜像+主从复制

1.主从复制原理:mysql主(master)从(slave)复制的原理:(1)master讲数据改变记录到二进制日志(binary log)中,也即是配置文件log-bin指定的文件(这些记录叫做二进制事件,binary log events)(2)slave讲master的binary log events拷贝到他的中继日志(relay log)(3)slave重做中继日志的事件,将改变反映它自己的数据(数据重演)总结:主库(master)中有一个二进制文件通过I/O线程关联到从库中的二进制

2020-05-20 18:30:13 404

原创 CountDownLatch/CycliBarrier/Semaphore线程并发问题

1.CountDownLatch:(减:倒得计数器)让一些线程阻塞直到另一个线程完成一系列操作后才被唤醒。CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用线程会被阻塞。当它线程调用countDown方法会将计数器减1(调用countDown方法的线程不会阻塞),当计数器的值变为0时,因调用await方法被阻塞的线程会被唤醒,继续执行。public class CountDownLatchDemo { public static void main(Stri

2020-05-20 00:10:26 160

原创 Java锁:公平锁、非公平锁、可重入锁(递归锁)、自旋锁、独占锁

1.公平锁和非公平锁:公平锁:是指多个线程按照申请锁的顺序来获取锁,类似排队打饭,先来后到。非公平锁:是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁在高并发的情况下,可能会造成优先级反转或者饥饿现象。公平锁/非公平锁并发包中ReentrantLock的创建可以指定构造函数的boolean类型来得到公平锁或非公平锁,默认是非公平锁。两者区别:公平锁,就是很公平,在并发环境中每个线程都在获取锁时会先查看此锁维护的等待队列,如果为空,或者当前线程是等待队列的

2020-05-20 00:01:36 262

原创 list、set、map集合出现的问题 java.util.concurrentModificationException(并发修改异常)

1.集合类不安全之并发修改异常之list:1)如果直接new一个ArrayList的话,它的长度默认为10.2)如果超过10,就会扩容原空间的一半。会出现:java.util.concurrentModificationException(并发修改异常)处理问题的四步骤:(1)故障现象:​ 主要是出现了什么样的的异常。(2)导致原因:​ 并发修改异常导致的是哪些问题。(3)解决方案:​ 使用Vector()但是并发能力有问题。​ 使用Collections.sunchronizedLi

2020-05-19 22:22:02 405

原创 CAS底层实现原理和解决ABA问题

1.CAS:CAS(CompareAndSet)是比较之后并交换;/** * 1.CAS 是什么?==》compareAndSet * 比较并交换:期望值和主内存中的值要是一样的话,就把值更新并快照到主内存中 */public class CASDemo { public static void main(String[] args) { AtomicInteger atomicInteger = new AtomicInteger(5); Syste

2020-05-19 22:07:00 826 2

原创 JUC中的Lock和读写锁的介绍

1.实现线程安全的是那种方法:用于解决多线程的安全的三种方法:同步方法、同步代码块、同步锁其中同步方法和同步代码块用的是synchronized修饰的,它是属于隐式锁。在 JDK 1.5之后出现同步锁Lock(显示锁)注意:需要通过lock()的方法进行上锁,必须通过unlock()方法释放锁。在Java 5.0之前,协调共享对象的访问时,可以使用的机制只有synchronized和volatile。Java5.0后增加了一些新的机制,但并不是一种代替内置锁的方法,而是当内置锁不适用时,作为一种

2020-05-11 09:24:06 218

原创 JUC线程创建,volatile内存可见性CAS算法模式和ConcurrentHashMap基础原理

1.线程的四种创建方式:1.直接继承Thread的方式去实现线程的创建:/** * 创建线程方式一: */public class test01 { public static void main(String[] args) { ThreadDemo01 threadDemo01 = new ThreadDemo01(); threadDemo01.start(); }}class ThreadDemo01 extends Thread {

2020-05-11 00:10:54 204

原创 Redis的分片机制+哨兵机制+集群

1.自定义注解,编辑AOP切面:1.自定义注解:/** * 该注解主要实现查询操作. * 有缓存查询缓存,没缓存查询数据库 * 操作规范: * key: * 1.用户没有赋值 * 如果key为"",表示用户使用自动生成的key * key:包名.类名.方法名.拼接第一个参数 * 2.如果用户赋值 * key:使用用户的数据 * second...

2020-05-08 10:27:34 716

原创 注解的初步常见以及注意事项

1.注解的官网定义:注解是一种元数据形式,即注解是属于Java的一种数据类型,和类、接口、数组、枚举类似。注解用来修饰类、方法、变量、参数、包注解不会对锁修饰的代码产生直接的影响2.创建注解步骤:第一步:定义注解--相当于定义标记;第二步:配置注解--把标记打在需要用到的程序代码中;第三步:解析注解--在编译期或者运行时检测到标记,并进行特殊操作。3.具体操作:/* 操作规...

2020-05-08 07:28:52 228

原创 Linux操作Redis的安装,测试

Redis的相关操作1.下载和安装1.上传redis安装包(个人比较喜欢使用xshell,直接进入到指定的文件夹下面,拖拽进去即可)2.解压redis:tar -xvf redis-5.0.tar.gz3.编译和安装:​ 要求:在redis根目录中执行(此处解压过之后的文件夹已经被我修改成redis)​ 编译:make​ 安装:make install4.修改redis配置文件...

2020-05-05 22:48:55 268

原创 Linux常用的命令以及Linux安装JDK

1.CD命令集:ifconfig 检查IP地址pwd 检查当前文件路径cd命令:是Linux中最基本的命令语句,必须熟练掌握。cd / 返回根目录cd~ 用户主目录cd . 当前目录cd … 返回到上一级目录cd /usr/进入到usr目录cd - 返回上一个目录cd 直接回家2.ls目录和文件ls -l 详细格式,文件权限,时间ll 和ls -l作用相...

2020-05-05 22:07:51 382

原创 nginx的使用nginx的服务集群

1.反向代理说明:当用户发起请求时,首先请求被nginx(此处可以理解为转化器)拦截。根据背部配置文件的约定。将请求的URL地址进行替换。由转换器发起请求,去访问真实的网络资源,之后由转化器将资源交还给用户的过程。核心特点:用户无需关心真实的服务器资源到底是谁,由代理服务器代替用户访问。2.正向代理:核心特点:用户了解自己访问的资源的位置。并且由用户自己去获取真实的资源。3.ng...

2020-04-28 20:37:54 1179

原创 Linux安装docker容器和Redis步骤

一、准备工作:1.首先需要获取到虚拟机中 的IP地址:ifconfig==》![](https://img-blog.csdnimg.cn/20200414193145329.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FfcnV...

2020-04-14 19:54:48 868

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

23中设计模式之单例模式单例模式:1.单例模式介绍:2.单例设计模式八种方式:2.1 饿汉式(静态常量)2.2饿汉式(静态代码块)2.3懒汉式(线程不安全)懒汉式(线程安全,同步方法)2.5懒汉式(线程安全,同步代码块)2.6双重检查(推荐使用)2.7静态内部类2.8枚举3.JDK中使用单例模式的案例:4.单例模式注意事项和细节说明单例模式:1.单例模式介绍:所谓的单例模式,就是采取一定的方...

2019-12-22 23:00:24 61

gitLab安装GitLabCI/CD需要的软件(包含maven+git+gitrunner+jdk)

为了方便安装GitCICD流水线部署,所以上传了这些软件,亲测有用。已经根据这些软件进行了安装,是没有问题的。

2022-11-21

逆向工程3.0.exe

直接按照对话框的要求,可以直接生成SSM的逆向工程。注意:数据库在连接的时候,一定要注意点击下一步之后,会显示你数据库中所有的表,需要哪些直接点击即可。里面有案例,可以直接参考案例生成。

2020-04-23

空空如也

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

TA关注的人

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