自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 大话,一份好的简历是面试成功的关键

如何打造一份有吸引力的简历首先来看怎么写简历。大部分候选人都是倒在了简历筛选这一关。HR 或者面试官一般只会在简历上停留 10~30 秒,如果简历不吸引人,再优秀的候选人也会错失良机。好简历的特点1、结构清晰、主次分明。简历可以分为基本信息、项目经历、自我总结等部分,各个部分要做到主次分明,特别是项目介绍,建议按照发生时间倒序来排列,最新的项目放在最前。多个项目之间也要分主次。重点的项目、最能体现你能力和工作成果的项目,要详细介绍,次要的项目尽量简洁,同一类型的项目建议不要重复。2、语句通顺,没有

2022-06-01 14:46:04 136

原创 记一次 分布式事务可靠消息最终一致性方案

可靠消息最终一致性方案-> mq 事务消息场景:单体应用 加一个@Transactional 即可通过spring事务控制事务。原理是什么呢?带注解的对象是spring AOP-在bean的生命周期,初始化阶段处理过的。是一个代理对象作为一个代理对象,可以在业务方法前边getcon begin ->反射invoke 到业务方法->业务方法后边 commit

2021-12-31 10:33:45 705

原创 记一次 500并发,平均响应时间慢-调优过程~~

1、背景:LR压测,并发 500、持续压测10 分钟~压测结果,平均响应时间长从报告可知,主要瓶颈在js、css、img上2、解决 启用nginx 缓存、集群部署、tomcat线程调优 linux内核调优tomcat7 启用nio、调大最大线程。等待队列 <Connector port="6002" enableLookups="false" maxKeepAliveRequests="1" acceptCount="550" minSpareThreads="300" maxThr

2020-12-26 17:57:23 1824 1

原创 记一次 并发500测试、服务器 nginx 配置调整

背景:最近压测测试环境,并发500。服务器都是默认配置

2020-12-09 14:35:07 1003 1

原创 记一次-X-Real-IP、X-Forwarded-For 防止伪造

