自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黄嚯嚯

于浩歌狂热之际中寒,于天上看见深渊

  • 博客(83)
  • 资源 (3)
  • 收藏
  • 关注

原创 Lombok常用注解使用方式和Lombok的@EqualsAndHashCode(callSuper = false)存在的问题

在认识 @EqualsAndHashCode 这个注解之前 , 我么首先需要知道 Lombok ,一 : Lombok 简介Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。Lombok 常用注解:@Setter :注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成sette...

2020-07-22 20:57:57 4059

原创 Intellij热部署插件Jrebel安装详解(2020新版或以前旧版)

一 , 下载安装Jreble1、在IDEA中一次点击 File->Settings->Plugins->Brows Repositories 2、在搜索框中输入JRebel进行搜索 3、找到JRebel for intellij 4、install ...

2020-07-17 16:36:38 7016 4

原创 Linux安全之安装Snort(轻量级入侵检测系统)与使用

入侵检测系统(IDS)1、原理入侵检测系统(IntrusionDetectionSystem,IDS)是一种主动保护自己免受攻击的一种网络安全技术。作为防火墙的合理补充,入侵检测技术能够帮助系统监测攻击行为,扩展了系统管理员的安全管理能力(包括安全审计、监视、攻击识别和响应),提高了信息安全基础结构的完整性。它从计算机网络系统中的若干关键点收集信息,并分析这些信息。入侵检测被认为是防火墙之后...

2020-02-07 13:13:20 7548

原创 关于 Introspector 内省器在项目中的简单应用

内省(Introspector) 是Java 语言对 JavaBean 类属性、事件的一种缺省处理方法

2024-04-24 17:43:02 180

原创 [gateway] springframework.core.io.buffer.DefaultDataBufferFactory cannot be cast to class org.spring

【代码】[gateway] springframework.core.io.buffer.DefaultDataBufferFactory cannot be cast to class org.spring。

2023-04-27 11:35:25 548

原创 记录 Did you forget to include spring-cloud-starter-netflix-ribbon?

接下来的报错是因为 Nacos 高版本引起的 笔者使用的是2021.1>小事 , 本来不想记录的, 可是看度娘的搜索结果 , 都是另一句 "Debug - Feign: Did you forget to include spring-cloud-starter-loadbalancer" , 并没有收到有关 ribbon 的这个错误, 所以就想着在这里记录一下 , 主要版本如下网上收到的有关loadbalancer的解决办法大多都是 , 在spring-cloud-starter-a

2023-04-03 16:46:19 1557 1

