自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (4)
  • 收藏
  • 关注

原创 JVM调优参数

最近线上部署服务的时候,出现了内存占用率高,资源不够导致部分服务频繁崩溃的原因,因为项目是微服务架构,起初认为是微服务占用内存过大,第一反应是增加硬件内存的措施,后来部门大佬查看服务器运行情况,然后抛给我一串JVM参数,加上参数,内存占用率果然得到了明显的提升,接下来主要是来介绍一下JVM相关的调优参数,互相学习。大佬的JVM调优参数:nohup java -Xms2048m -Xmx2048m -Xmn1024m -Xss1024K -XX:PermSize=2048m -XX:MaxPermSize

2021-08-13 16:22:08 323

原创 Redis数据持久化

最近项目重启的时候,redis出现了一个错误:Failed opening the RDB file crontab (in server root dir /etc) for saving:Permission denied的问题,导致redis缓存中的数据全部丢失了,项目中查询redis缓存数据全部失效,这里先说出来解决方法是给redis设置密码即可解决。主要是对报错信息比较感兴趣, RDB file crontab这个是什么文件呢,root dir /etc这个dir又是做什么的呢,为什么会提示没有

2021-08-12 11:43:43 1106

原创 一条sql执行的过程(1)

这篇来讲一下,关于数据库所的问题,这里就是一句简单的sql查询语句为例,看看它在mysql中究竟是怎么执行的,在分析层面上,我就分为两个层面了,一个是总体的层面,就是这条sql语句的执行过程,另一个层面就是sql实际执行的细节方面,我们现在看看大体上的执行过程吧。首先我们先来连接一下sql的执行流程:图来自于网络:其中sql的执行要经过已下几个步骤,我们来分别说一下:连接器首先需要得到创建和客户端的连接,通过输入用户名密码来获取当前用户使用数据库的权限,项目中一般使用的是Druid连接池,因为

2021-07-09 14:39:08 144

原创 java类加载器

晚上没啥事,想到白天写的类加载过程,现在就忍不住把类加载器也说一下,其实在刚开始之前我是对类加载器没什么概念的,编程最初我只知道自己编写的代码能够输出自己想要的结果,而对于这个结果究竟是怎么产生的,我并不是关心,但是随着工作时间久了,就会发现熟悉类加载过程也是会有一定帮助的。那么类加载是用来干什么的呢?我们需要类加载器的场景又是怎么样的呢? 接下来我们就一起来看看类加载器。首先,我们先来介绍一下类加载的种类,如下图:图来自于网络:Java的类加载器一般来说分为两大类,一类是系统提供的,一类是开发人

2021-07-08 18:56:02 130

原创 Java类加载过程

今天看看java基础,聊聊java的类加载,不知道小伙伴们好不好奇,当我们启动程序的时候,我们所编写的代码计算器怎么执行的呢,计算机时如何知道代码需要做些什么事情呢?我记得刚刚接触java这门语言的时候,我的第一个程序就是输出"Hello world",哈哈哈,相信有很多小伙伴们有这样的经历,当时没有类似于idea编译器的时候,我们都是先用javac来编译生成.class文件,然后再用java运行所写方法的文件名,这里的文件名和类名要一致,这样程序就可以正确的输出Hello World了,但是在生成cla

2021-07-07 17:56:59 67

原创 事务的实现原理

提到事务,小伙伴们肯定不陌生,在基于spring框架的开发过程中一般是通过@Transactional注解来实现的,使用的场景一般是在一个方法中需要去连续的操作数据库,为了保证数据的一致性,加上事务,但是小伙伴有没有思考过,@Transactional注解这么的神奇么,那么这个注解到底做了什么事情呢,数据库的事务是怎么实现的呢,这个注解会不会失效呢,夺命三连,哈哈哈,不要慌,下面就慢慢的解答这一连串的问题。事务的特点想了解事务是怎么实现的,我们首先应该知道事务是什么东东,它能够帮助我们干什么,那我先来介

2021-07-06 16:48:04 1778

原创 Kafka高性能的原因

