- 博客(58)
- 资源 (3)
- 收藏
- 关注

原创 从nacos学自动装配
1.是否需要自动装配2.通过加载 META-INF 目录下的 spring.factories下的资源获取全限定路径3.获取需要排除的配置类4.检查需要排除的类是否属于当前的classloader,和是否存在与需要自动装配的集合中5.清除排除配置类。
2023-11-08 09:53:41
319

原创 Raft协议
最近在系统的实战spring cloud,在学习nacos过程,我们知道nacos的底层用到了Raft协议。在Raft协议之前是一个paxos的协议,但是这个协议有点复杂,于是Stanford的两位教授决定设计一种较简单的一致性算法。参考自我们一起来学习一下Raft协议。
2023-09-22 11:11:28
269

原创 Redis场景使用与思考(一)
前言:在工作里面,大家肯定肯定或多或少都用过redis,绝大部分使用redis用作缓存,一部分功能用redis的其他功能。那么说到redis这个非关系型数据库,想必在我们的工作里面的都思考过。1.什么时候时候该使用redis呢?或者说什么场景下使用redis比较好。2.选用redis的哪种数据结构呢?3.该怎么使用redis呢?因为大部分时候使用redis时,通常配合数据库的一起使用,那么就会想到缓存不一致的问题,那么针对不同的场景,我们应该怎么选择使用的方式呢?4.那么用的redis
2021-03-18 01:42:53
600
1

原创 常见OOM排查和处理
总结一些常见OOM1.java.lang.OutOfMemoryError: Java heap space首先在错误提示那已经提示了OOM发生在堆空间里面,因为在本地idea,所以为了模拟这种情况配置了VM Options :-Xms10m -Xmx10m -XX:+PrintGCDetails为温故而知新,我还是解释一下各参数的含义 -Xms10m代表堆初始化大小为10m;-Xmx10m代表堆最大为10M;-XX:+PrintGCDetails代表打印日志,为什么加这个呢,因为我在本...
2020-11-05 16:47:01
4411
3

原创 Transation-多数据源下解决同一个方法多数个事务问题
前言在最近的工作中,公司要把以前php写的代码先一部分转为java,里面在一个方法里面需要对多个数据源进行事务的管理。在这篇文章里面我会介绍一些自己在解决这个问题时的一些思路和我的解决办法。问题引入:...
2020-06-05 16:40:12
3325

