自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

宫宏伟的博客

世界,因你而精彩

  • 博客(61)
  • 收藏
  • 关注

转载 微服务中使用Maven BOM来管理你的版本依赖

第三方jar包统一管理

2024-09-25 10:52:26 16

原创 RocketMQ面试题

集群消费模式:一个消费者组共同消费一个主题的多个队列,一个队列只会被一个消费者消费。10w级吞吐量、高可用、消息可以0丢失、毫秒级延迟、有活跃的中文社区。对消息进行过滤,只消费关心的消息,减少不必要的消费。生产者限速(发送延迟、批量发送大小等,来控制发送速度)。消费者改逻辑(增加单机线程并发量)、扩容。Broker扩容、同步刷盘改异步、启用消息重试和死信队列、持效监控。2、RocketMQ选型及设计。生产者-->Broker。Broker-->消费者。

2024-09-17 10:08:03 156

原创 Mysql面试题

对于这种varchar(255)的大字段可能会比较占用磁盘空间,可以稍微优化下,比如针对这个字段的前20个字符建立索引,就是说,对这个字段里的每个值的前20个字符放在索引树里,类似于 KEY index(name(20),age,position)。此时你在where条件里搜索的时候,如果是根据name字段来搜索,那么此时就会先到索引树里根据name字段的前20个字符去搜索,定位到之后前20个字符的前缀匹配的部分数据之后,再回到聚簇索引提取出来完整的name字段值进行比对。‌:强调的是同一条数据被修改。

2024-09-09 17:39:50 810

原创 checklist优化

背景:数据库死锁优化思路:1、加索引2、加缓存3、多线程调用。

2024-08-21 10:58:07 214

原创 Mysql磁盘满问题

磁盘使用率100% 扩容解决。

2024-08-21 10:57:44 178

原创 代码命名优雅规范

新来了个同事,代码命名规范是真优雅呀!代码如诗!!

2024-08-21 10:57:23 86

原创 稳定性建设

如何做好稳定性和高可用保障是一个很庞大的命题,本篇文章没有太多的深入细节,只聊了整体的一些思路,主要是为了大家在以后的系统高可用建设过程中,有一套系统的框架可以参考。2、对于一个动态演进的系统而言,我们没有办法将故障发生的概率降为0,预防和缩短故障的恢复时间才是我们追求的目标。

2024-03-05 19:30:07 403

原创 线上问题处理

一、微服务架构概述1.什么是微服务架构微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务于服务之间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。2.SpringCloud

2023-08-16 14:52:38 146

原创 Git提交规范指南

scope选填表示commit的作用范围,如数据层、视图层,也可以是目录名称。subject必填用于对commit进行简短的描述。

2023-08-16 14:51:42 638

原创 JVM分代及回收算法总结

CMS(标记清除)并发标记大概占用整个收集80%时间,让应用线程并发不暂停,提高用户体验。cms可能stw总时间会更长,但是他分成了几个阶段。大内存,4-8g用cms,提升用户体验。Parallel(标记整理) 吞吐量 垃圾收集效率高,stw时间短,应用线程暂停了。4g以下用parallel。新生代:复制算法,PartNew 只用于新生代。分代理论:eden、s0、s1。老年代:标记清除、标记整理。

2022-10-17 22:37:21 207 1

原创 git的master分支、各开发分支管理

master(主分支)存在一条主分支(master)。所有用户可见的正式版本,都从master发布(也是用于部署生产环境的分支,确保master分支稳定性)。主分支作为稳定的唯一代码库,不做任何开发使用。master 分支一般由develop以及hotfix分支合并,任何时间都不能直接修改代码develop(开发分支)存在一条开发分支(develop)。这个分支维护了当前开发中代码的主线,始终保持代码新于master以及bug修复后的代码。持续集成、最新隔夜版本的生成等都是基于这个分支。

2022-03-23 15:24:24 8087 1

原创 将springBoot项目替换为外置tomcat一些问题

问题1:idea控制台输出乱码:在-Dfile.encoding=UTF-8 在vm中设置编码方式从File->Setting ,设置File Encodings ,检查Default Encodings 是否是UTF-8.在idea的 Help-- custom vm options 添加-Dfile.encoding=UTF-8,重启【切忌】自己改tomcat的logging.properties 为GBk 会导致调试时get/post参数乱码2. 将前后台项目..