原创 浅谈因为项目中的Logback于Nacos的Logback冲突导致的项目启动失败 ERROR in ch.qos.logback.core.rolling.RollingFileAppender[CO

环境 : Nacos 2.2.1 , Spring-cloud Hoxton.SR1 , com.alibaba.cloud.version 2.2.8 (最近新搭建了一次虚拟机, 然后重新部署了Nacos , 同时也在一个新项目里引入了Nacos 的服务注册功能 , 以下是服务Pom版本管理配置然后再实际使用模块pom文件中引入服务注册和配置管理application.ymal 的配置如下。

2023-03-31 14:20:42 8762 2

原创 CentOS7 yum报错 :another app is currently holding the yum lock;waiting for it to exit

CentOS7 yum报错 :another app is currently holding the yum lock;waiting for it to exit

2023-03-23 14:50:09 671

原创 FileInputStream 在使用完以后,不关闭流,想二次使用可以怎么操作

FileInputStream 在最后会通过open(name) 这个方法打开文件,open()会调用open0(), open0()是一个native方法,实现不是java,看到注释,大概的意思就是指定文件路径,然后可以打开进行读操作。那反射要实现,需要获取哪个方法呢?注意这里是FileInputStream,是一个字节流不要出现中文字符否则会乱码。既然知道open() 方法,那就可以用反射了,注意这个方法是private。很明显看到这个第二次的输出是没有任何结果的。Java的反射是个什么东西?

2023-03-13 15:07:29 1511

原创 Java根据Ip获取地址详细信息

笔者这里使用的是ali的开放api 的url , 所以需要使用htttp 形式调用,至于调用方式多种多样, 我这里挑一个就很简单的 Rest Template来使用。

2022-12-08 17:06:52 249

原创 一个合格的后端开发总要经历一次死锁吧

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。例如,如果进程A锁住了记录1并等待记录2,而进程B锁住了记录2并等待记录1,这样两个进程就发生了死锁现象。

2022-11-15 11:29:12 232

原创 通过手撸HashMap来了解底层原理

这一篇呢 , 我们来手写一个简单的HashMap,所谓HashMap,就是一个映射表。然后底层是数组加链表形式(Jdk1.7) 的存储形式 , 在Jdk1.8的时候 , 将这种存储形式更改成为了数组加链表加红黑树形式 , 相较于之前的改动是在链表达到一定阈值的时候 ,链表长度超过8时树化 . 将链表更改为查询速度更快的红黑树. 今天我们主要从Jdk1.7入手 , 来实现一个简易版的HashMap , 至于为什么是简易版的, 这里稍微做下说明, 原因是因为 , HashMap的源码中针对 pu

2022-07-11 21:35:10 328 2

原创 Thread线程异常的处理方式

我们都知道当程序运行出错时 , 会出现异常 , 并有异常信息输出 , 且如果不对异常进行捕获处理的话 , 是会影响到代码的执行的 . 但是如果在线程中出现异常, 则不然, 线程中出现的异常是没办法进行上抛捕获的 , 一般大家遇到这种情况都是在线程内进行异常捕获处理 , 但如果我现在需要将异常抛出, 告知主进程呢 ?首先我们需要知道 , 异常分为两类 ,分别是编译时异常和运行时异常 , 定义方法时,必须声明所有可能抛出的异常。在调用该方法时,必须手动捕获它的checked E

2022-07-04 11:36:00 1985

原创 main 方法中开了线程后 , 子线程导致主线程不退出

Java分为两种线程:用户线程和守护线程所谓守护线程是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。因 此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在运行,程序就不会终止。...

2022-07-01 16:30:49 907

原创 java多线程并发环境下为什么使用while而不用if

目录前言一 . 使用if所引发的问题1.1 虚假唤醒 1.2 虚假唤醒代码示例 1.3 解决虚假唤醒二 . 为什么用while就能解决问题结论再开始本文之前 , 先给大家看一张图 , 这是Object.wait()的源码介绍 , 翻译过来内容如下我们在使用线程时,进行条件判断时,往往会先考虑使用if进行判断,在线程进行等待时就会出现不确定的结果。先来看看两个线程下的操作。首先创建一个模拟业务类, 也是一个经典案例 "生产者&消费者" 然后分别创建补货/售货两个线程 , 用来模拟后续的动作接下来创

2022-06-30 15:12:26 1380 2

原创 为什么MySQL选择REPEATABLE READ作为默认隔离级别?

前面我们说过,Oracle只只支持ANSI/ISO SQL定义的Serializable和Read Committed,其实,根据Oracle官方文档给出的介绍,Oracle支持三种隔离级别:即Oracle支持Read Committed、Serializable和Read-Only。Read-Only只读隔离级别类似于可序列化隔离级别,但是只读事务不允许在事务中修改数据,除非用户是SYS。在Oracle这三种隔离级别中,Serializable和Read-Only显然都是不适合作为默认隔离级别的,那么就只

2022-06-28 15:10:58 360

原创 Mysql表锁、行锁、锁机制解析

MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁();BDB 存储引擎采用的是页面锁(),但也支持表级锁;InnoDB存储引擎既支持行级锁(),也支持表级锁,但默认情况下是采用行级锁。如果用户想要显示的加锁可以使用以下命令:1 . 行级别锁 共享锁: 用法: SELECT ... LOCK IN SHARE MODE; MySQL会对查询结果集中每行都添加共享锁。 锁申请前提:

2022-06-27 15:55:16 734

原创 数据库事务原理

数据库事务(transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。首先我们需要明确几个前提:如果执行多条SQL语句,这些语句对数据库的操作不是原子性的。一个事务分为:开启、执行、提交三个阶段。只有事务提交了数据才算做有效。数据库事务存在的意义就是保证对数据库操作的准确性 , 保证数据库操作准确性的便是事务的四大特性 原子性:事务开始后的所有操作要么成功要么失败一致性:事务的

2022-06-24 15:41:36 824

原创 为什么一个事务能读取到其他事务的数据?

首先我们需要明确几个前提:如果执行多条SQL语句,这些语句对数据库的操作不是原子性的。一个事务分为:开启、执行、提交三个阶段。只有事务提交(commit)了数据才算做有效。 根据前提3 可以得出结论 , 就是只有事务提交了数据才算做有效,才会真正的修改/新增到数据库 , 在这之前在事务里面做的所有操作都只是记录在事务的日志里面 , 并不会真正的刷新到数据库 , 所以也就说明了 , 为什么一个正在运行的事务, 可以读到另一个事务未提交的数据 , 当然了这种情况大多数出现在并发情况下.

2022-06-24 11:03:27 865

原创 Docker容器监控可视化cAdivisor+InfluxDB+Grafana

Docker容器监控工具,cAdvisor+InfluxDB+Grafana

2022-02-23 10:34:27 1357

原创 使用Maven构建项目Docker镜像并上传至阿里云镜像仓库

前言前面介绍了Docker的一些安装、镜像加速、构建镜像 并推送至服务器 , 今天在前面的基础上新增配置 , 使项目可以具备构建镜像后将包推送至远端仓库的能力​​​​​​Docker是什么?有什么优点?应用场景?_黄嚯嚯-CSDN博客Linux安装Docker步骤_黄嚯嚯-CSDN博客Docker配置使用阿里云加速镜像_黄嚯嚯-CSDN博客使用Maven构建项目Docker镜像_黄嚯嚯-CSDN博客注册阿里云账户由于本次展示的是将构建后的镜像推送至阿里云的镜像仓库 , 所.

2022-02-17 15:54:44 2425 1

原创 记录问题/usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory 解决

起因:因为误操作,或者什么之类的导致环境出现多个python版本 , 所以导致的有相关python环境变量定义的脚本执行失败解决办法:找到python路径建立软连接whereis python只要找到python命令的路径,然后建立个软链接即可。sudo ln -s /usr/bin/python2.4 /usr/bin/pythonwhereis 命令说明whereis语法:# whereis [-bmsu] 文件或者目录名称参数说明:-b : 只找二..

2022-02-15 10:47:12 8214

原创 记录:yum Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error解决

起因:在使用curl 命令进行自动化安装Docker的执行脚本过程中报错如下# Executing docker install script, commit: 93d2499759296ac1f9c510605fef85052a2c32beWarning: the "docker" command appears to already exist on this system.If you already have Docker installed, this script can cau

2022-02-15 10:39:17 5781

原创 使用Maven构建项目Docker镜像

前言在前面我们介绍了Docker是什么?有什么优点?应用场景?_黄嚯嚯-CSDN博客Linux安装Docker步骤_黄嚯嚯-CSDN博客Docker配置使用阿里云加速镜像_黄嚯嚯-CSDN博客准备工作创建一个基础项目工程开始之前我们先准备一个Springboot的项目工程 , 就很普通就好 , 确保项目整正常启动即可!配置本次构建所使用到的插件是docker-maven-plugin ,该插件提供了两种不同的构建方式 , 两种方式外观差别体现在po...

2022-02-11 15:14:06 5061

原创 Docker配置使用阿里云加速镜像

Docker 介绍Docker(一)介绍_黄嚯嚯-CSDN博客Docker 安装Docker(二)Linux的Docker安装_黄嚯嚯-CSDN博客前言前面介绍了Docker , 以及Docker CE 的安装 , 由于,docker的镜像仓库:Docker Hub是一个国外的站点,访问特别慢,所以,在使用之前需要配置使用阿里云的镜像仓库来加速镜像的访问下载登录阿里云账号容器镜像服务 -> 镜像工具 -> 镜像加速器会得到一个自己专属的镜像加速器地址...

2022-02-11 10:51:44 640

原创 Linux安装Docker步骤

Docker 介绍Docker(一)介绍_黄嚯嚯-CSDN博客准备工作版本要求Docker 有两个分支版本 , 一个是 Docker: CE 即社区免费版,另一个是 Docker EE 即企业版,需付费 , 其实使用CE版本就足够满足日常所需了. Docker 必须运行在含有Linux内核的系统上 , 另外官方建议要 CentOS7.0 及以上系统版本 . 如果运行CentOS 6.5及以后版本时,需要内核版本 >= 2.6.32-431 // 命令查看内核版本 ,...

2022-02-11 10:37:40 1074 1

原创 Docker入门介绍

Docker介绍Docker 是一个开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise E..

2022-02-11 09:50:09 166

原创 记录一次云服务器被劫持下载了挖矿病毒的处理过程

etc被篡改导致系统中病毒起因:一年前买的阿里云服务器 , 买了没多久 , 因为没做什么安全措施 , 然后就莫名奇妙服务器被劫持 , 在上面下载了挖矿的一些脚本 ,当时做的处理方式 简单粗暴 直接重置了我的阿里云服务器 , 并且改了密码 , 同时在阿里云的服务器控制台 -> 安全组规则中 关掉了掉了脚本来源的IP地址的出入权限 ,之后的一年 都一直风平浪静 , 知道昨天 , 手贱 ,,,,, 觉得过去很久了 应该没啥了 , 就删掉了那条规则, 也就是等同于放开了那个IP对本机的...

2022-01-29 13:46:30 6687 4

原创 Linux Top 命令

Linux top命令用于实时显示 process 的动态。使用权限:所有使用者。语法top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]参数说明:d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径.

2022-01-29 10:54:02 183

原创 设计模式之-访问者模式

访问者模式介绍最复杂的设计模式,并且使用频率不高,《设计模式》的作者评价为:大多情况下,你不需要使用访问者模式,但是一旦需要使用它时,那就真的需要使用了。访问者模式是一种将数据操作和数据结构分离的设计模式。(觉得太抽象,可以看下面的例子)。访问者模式应用场景1、对象结构中对象对应的类很少改变,但经常需要在此对象结构上定义新的操作。2、需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,也不希望在增加新操作时修改这些类。访问者模式应用实例

2022-01-16 16:43:10 442 2

原创 GuavaCash本地缓存使用

前言 :为什么要使用缓存在系统中,有些数据,数据量小,但是访问十分频繁(例如国家标准行政区域数据),针对这种场景,需要将数据搞到应用的本地缓存中,以提升系统的访问效率,减少无谓的数据库访问(数据库访问占用数据库连接,同时网络消耗比较大),但是有一点需要注意,就是缓存的占用空间以及缓存的失效策略。为什么是本地缓存采用本地缓存的数据,大多是与业务无关的小数据缓存,没有必要搞分布式的集群缓存,如果是涉及到订单和商品这类重要业务的数据,才会直接走DB进行请求, 再加上分布式缓存的构建,集...

2021-12-14 18:03:46 1373

原创 Springboot整合squirrel-foundation状态机

上一篇文章介绍了状态机介绍以及常见种类对比。本篇主要介绍一下项目中如何使用squirrel-foundation的一些细节以及如何与spring进行集成的流程。状态机(有限状态自动机 FSM)介绍_黄嚯嚯-CSDN博客状态机概念, 为什么要使用状态机https://blog.csdn.net/qq_42543063/article/details/119111658阅读过程中如有介绍不全的位置 , 也可以留言 , 或者参考官方文档自行分析 squirrel-foundation | Squ...

2021-10-26 17:42:58 2537 3

原创 状态机(有限状态自动机 FSM)介绍以及常用状态机种类对比

状态机概念, 为什么要使用状态机

2021-10-20 16:14:10 7244

原创 前端传的list不能遍历 报错 Error: java.util.LinkedHashMap cannot be cast to 三种方式进行二次序列化

在经过一番问题查找后, 由于公司封装了一层框架 , 然后框架在进行前后端参数交互时候, 针对参数进行了统一序列化 , 也就是说如果不在平台上进行配置的话 , 公司框架是无法识别出来类型的 , 在无法识别类型的情况下进行的序列化后代码是无法准确地被反序列化的 ,但又懒得去添加,,,,索性在代码里针对接受过来的参数进行了二次手动序列化 , 这里我一共尝试了 三种 ,具体使用根据自己代码选择 ,

2021-07-24 13:24:26 1182 2

原创 Git提交备注规范

commit messge规范十分有助于项目管理,目前使用最多的是Angular团队的规范主要规范是:type: commit的类型feat: 新特性fix: 修改问题refactor: 代码重构docs: 文档修改style: 代码格式修改,非csstest: 测试用例修改chore: 其他修改,比如构建流程,依赖管理scope: commit影响的范围,比如: route, component, utils, build...subject: commit 的概述body: .

2021-06-16 11:12:36 1145 1

原创 Zookeeper选举机制

Zookeeper选举机制zookeeper 选举是Paxos算法的实现,采用投票数大于半数则胜出的逻辑,一般集群数量为奇数。概念服务器 ID比如有三台服务器,编号分别是 1,2,3。编号越大在选择算法中的权重越大。选举状态LOOKING,竞选状态。FOLLOWING,随从状态,同步 leader 状态,参与投票。OBSERVING,观察状态,同步 leader 状态,不参与投票。LEADING,领导者状态。数据 ID服务器中存放的最新数据 version。值越大说明数据越新,在选

2021-04-19 09:23:13 337

原创 Kafka使用代码连接时日志频繁提示Broker may not be available.

报错日志Connection to node 0 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)Connection to node 1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available.问题描述服务器已经开通了对应的端口,防火..

2021-04-14 17:35:06 43181 7

原创 Memcached使用总结以及注意事项

目录memcached所有命令在内部都是原子的!数据结构的序列化减少键大小如何列出所有键?压缩为什么key过期时curr_items不会减少?相较于MySQL查询缓存Noreply/Quiet|不回复/安静散列一致的散列连接限制Memcached服务分布式集群Memcached特点及工作原理memcache内存管理没有身份认证机制!memcached所有命令在内部都是原子的!数据结构的序列化通过set / add / etc命令传递..

2021-04-12 17:34:23 349

原创 Memcached命名空间

命名空间从1.4.2开始,xmemcached提供了memcached命名空间的封装使用,你可以将一组缓存项放到同一个命名空间下,可以让整个命名空间下所有的缓存项同时失效,例子:String ns = "namespace" ;// 向命名空间 "namespace" set 一条数据"cc" 值为2 , 过期时间为90毫秒memcachedClient.withNamespace(namespace, client -> client.set

2021-04-09 15:45:06 2209

原创 Memcached客户端分布式代码实现一致性哈希算法XMemcached

客户端分布Memcached的分布是通过客户端实现的,客户端根据key的哈希值得到将要存储的memcached节点,并将对应的value存储到相应的节点。XMemcached客户端分布不同的客户端有着不同的分布式实现方式 , 这里我们使用XMemcached.XMemcached同样支持客户端的分布策略,默认分布的策略是按照key的哈希值模以连接数得到的余数,对应的连接就是将要存储的节点。如果使用默认的分布策略,你不需要做任何配置或者编程。XMemcached同样也支持一致性哈希(con

2021-04-09 15:25:18 254

IDEA的配置文件.zip

该jar文件为笔者所使用的过得 , 亲测可用 , 下载下来之后 可直接使用............................

2020-04-16

jasperreports-MyFonts-6.9.0.jar

该jar 是jasper 报表开发字体包修改后的jar , 支持中文 , 若想自己尝试修改jar , 笔者博客中就写 ,可移步观看 , 且附带有免费资源下载

2020-03-12

jasperreports-fonts-6.9.0.jar

该jar 是jasper 报表开发字体包原包 , 并不支持中文 , 若想要改成支持中文的jar 还需做些操作 , 具体操作 , 笔者博客中就写 ,可移步观看

2020-03-12

空空如也

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

TA关注的人

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