原创 oracle-表分区里面爬过的坑
当大家遇到小数据的时候,大家可能想着在where后面多加点约束条件;当数据在大点的时候,大家可能就开始考虑给这添加索引了;当大家遇到百万级千万级数据的时候,大家就可能开始添加表分区了。so,我就开始了我的分(keng)区(die)之旅。一开始,由于我的这张大表有100多万数据量,就单单一个存储过程居然执行了一个多钟,于是,我便把这张大表改成分区表,并在ID上给这添加索引,优化存储过程。改成
2017-11-28 21:25:57
12189
1
原创 vertx idea快速使用
从进入,找到quick start点击start.vertx.io,也可以直接点击,选择对应的vertx版本和jdk版本。(因为用的是公司电脑,我最后会改成jdk8)
2024-12-17 16:54:43
516
原创 记录sentinel实践,com.alibaba.csp.sentinel.slots.block.flow.FlowException: null问题
背景:近期项目准备使用sentinel做服务内的限流,熔断操作。记录一下之前使用sentinel过程一直遇到一个问题:明明设置了资源名称,也设置了blockHandler的对应方法,但是还是会一直报com.alibaba.csp.sentinel.slots.block.flow.FlowException: null。
2024-08-01 15:29:09
358
原创 Arthas windows实践与火焰图初识
Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。这个类从哪个jar包加载的?为什么会报各种类相关的Exception?我改的代码为什么没有执行到?难道是我没commit?分支搞错了?遇到问题无法在线上debug,难道只能通过加日志再重新发布吗?线上遇到某个用户的数据处理有问题,但线上同样无法debug,线下无法重现!是否有一个全局视角来查看系统的运行状况?有什么办法可以监控到JVM的实时运行状态?怎么快速定位应用的热点,生成火焰图?
2022-10-17 18:14:33
2913
原创 git配置用户
git config --global user.password “xxx”git config --global user.name “xxxx”git config --global user.email “xxxx”git config --list
2020-11-26 13:37:44
433
原创 java线程池-理解总结
大意了,温故而知新啊,居然把java线程池的内容给记混了,特写此文章,告诫自己。学习要持之以恒,多思考,多动手。下面是我自己画的流程图,再次理清思路,告诫自己不要犯错。
2020-11-15 01:15:00
223
原创 Http
1.GET 和POST的区别1.GET是不安全的,传输过程中,参数放在url上;POST的所有操作对用户是不可见的。2.GET传送的数据比较小,主要受url长度限制;而POST传送的数据量较大,一般默认不受限制3. Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。4. Get执行效率却比Post方法好。Get是form提交的默认方法。时刻总结---...
2020-10-27 18:29:51
100
原创 DCL中实例一定需要volatile修饰吗
在学习关于cpu基础的知识的过程中,看到了有关volatile的一个小知识点,本篇属于随笔,记录一下东西。简单开展,简单阐述。提出问题:DCL中实例一定需要volatile修饰吗?先来看看DCL的代码private volatile static SafeLanHanSingleton instance; private SafeLanHanSingleton(){} public static SafeLanHanSingleton getInstance(){ .
2020-09-14 23:23:23
197
原创 windos下kafka初探
废话不多说准备工作1.去官网下载zookeeper相关的文件http://zookeeper.apache.org2.去网关下载kafka的压缩包http://kafka.apache.org/downloads3.修改zookeeper的配置文件如果没有zoo.cfg文件则拷贝zoo_sample.cfg文件修改本地存在数据和日志的文件4.启动zookeeper,在bin目录下启动zkServer.cmd5.解压kafka后,在kafka目录下cmd ,...
2020-09-11 14:56:56
134
原创 java设计模式理解-单例模式
在日常的工作里面,写多了业务代码,但是随着时间增长,年龄增长挺多,能力知识却增的不多。认真的学习设计模式,让自己有意识有能力的把设计模式融入到自己的代码里面,而不是仅仅写业务代码。定义在百度百科里面,它这样写道:单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”---------------------------比方说:在sp
2020-08-12 11:42:12
242
原创 JAVA多线程-消费者生产者
消费者生产者消费者生产者模式就是N个生产者进行生产,N个消费者进行消耗,而两种角色通过内存缓存进行通信。这种方式极大的缓解的代码的耦合度。模型图:线程的生命周期在了解生产者消费者模式之前,先了解一下线程的生命周期。1.新建:当线程刚new出来的时候就是NEW状态2.就绪:当线程执行start()后,线程处于等待CPU分配资源阶段,谁先抢的CPU资源,谁开始执行;3.运行:当就绪的线程被调度和获取时间片后,就会开始执行run方法的操作。4.阻塞:在运行状态..
2020-08-03 21:04:02
817
原创 spring-@Autowired注入与构造函数注入使用
前言因为业务关系也看了些同事写的代码,因为公司没有明确规定,有一部分人在注入依赖的时候使用了用Spring推荐的构造器注入的方式,一部分人使用了@Autowired的注解进行注入。因此,接下来我试着总结归纳一下相关的情况,做一次回顾。用自己的话去说出来才算是真的掌握。使用介绍1.@Autowired注入@RestController@RequestMapping("/test")public class TestController { @Autowired .
2020-07-30 16:47:42
23136
6
原创 Redis学习篇-缓存穿透,缓存击穿,缓存雪崩
前言:随着业务的发展,可能出现了大量数据的请求,在这个时候,如果所有的请求都涌入数据库,就会造成数据库的压力增大,一些简单的sql查询因为数据库承受大量压力的而几何式变慢,甚至造成瘫痪。因为,为了解决这个问题,引入了nosql,而redis则是nosql技术中的一种。但是引入nosql,则会引入缓存穿透,缓存击穿,缓存雪崩等问题,因此,本章则会关于这几个问题,说说我自己的理解和解决。本文所引用redis结构是一主二从三哨兵。一.是什么既然引入redis会引入缓存穿透,缓存击穿,缓存雪
2020-05-27 17:08:40
219
原创 bitmap 压缩空间
前言:bitmap是压缩空间的一个好方法。byte -> 8 bits -->1字节char -> 16 bit -->2字节short -> 16 bits -->2字节int -> 32 bits -->4字节float -> 32 bits -->4字节long -> 64 bits -->8字节8bit = >1byte 1024btye=>1KB..
2020-05-14 17:19:40
436
原创 Redis学习篇-Springboot+redis哨兵模式(sentinel)
目录:Redis学习篇-windows下redis主从模式搭建Redis学习篇-windows下哨兵模式前言:通过结合前篇的redis sentinel与springboot达到增加理解的效果。本文采取1master2slave3sentinel.一.预备工作先启动master和两个slave,然后再启动sentinel.redis端口依次为6379,6380,6381,sentinel依次是10001,10002,10003二.创建springboot项目..
2020-05-13 18:42:49
37638
4
原创 Redis学习篇-windows下哨兵模式
前言:紧接上篇主从模式,为了解决主从的主节点故障时,不能切换的问题,引入了哨兵(sentinel)模式。一.介绍根据官网https://redis.io/topics/sentinel的介绍,哨兵模式是redis提供的一套高可用的解决方案,用来面对redis失败的时,不需要人为去干涉。Sentinel的当前版本称为Sentinel 2。它使用更强大且更易于预测的算法(在本文档中进行了说明)重写了Sentinel的初始实现。自Redis 2.8起已发布稳定版本的Redis Senti...
2020-05-11 18:10:39
1146
原创 Redis学习篇-windows下redis主从模式搭建
前言选用在windows下是因为我现在没虚拟机,然后买的服务器也都过期了,就在windows下练手了。后面有机会时间,都会转回linux下操作。用已经用过了,现在要把自己的知识巩固一下,总结一下。一.下载redis链接:https://github.com/microsoftarchive/redis/releases自己选择对应的版本下载二.解压解压压缩包到本地...
2020-05-08 16:42:32
1701
1
原创 spring boot与springcloud版本的对应关系
数据来源:https://start.spring.io/actuator/info目的:只是为了方便自己查询
2020-04-27 17:30:43
263
原创 Springboot yml文件 context-path配置不生效解决
在springboot2.x版本后,servlet.context-path要改在server的底下
2020-04-14 18:01:11
3506
1
原创 JVM配置信息
很久没写博客了,因为之前博主遇到了情感问题,现在逐渐走出来了。记录一下最近遇到的跟jvm配置相关的问题。本文分两个部分,一是遇到的问题,还有是怎么解决的;二是延续该问题的学习。1.先说一下背景:最近接到一个需求,是需要异步导出数据,为避免单个excel数据量过大,因此设置了单个excel的数据量大小。后因运营需要,需要提高单个excel的数据量大小到50w行数据。一开始本地测试导出是没有问...
2019-09-25 17:23:27
184
原创 Excel合并记录
前天,被产品经理要求我将原本二十多个excel合并成一个excel,合并后的一个excel大概30W+左右的数据量,于是我使用poi对excel进行合并,我直接贴代码。实验数据大概15W左右,耗时大概35秒合并excel代码public static void mergeExcel(String path, String outputPath) throws IOExcepti...
2019-08-23 17:46:10
252
1
原创 git密码修改后 远程操作报错
因为公司检测密码太过简单,被迫改密码,密码改完以后,对git的操作报错,如下图一 图一因此查的一方法,记录于此,帮助自己,也帮助他人1.打开控制面板,找到凭据管理器2.点击windows凭据,修改git的密码...
2019-07-12 13:56:12
1335
原创 git常用命令
记录个人常用git命令,懒得每次都查一遍1.拉取代码git initgit remote add origin <url>git checkout -b <branch>git pull origin <branch>2.冲突时,先保存本地,再拉代码,最后合并git stashgit pull origin <b...
2019-06-12 14:51:12
173
原创 Spring系列-ioc的简单理解
小弟即将辞掉第一份工作,复习的时候问了我老大一句到底该怎么去理解Spring IOC呢?老大滔滔不绝的给我讲了一个多小时,我得到了一些启发,所以写下这篇文章,来记录我此次的收获。学习一样东西不要只学他做了什么,ioc是控制反转,但我们在认真的思考一下,出现这种特性,肯定是因为需求来的,从他的来龙去脉了解起,才能很好的建立自己的知识金字塔--来自我老大的原话。学习不是一蹴而就,学习是一个过程,送给各...
2019-05-12 17:16:01
304
1
原创 MQ系列------RabbitMQ入门(一)
一.什么是MQMQ(message queue 消息队列)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。--...
2019-04-28 01:33:24
345
1
原创 Https的流程
前言:本文只讲Https实现的流程。现在有一个场景:一个人A要其他人B,C,D交流,但是A希望的是他和B交流不会被C,D知道;自然与C的交流也不愿意被B,D知道。于是乎,人们想出了第一个方法,就是在A和B,C,D交流的时候分别都产生一个公钥,传送给B,C,D,双方都根据这个公钥加密解密对话。这样的话,交流的时候大家就可以通过公钥去解析对话,得到各自要说的话,但是这个想法很快...
2019-04-19 01:09:49
1437
2
原创 java基础-访问控制符protected
大部分开发可能写代码的时候都用到了public,private ,然而我们一开始学习java的时候其实介绍了public,private,protected,default。然后protected就可能就认识一下就过了,并没有用到。所以,我特意写下这个笔记提醒一下自己。public:具有最大的访问权限,可以访问任何一个在classpath下的类、接口、异常等。它往往用于对外的情况,也就...
2018-12-20 23:11:50
417
原创 java静态内部类--基础再思考
前言:以前学习java的时候,学习java的静态内部类,都只知道形式,可是却不知道,静态内部类是为了什么而出现,又是出现在哪些场景里面,导致写代码的时候,基本没有考虑到静态内部类,而最近在看<effective java>时和工作上都不约而同的出现了静态内部类,二者出现让我再次思考,java的静态内部类到底是干什么。下面我并不会先说静态内部类的原理,优点等等东西。我会先从引起我思考...
2018-11-14 00:54:05
307
转载 java代码优化
通过java代码规范来优化程序,优化内存使用情况,防止内存泄露可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。本文讨论的主要是如何提高代码的效率。在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。养成好的代码编写习惯非常重要,比如正确地、巧...
2018-10-31 21:12:20
200
原创 http与https
最近负责一个对接项目,里面所有的前后台都准备好了,但是呢,真正上环境的时候,却发现一事件,把我们自身的项目嵌套在以前项目做的一个平台的时候,当点击进入我们自身项目的时候,却报出一个网址不在或已经永久移动的错误。这是什么错误呢?原来啊以前项目已经上了环境了,用的是https,而我们自身项目的却是用的http,当以前项目调用我们自身的路由的时候,浏览器会做出一个“是否继续访问不安全网址”的询问,但...
2018-09-04 00:25:14
488
转载 JAVA8 十大新特性详解
前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java 8 – Lambdas and Concurrency、Java 8 Date Time API Tutorial : LocalDateTime和Abstract Class Versus Inte...
2018-05-17 23:02:12
172
原创 反射机制学习之路
一.什么是反射机制?这里我首先粘贴一下百度百科上的解释:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。在百度百科后面还说了Class对象与反射之间的关系:众所周知Java有个Object 类,是所有Java 类的继承根源,其内声明了数个应该在所有...
2018-04-27 00:13:28
1842
1
转载 java 垃圾回收-机制详解
转载意义:作为一名程序员,要沉下心来了解java的底层知识。我看了几遍,还没完全看懂,留在自己博客共勉,参悟。一、为什么需要垃圾回收 如果不进行垃圾回收,内存迟早都会被消耗空,因为我们在不断的分配内存空间而不进行回收。除非内存无限大,我们可以任性的分配而不回收,但是事实并非如此。所以,垃圾回收是必须的。二、哪些内存需要回收?哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无...
2018-04-11 00:31:46
236
转载 Spring-IOC详解
IOC即inverse of control 控制反转以前对象之间的引用是通过new来调用实现,有了Spring IOC,我们可以把对象之间的引用交给他来管理,这样就把控制权交给了Spring,所以就叫做控制反转。Spring IOC的实现用到了设计模式:简单工厂,他也是从简单工厂进化而来的,下面我们看看Spring的IOC是如何进化来的。简单工厂模式实现:[java] view plain co...
2018-04-09 00:28:26
160
转载 mysql 的存储引擎介绍
mysql 的存储引擎介绍在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库。而在设计表的时候,我们都会关注一个问题,使用什么存储引擎。等一下,存储引擎?什么是存储引擎?什么是存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术...
2018-03-11 16:24:20
161
android获取wifi列表
2016-04-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人