2021-09-09 16:56:44 252

转载 sql中的for update

sql中的for update解释:for update是在数据库中上锁用的,可以为数据库中的行上一个排它锁。当一个事务的操作未完成时候,其他事务可以读取但是不能写入或更新。例子:比如一张表三个字段 , id(商品id), name(商品名字) , count(数量)当商品抢购时候会显示剩余商品件数,如果并发量大的时候,商品自减的值可能不准确。所以当我们在一个事务中对count字段进行修改的时候,其他事务应该只能读取指定id的count,而不能进行update等操作。这个时候就需要用

2021-09-03 09:44:32 6205

原创 缓存穿透、击穿、雪崩

穿透:查缓存 查数据库都没有,直接透过去了,所以叫穿透。击穿:查缓存没有,但查数据库有,所以叫击穿。雪崩:击穿是一条数据在缓存中查不到,雪崩则是大批量缓存数据查不到,都走到了数据库。...

2021-08-27 14:24:12 166

转载 初级程序员经常容易犯的错误

程序员最常见错误集锦作为程序猿的我们经常容易犯各种错误,把这些错误改正了,就离高级码农们不远了。总结一下初级程序员经常犯的错误:1 命名不规范2 日志不规范3 拒绝写接口和假数据4 不写单元测试5 盲目集成6 逻辑不清7 不做方案8 不关注性能9 害怕重构10 做出来就好,不考虑优雅的方案11 不考虑未来需求的变化12 遇到问题的时候不会试错13 不会写伪代码14 不做数据量的预估15 提交代码不规范16 不喜欢打Tag17 .

2021-08-27 14:19:29 333

原创 Object类中的clone()方法是深拷贝还是浅拷贝?

深拷贝:完全复制一个副本出来,副本的改变不影响原对象浅拷贝反之一个对象能被拷贝,需2个条件1.实现Cloneable接口,使拷贝合法,不抛CloneNotSupportedException2.覆写clone方法@Overridepublic Object clone() throws CloneNotSupportedException { return super.clone();}clone()本身是浅拷贝,想要深拷贝需要自己实现改造。需要把对象中引用的所有对象都深拷

2021-07-30 14:56:56 2270 1

原创 IntelliJ Idea 如何自动给实体生成序列化UUID

先进入设置File->settings->Editor->Inspection->java->Serialization issues,勾选上Serializable class without 'serialVersionUUID'一栏回到开始的序列号实体,再类名处会出现警告的下划线,点击Alt+Enter会出现生成序列号UUID的选项,勾选即可。...

2021-07-13 09:48:36 1165

转载 idea类存在找不到解决办法

idea类存在找不到解决办法996的程序猿 2019-01-09 13:23:07 51954 收藏 101分类专栏: 工具类 文章标签: idea 找不到类 idea 找不到符号版权1.刷新maven项目2.清理idea缓存3.maven clean install4.重新bulid5.如果使用了lombok插件开启之后重新build6.maven依赖冲突导致1.打开当前maven模块或者,父类模块对应的pom,哪个模块有冲突进入那个模块!2.ctlr+alt+shif

2021-05-13 14:35:26 9115

转载 拦截器与过滤器的区别