近些年,项目中基本是离不开消息队列,消息队列的存在可以给我解决很多问题,特别是在数据量并发很大的情况下,带来的收益是很客观的,因此很多消息队列的框架都创建的出来,比如RabbitMQ,ActiveMQ,Kafka,RocketMQ,每个消息都有优劣,在这里我们只谈论Kafka,因为项目中用到的是Kafka哈哈哈,抱歉哈,目前只能说说Kafka,后面有机会可以说说其他的消息队列,比如RabbitMQ,虽然项目中也用到了,但是了解不是很深入,也就不误导大家了。下面还是通过几个方面来说明Kafka的性能为什么这

2021-07-05 16:17:56 1887 1

原创 Kafka消息的顺序消费

上文中,我们说到了关于Kafka消息丢失和消息重复消费的问题,但不知道小伙伴们有没有遇到这样的应用场景,在并发量过大,生产者生产消息的速度过大,消费者端消费速度太慢,导致消息不能得到"实时"消费,而且消息的过多堆积也有可能对Broker端的持久化造成很大影响,一般为了提高消费者的消费速度,第一个想到的应该就是开启多个线程来进行消息消费了,但这又会导致一个很棘手的问题,那就是在多线程的环境下,消息的消费顺序是得不保证的,哎,一个问题解决了反而又带来了一个更大的问题,头大,小伙伴们莫急,现在我就来给大家一起解决

2021-07-05 09:04:54 592

原创 Kafka消息的丢失和消息的重复消费

周末有空,想到之前项目中用到了消息队列,当时只是简单用了一下工具包,开发完goon功能需求之后,自己又去认真看来一下原理,现在有空就和小伙伴们分享一下吧,希望有问题的地方大家可以指正,互相交流。​ 我们项目是在物联网场景下的,需要采集底层设备的数据,然后对数据进行分析处理,因为数据上传是频率还是很高的,所以项目中用了消息队列进行数据缓冲,上层从队列中读取设备上传的数据,进行数据清理,再进行前端展示,项目刚开始用的是EMQ,是不到大家有没有听说过,当时用这个的原因是因为项目中有个对设备数据生成实时告

2021-07-04 23:02:03 414 1

原创 ReentrantLock和Synchorized的区别

上次通过ReentrantLock来解析AQS,这次我们来详细讲讲ReentrantLock和Synchorized的异同吧。大多数人在需要将一个方法变成线程安全时,第一个想到的就是加上Synchorized关键字,确实通过加Synchorized的方式是很简单的,开发者不需要再关心锁的释放,程序跑就行了,但正是这么简单的方式会带来很多的问题,记住,越是简单的东西,其带来的扩展性是很低的,小伙伴们要慎用哦,接下来就分别来看看ReentrantLock和Synchorized的使用方式和优劣吧。首先我们先

2021-07-02 10:28:57 275

原创 结合ReentrantLock解析AQS

在工作中,"多线程"一直出现在我们耳边,大多数人对于多线程的印象就是能够提高代码的性能,满足多个请求,就比方说是一块蛋糕用一个刀切和用多个刀同时一起切,区别还是很大的,但是很多小伙伴又对于多线程的使用很困难,线程之间的争抢会增加编码的复杂度,所以说多线程真是可爱又可恨。​ 在我刚接触多线程时,我一直有很多疑惑,比如 线程之间是怎么保证顺序的,多个线程去访问同一个代码块时,如果在保证请求顺序的前提下,那么并行不还是最终变成串行,实际的性能提高并不明显,比方说 用多个线程去累计1到100之和,多

2021-07-01 16:15:19 151

阿里巴巴java开发手册嵩山版.zip

阿里巴巴开发手册

2021-07-09

谷歌防广告插件

直接在浏览器的扩展程序中添加程序包即可,亲测可用。

2018-12-20

解压后配置好相应环境即可使用,内容绝对真实!

jdk32位安装包,无需安装,解压就可以使用。内容绝对真实!

2018-10-16

sourceTree git图形化管理工具

版本信息为1.9.13.7 将安装下载后,网上有对应的跳过注册的教程,亲测有效,如果有梯子,那就傻瓜式进行安装,有问题可恢复帮助。

2018-09-20

空空如也

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

TA关注的人

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