背景:只有一层nginx,获取真实ip。防止伪造nginx 配置server { listen 443 ssl; server_name localhost; ssl_certificate server.crt; #ssl_certificate cert.pem; ssl_certificate_key server.key; #ssl_certificate_ke

2020-11-13 16:36:42 1688

原创 记一次—已有nginx扩展 https功能

背景:在用的nginx 仅支持http 功能,需要扩展 https 功能。OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库1、执行命令安装ssl 库。yum install -y openssl openssl-devel默认情况下ssl模块并未被安装,如果要使用该模块则需要

2020-10-31 19:36:48 336

原创 记一次同一账号一端登录,自动挤出另一个端

背景:最近来了一需求。同一账号在一个端登录,需自动挤出另一个端思考:1、针对单机版服务,都是通过客户端传 Cookie: JSESSIONID=F870E571C55BAFBE7050C98B9B1D6FFE; 服务端存储session控制各个浏览器的会话。2、同一账号登录,需把此账号另一端的session销毁即可。针对1和2 分析涉及到1个问题,第二次登录拿到第一次登录的session销毁即可。因此需要对session统一管理,方便操作。public class SessionUtil {

2020-10-17 15:14:35 623

原创 大话rpc-远程调用那些事

RPC全称为Remote Procedure Call,翻译过来为“远程过程调用”背景:现如今微服务甚是火热,针对单体服务按功能模块各种拆分、拆出了订单中心、商品中心、商户中心等等。一个中心下边又有多个springboot包、多个包 多个进程之间的数据交互就不可避免,跨进程之间的调用就是rpc。市场上流行的框架是dubbo,那么自己实现一个rpc 该如何下手 ?1、基于netty实现2、请求实体 序列化成字节流—>netty传输—>反序列化接收消费端实现1.1 基于 netty 获

2020-08-20 15:50:17 220

原创 大话-springboot 自动装配那些事

背景:之前用spring项目需要整合很多xml 配置、各种jar 版本搭配 甚是烦人,而有了springboot 后,引入一个starter包+application.properties 配置即可搞定一个组件集成。springboot底层帮我们做了啥,竟让我们如此省事?以集成redis组件为例1、引入 starter <!--redis--> <dependency> <groupId>org.springframewo

2020-07-26 13:15:19 148

原创 记一次 升级dubbo 2.7.7,抛出 Caused by: java.lang.IllegalStateException: zookeeper not connected

背景:apache dubbo爆出高危漏洞,需要统一升级 为最新 2.7.71、使用dubbo所需包,netty、dubbo、zookeeper、zk节点操作客户端 <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>2.7.7<

2020-06-26 09:21:23 2634

原创 大话-那些年常被问的java题

背景:面试时,有些问题经常被问。现在来一探究竟。。。。一、== 和 equals默认情况,对于基本数据类型,==比较的是两个变量的值。对于引用对象,==比较的是两个对象的地址Object 类 public native int hashCode(); public boolean equals(Object obj) { return (this == obj); } String 类 重写equals,hashcode public boolean equal

2020-05-23 17:55:58 391

原创 大话-阻塞队列(阻塞 唤醒),生产者、消费者的实现

队列先进先出的一种数据结构,那什么是阻塞队列呢?从名字可以看出阻塞队列其实也就是队列的一种特殊情况。从上面这张图我们会发现这样的规律:(1)当阻塞队列为空时,从队列中获取元素的操作将会被阻塞,就好比餐馆休息区没人了,此时不能接纳新的顾客了。换句话,肚子为空的时候也没东西吃。(2)当阻塞队列满了,往队列添加元素的操作将会被阻塞,好比餐馆的休息区也挤满了,后来的顾客只能走了。从上面的概念我们类比到线程中去,我们会发现,在某些时候线程可能不能不阻塞,因为CPU内核就那么几个,阻塞现状更加说明了资源的利

2020-05-18 10:00:45 457

原创 大话-多个线程间通信的利器 CountDownLatch,CyclicBarrier,Semaphore

背景:高并发下,有了线程池,那么如何控制多个线程间互相配合 灵活工作哈、让线程做到说暂停就暂停、说跑就跑JUC提供了三大利器:CountDownLatch,CyclicBarrier,Semaphore一、CountDownLatch 数量 减少 上锁,countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行。是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,当计数器的值为0时,表示所有线程都执行完毕,然后在闭锁上等待的线程就

2020-05-17 08:16:37 161

原创 大话 -生产服务器变慢,如何全方位立体检查。。。。

背景:现有一台生产服务器,最近比较慢~兄弟,你可以评估、诊断一下否 ?诊断、定位思路:整机—>cpu—>内存—>磁盘大小—>磁盘IO—>网络IO1、整机命令: top重点关注:负载 load average, %CPU %MEM 进程号 PID2、cpu全方位查看 vmstat -n 2 3 每2秒采样一次,采样3次,重点关注:procs和cpu模块更加细粒度的查看,根据cpu核数查看,命令:mpstat -P ALL 2 每2秒采样一

2020-05-14 16:46:54 156 1

原创 大话锁系列---公平锁 非公平锁 可重入锁 自旋锁 写锁 读锁 互斥锁................

针对这系列锁,主要以文字,demo 细细阐述…一、公平锁 非公平锁,主要是ReentrantLock 、synchronizedReentrantLock 默认非公平锁,优点是吞吐量比公平锁大–、synchronized 是非公平锁。 public ReentrantLock() { //no nfair不公平 sync = new NonfairSync(); } //配置 true ,为公平锁- public ReentrantLock(boolean

2020-05-11 10:17:55 181

原创 大话多线程下集合类如何生存,那些事

你常用的集合类是啥?—ArrayList,HashSet,HashMap1、单机版这肯定没啥问题,多线程环境下还好使吗?2、有啥解决方案不?3、为啥这种方案好使?面对这一串三连问,有多少人能扛得住~且听我细细道来。。。 List<String> list= new ArrayList<>(); for (int i = 0; i < 30; i++) { new Thread(()->{

2020-05-09 12:01:56 177

原创 大话CAS,那些事--无锁才是真的快。。。。。

话说这个synchronized关键字保证了,多线程环境下加锁 强行-单线程执行。可惜呀,这个性能太差劲了,因此就有了 CAS一种无锁算法的出现。我们今天从 java.util.concurrent.atomic.AtomicInteger 并发包下的这个工具类慢慢道来AtomicInteger atomicInteger=new AtomicInteger(5); atomicInteg...

2020-05-06 15:18:17 209

原创 大话JMM-内存模型,volatile起了啥作用

前面说到了,多线程sync 同步,线程之间的通信,jvm构成等等,唯独没有说这个volatile话说这个volatile有三大特性1、保证可见性2、不保证原子性3、禁止指令重排(有序)这三大特性由啥决定的呀,当然是工作内存JMMJMM即为JAVA 内存模型(java memory model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在...

2020-05-05 13:46:23 209

原创 大话jvm-那些事

jvm 又称java 虚拟机。一个庞大的体系,只有慢慢认识了它,才能玩的更好。本文本着what,why,how 的原则展开,1、JVM内存模型是啥?每个分区组成是啥?2、运行时数据区有啥?堆内存结构 特点是啥?3、gc 3种收集器的原理是啥?为啥这么搞?4、如何使用gc 调优工具?how首先从大局上给jvm一个定位哈从图中可看出,jvm操作的是操作系统,与操作系统交互的是执行引擎,...

2020-04-28 15:21:43 280

原创 大话spring~spring那些事

说到这个spring,首先要搞清楚没有spring之前我们是什么样子的哈 a、很多设计模式需要自己去整合 b、所有的封装、继承、多态、增强、依赖、模块管理等等工作都需要自己制定统一的规则 c、所有的创建对象、配置依赖关系、资源的重复利用都需要我们手动去搞我滴个天,看着都累、这的做多少重复的工作。人是懒惰的,不想重复造轮子呀,所以Spring出现了,Java程序员的春天真的来了,解放了细...

2020-04-21 19:04:18 484

原创 大话多线程处理~多线程真的快?线程池 emmm......

常听人说,多线程处理快~ 是啊,多条渠道同时进行确实快、可在计算机世界多线程处理一定快吗,显然不是。首先了解几个常识1、线程执行需要获取cpu的执行权2、对于1核cpu,多个线程需要去抢cpu、谁抢到谁执行,这就代表有个切换的过程~抢到 执行 退出,切换要浪费多少时间 emmm…、还不如一个线程一直跑快呢因此,多线程处理不一定快,还的看硬件条件跟不跟的上说了这么多,想到了什么没、多线程处理...

2020-04-19 11:57:15 376

原创 老司机带你还原主从复制细节

主从复制,建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。1、主负责写,从负责读 用于读写分离2、通过binlog 二进制日志和日志偏移量实现主服务器 /etc/ny.cnf[client]port = 3306socket = /tmp/mysql.sock[mysqld]replicate-ignore-db = mysqlrepl...

2019-11-17 19:18:21 145

原创 在中国,千万别一辈子靠技术生存 !

在中国你千万不要因为学习技术就可以换来稳定的生活和高的薪水待遇你更千万不要认为那些从事市场开发,跑腿的人,没有前途不知道你是不是知道,咱们中国有相当大的一部分软件公司,他们的软件开发团队都小的可怜,甚至只有1-3个人,连一个项目小组都算不上,而这样的团队却要承担一个软件公司所有的软件开发任务,在软件上线和开发的关键阶段需要团队的成员没日没夜的加班,还需要为测试出的BUG和不能按时提交的软件模块...

2019-01-05 13:49:59 2145 8

原创 人之所以能,是不信命、只信自己

上天对谁都是一视同仁的,它在关上一扇门的同时,必定会打开一扇窗;无论多么糟糕的东西,世界都为其预留了位置,相信雨点不会仅仅落在你一个人的屋顶之上,相信你自己,大千世界总有属于你的角落;拥有积极乐观的态度,是解决和战胜任何困难的第一步。...

2018-12-17 22:02:05 339

原创 spring AOP切面编程——基于自定义注解

AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,(1)Aspect(切面):通常是一个类,里面可以定义切入点和通知 (2)JointPoint(连接点):程序执行过程中明确的点,一般是方法的调用 (3)Advice(通知):AOP在特定的切入点上执行的增强处理,有before,after,afterReturning,afterThrowi...

2018-12-17 11:28:57 240

原创 shiro权限框架__由浅入深 2

spring 整合配置___\&amp;amp;amp;amp;amp;lt;?xml version=&amp;amp;amp;amp;quot;1.0&amp;amp;amp;amp;quot; encoding=&amp;amp;amp;amp;quot;UTF-8&amp;amp;amp;amp;quot;?&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;beans xmlns=&

2018-12-04 21:50:12 134

原创 shiro权限框架__由浅入深 1

shiro.ini 文件配置[users]# user 'root' with password 'secret' and the 'admin' roleroot = secret, admin# user 'guest' with the password 'guest' and the 'guest' roleguest = guest, guestpresidentskroo...

2018-12-04 21:26:58 188

原创 代理模式__之深度剖析

在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。意图:为其他对象提供一种代理以控制对这个对象的访问。主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在...

2018-11-30 22:26:28 155

原创 Quartz与spring的简单整合__亲测

Quartz是OpenSymphony开源组织在Job scheduling领域的开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。Quartz是一个任务日程管理系统,一个在预先确定(被纳入日程)的时间到达时,负责执行(或者通知)其他软件组件...

2018-11-30 16:02:05 142

原创 java代码删除文件__发现无法删除

java代码删除文件__发现无法删除 File file = new File(filePath); if (file.exists() &amp;amp;&amp;amp; file.isFile()) { boolean flag = file.delete(); }经过对比检查发现 flag 为 false 并没有删除__通过界面删除,报错如图__被另一个进程占用解决方案...

2018-11-26 10:22:04 1833

原创 你还在不停的异常处理吗~来一个统一的试试呀

1.描述:在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的代码耦合度高,工作量大且不好统一,维护的工作量也很大。那么,能不能将所有类型的异常处理从各处理过程解耦出来,这样既保证了相关处理过程的功能较单一,也实现了异常信息的统一处理和维护?答案是肯定的。下面将介绍...

2018-11-23 22:34:23 157

原创 word模板动态填充并下载

/**根据word模板打印文件工具类__双检锁/双重校验锁__这种方式采用双锁机制,安全且在多线程情况下能保持高性能。*/public class DocUtil {private volatile static DocUtil docUtil;private Configuration configure = null;private DocUtil() {configu...

2018-11-23 17:20:19 785

原创 实战一:svn在linux搭建以及版本库__分支、主干

svn://47.98.106.22/20180827 svn协议__ svn安装 安装详细操作可参照 https://www.cnblogs.com/mymelon/p/5483215.html安装过程中遇到的坑 1、svnserve: Can’t bind server socket: Address already in use、svn默认端口...

2018-08-31 21:58:55 863

原创 记一次 mybatis plus+自定义类型处理器 TypeHandler

需求:实体 java类型 Timestamp、数据库字段 bigint -可存储long类型思考:有大量类似数据的转换,手动转换类型进行存储和查询已经过于麻烦。MyBatis为我们提供了解决办法:TypeHandler类型处理器。类型处理器 TypeHandlerMyBatis 中的 TypeHandler 类型处理器用于 JavaType 与 JdbcType 之间的转换,用于 PreparedStatement 设置参数值和从 ResultSet 或 CallableStatement 中取出一

2021-03-05 22:21:23 1735 2

原创 记一次线上报表导出 OOM_Java head space

背景:线上报表导出 跑了没1分钟堆内存溢出,emmm需求分析1、数据存储在es,都是单表 涉及表a,b,c,d,e,f 6张表2、每张表数据在百万以上,每个表取几个字段 拼接成一张大报表3、6张表之间对应关系,可能 1条a数据 几千条b数据痛点1、springboot 服务内存 256, new 对象太快 太多 没有足够的空间挪动回收解决:1、利用线程池+redis 异步执行、 poolTaskExecutor.execute(new Runnable() { @Overri

2020-07-14 11:40:31 955 1

原创 记一次线上启动war包 StackOverflowError

背景:一次线上部署应用,启动还未进入spring初始化阶段、直接报错 吓的我一哆嗦六月 18, 2020 8:36:14 下午 org.apache.catalina.core.ContainerBase addChildInternal严重: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].Standar

2020-06-21 11:09:22 205 1

原创 记一次连接池配置导致的问题

最近测试环境老抛出这个错,Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 53,014,427 milliseconds ago. The last packet sent successfully to the server was 53,014,427 milliseconds ago. is lo

2020-05-12 19:04:34 358

原创 记一次ReadTimeout—抓包过程

背景:之前一直对ReadTimeout ConnectTimeout 没有详细探究,直到一次遇到了这种场景,之前好好的接口、突然发生 ReadTimeout一顿操作,什么 telnet ,curl -v ,ping 都通猜测—难道是网络层面出啥问题了?抓包看看,吐血1、准备工具yum install tcpdump2、执行命令找到网卡 //ip add1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNO

2020-05-09 17:19:45 1270

空空如也

空空如也

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

TA关注的人

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