一、二者理解过滤器(Filter)过滤器,是在java web中将你传入的request、response提前过滤掉一些信息,或者提前设置一些参数。然后再传入Servlet或Struts2的 action进行业务逻辑处理。比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入Servlet或Struts2的action前统一设置字符集,或者去除掉一些非法字符。拦截器(Interceptor)拦截器,是面向切面编程(AOP,Aspect Oriented Pro

2021-04-15 09:22:08 906

转载 常用的sql优化

1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 null值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id fr

2021-04-06 11:04:53 85

原创 IDEA设置默认Maven的路径

使用idea开发工具,每次创建一个新的项目的时候,maven的路径就会重新使用默认的,都需要重新调整一下,下面的这个方法一次搞定。不需要每次创建项目的时候再次重新设置。操作流程如下:File–>Other Settings–>Default setting–>Build,Execution,Deployment–>Build Tools–>Maven–>user settings file:选择自己的Maven的路径即可。...

2021-03-07 11:26:09 10873 1

原创 windows安装es

1.下载eshttps://www.elastic.co/cn/downloads/elasticsearch启动eshttp://127.0.0.1:9200/2.下载kibana启动kibanahttp://localhost:5601/3.下载ik分词器windows下安装ik分词器: 在浏览器中粘贴以下url:https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6....

2021-02-04 11:55:01 712

原创 东方通部署文档

TongWeb 部署项目方式可参照 TongWeb7 快速使用手册进行部署 war 包。本文档主要写打 war 配置过程 一、部署 springboot 项目 1.TongWeb 自带的 web 模块中包含的 JPA 以及 vaildation.jar 包会有版本冲突,导致项目部署 出 错 。 需 要 在 TongWeb 的 bin 目 录 下 配 置 external.vmoptions 文 件 , 将 -DWebModuleOnly 修改为 true,如图: 也可以直接在 Ton

2020-10-23 09:45:10 4503

转载 线程池工具类

java线程池实现类ThreadPoolExecutorThreadPoolExecutor可以构造一个线程池,就是装了一堆线程的容器。这些线程可以用来执行任务。其实按道理讲,我们可以自己创建一个线程来执行自己的任务。那么为啥要用线程池呢,是因为线程池装了一堆已经创建好了的线程,不需要我们自己再去创建,这节省了创建线程的资源,也保障了线程的高效利用。1、方法说明任务管理主要方法如下:上述方法中, execute() 和 submit() 方法在有空闲线程存在的情况下会立即调用该线程执行任务,区别在

2020-08-09 12:53:42 1140

转载 Redis下载及安装(windows版)

Redis下载及安装(windows版)青衫故人. 2019-03-21 19:16:39 51926 收藏 95分类专栏: 步骤版权下载地址1、Github下载地址:https://github.com/MicrosoftArchive/redis/releases2、百度网盘下载地址 https://pan.baidu.com/s/1z1_OdNVbtgyEjiktqgB83g 密码:kdfq安装过程1.首先先把下载的压缩包解压到一个文件夹中2.打开cmd指令窗口3.输..

2020-07-02 22:26:08 747

转载 解决HttpServletRequest的输入流只能读取一次的问题

背景通常对安全性有要求的接口都会对请求参数做一些签名验证,而我们一般会把验签的逻辑统一放到过滤器或拦截器里,这样就不用每个接口都去重复编写验签的逻辑。在一个项目中会有很多的接口,而不同的接口可能接收不同类型的数据,例如表单数据和json数据,表单数据还好说,调用request的getParameterMap就能全部取出来。而json数据就有些麻烦了,因为json数据放在body中,我们需要通过request的输入流去读取。但问题在于request的输入流只能读取一次不能重复读取,所以我们在过滤器

2020-07-01 13:28:54 3782 3

原创 RabbitMq入门

1.简介MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开 发中应用非常广泛。RabbitMQ官方地址:http://www.rabbitmq.com/开发中消息队列通常有如下应用场景:任务异步处理。 将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。应用程

2020-06-19 14:57:40 225

转载 Mysql索引失效的十大杂症

后端程序员必备:索引失效的十大杂症 - 掘金新人专享好礼凡未购买过小册的用户,均可领取三张 5 折新人专享券,购买小册时自动使用专享券,最高可节省 45 元。小册新人 5 折券最高可省 15 元小册新人 5 折券最高可省 15 元小册新人 5 折券最高可省 15 元注:专享券的使用期限在领券的七天内。一键领取领取成功购买小册时自动使用专享券知道了前往小册首页领取失败本活动仅适用于小册新用户知道了提示根据我国《互联网跟帖评论服务管理规定》,您需要绑定手机号后才可在掘金社区内发布内容。绑定手机首页首页沸点话题小

2020-06-12 14:47:16 301

转载 ArrayList遍历时删除元素的正确姿势是什么?

简介我们在项目开发过程中,经常会有需求需要删除ArrayList中的某个元素,而使用不正确的删除方式,就有可能抛出异常。或者在面试中,会遇到面试官询问遍历时如何正常删除元素。所以在本篇文章中,我们会对几种删除元素的方式进行测试,并对原理进行研究,希望可以帮助到大家!ArrayList遍历时删除元素的几种姿势首先结论如下:第1种方法 - 普通for循环正序删除(结果:会漏掉元素判断)第2种方法 - 普通for循环倒序删除(结果:正确删除)第3种方法 - for-each循环删除(结果:抛出异常)

2020-06-07 21:27:40 1851

转载 maven中scope、optional标签详解

maven中scope标签详解maven也是约定大于配置,所以在maven中,很多内容都有默认值,scope的默认值是compile,那么scope还能有哪些选项呢?scope的分类1.compile:默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去2.test:依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit3.runtime:表示被依赖项目无需参与项目的编译,不过后期的测试和

2020-06-02 14:07:27 2500

转载 Mysql中int、bigint、smallint 和 tinyint的区别详细介绍

下表是各类型信息:1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方 11111111 在计算机中也就是-128到127BIT[M]位字段类型,M表示每个值的位数,范围从1到64,如果M被忽略,默认为1TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默认为4很小的整数。带符号的范围是-128到127。无符号的范围是0到255。 BOOL,BOOLEAN是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。

2020-05-26 17:22:04 4175 1

原创 Mybaits分页插件PageHelper切换到国产数据库

最近使用Mybaits分页

2020-05-26 13:19:39 2463

原创 windows快捷键大全

win快捷键:单独按Windows:显示或隐藏 “开始”功能表Windows+D:显示桌面或恢复桌面Windows+M:最小化所有窗口Windows+Shift+M:还原最小化的窗口Ctrl+Shift+N:新建文件夹Windows+E:打开"我的电脑"Windows+F:查找文件或文件夹Windows+CTRL+ F:查找电脑Windows+F1:显示 Windows “帮助”Windows+R:开启“运行” 对话框Windows+U:开启 “公用程序管理器”Windows+L:锁

2020-05-23 18:48:12 2062

转载 创建型、行为型、结构型有什么区别和联系?

创建型模式:创建型模式,就是创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示它的那些对象。关注的是对象的创建,创建型模式将创建对象的过程进行了抽象,也可以理解为将创建对象的过程进行了封装,作为客户程序仅仅需要去使用对象,而不再关心创建对象过程中的逻辑创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。行为型模式:行为型模式是对在不同的对象之间划分责任和算法的抽象化,行为型模式不仅仅关注类和对象的结构,而且重点关注他们之间的相互作用,通过行为

2020-05-22 11:48:47 870

原创 设计模式之观察者模式

观察者模式当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。介绍意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。如何解决:使用面向对象技术

2020-05-22 11:47:38 234

转载 设计模式的七大原则

转自https://blog.csdn.net/juoduomade/article/details/85012490概述对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。在面向对象设计中,可维护性的复用是以设计原则为基础的。每一个原则都蕴含一些面向对象设计的思想,可以从不同的角度提升一个软件结构的设计水平。 面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设.

2020-05-22 09:47:28 446

转载 sql 在not in 子查询有null值情况下经常出现的陷阱

sql 在not in 子查询有null值情况下经常出现的陷阱如果下:Table_A表和Table_B表,要求查询出在Table_A表中不在Table_B表中的记录。CREATE TABLE [dbo].[Table_A]([ID] nchar NULL,[Name] nchar NULL) ON [PRIMARY]GOID Name001 张三0...

2020-05-21 10:48:46 141

原创 Eclipse配置

1、新建jsp文件,默认格式为ISO-8859-1,改为UTF-8从Spring Tool Suite导入与Git相关联的项目2018-04-14 10:00:14itqzing阅读数 1724更多分类专栏:git【转】https://blog.csdn.net/u011570965/article/details/38366639从Git上clone并导入项目到...

2020-05-21 10:48:00 190

原创 生成菜单树示例

menu.javapackage com.unis.demo.entity;import java.util.List;public class Menu { // 菜单id private String id; // 菜单名称 private String name; // 父菜单id private String parentId; // 菜单...

2020-05-21 10:47:33 214

转载 Object,T,?的区别以及具体含义

1,object类的解释.2,object的运用.3,JDK1.5之后 泛型的解释4.通配符?5.区别内容虽多, 因解释详细,容易理解,耐心看完你会发现另一片天地!如有帮助就顶一下,如有自己的看法和意见,就发表评论,大家一起学习,莫要吝啬哦!开干!!!1.Object类:java.lang包在使用的时候无需显示导入,编译时由编译器自动导入。Object类是类层次结构的根,Jav...

2020-05-21 10:47:08 2435 1

空空如也

空空如也

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

TA关注的人

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