自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (5)
  • 收藏
  • 关注

原创 中间件插件机制

在mybatis一类中间件在处理的时候,提供了插件机制,类似于aop机制,可以在方法前、方法后进行拦截并且修改入参获得改变其方法的行为。那么调用的的方法应该也需要使用动态代理活动被插件进行aop的对象。

2023-08-08 11:52:11 186

原创 编写springboot组件starter-配置管理

在开发一个组件的时候,需要引入者提供配置选项,比如是否开启,比如配置的规则,需要在引入方进行配置。

2023-08-07 10:47:53 164

原创 各个查询引擎是如何提高写入效率,查询效率

由于是先将消息写入到操作系统的页缓存,而页缓存数据刷新同步sync到磁盘文件是由操作系统来控制的,即操作系统通过一个内核后台线程,每5秒检查一次是否需要将页缓存数据同步到磁盘文件,如果超过指定时间或者超过指定大小则将页缓存数据同步到磁盘。如果消息生产者生产了消息,发送到broker之后,需要存储在磁盘中,如果直接存储到话,并发度会很小,因为操作磁盘会很慢,尤其是操作随机IO,因此看看能不能在写入磁盘的时候,使用顺序IO,这样在接收数据的时候就能大大提高并发量。在查看源码注解时有如下说明。

2023-05-26 12:02:07 394

原创 对接银行处理退票的解决方案

在跨行支付时,付款请求提交汇出行后,由汇出行转交至人民银行支付系统,经人民银行大小额系统处理后会先返回交易成功的结果,再由人民银行转至收款行,收款行在清算过程中会将收款人账户信息、状态、款项用途信息不符、异常、不合规等无法入账的款项原路退回至原汇出行,这个过程就是退票。因此交易成功的状态不一定表示收款账户已入账。产生原因:若收款账号输入错误、收款人姓名与开户银行预留户名不符或开户银行信息不正确、款项用途信息不符等都有可能造成退票。表现形式:会查回一笔金额、对方信息完全一致的收款;

2023-05-11 11:37:42 681

原创 ThreadLocal-为什么会导致内存泄漏

在使用threadLocal之后,需要使用remove进行移除即可。

2023-05-09 19:14:42 720

原创 JUC并发包详解AQS同步队列

在JUC并发包中,AQS为其最关键的作用,全称为abstractQueuedSynchroinzed同步器,为信号量semaphore、同步锁的基础抽象类。其中内部主要有二大块state共享资源,通过并发操作state修改改值为1,如果修改成功则表示获得锁。FIFO队列该队列为CLH队列的变形队列,通过引入双向队列,采取自旋加堵塞的方式提高性能,其中核心为head节点、tail节点。

2023-05-08 10:54:37 465

原创 使用ASE+盐对文件流进行加解密,将盐存入到加密后内容中

每一个文件都对应着自己一个key,也就是说每一个文件自己生成一个password,这样必须破解数据库,才有可能破解文件内容。该方式还是为单一加密,也就是每一个文件都是使用相同的key,即使盐不同,iv 不同,获得到了key也能够解密到所有的文件。但是这样不太放心,password应加密保存到数据库,这样就有一个主密钥,那么主密钥应该如何安全进行管理?以上写法都无法保证百分之百安全,只能提高破解的难度。

2023-05-04 16:50:07 365

原创 【每天学习一点点】微服务网关、zuul、spring cloud gateWay

而现在的开发又是前后端分离的,因此我们访问一个前端地址,可以访问到不同的系统的数据,因此必须在前端中按钮指定系统的url,但是每一个系统的部署ip和port端口不同,如果全部维护在前端信息中,第一个是不安全,这样就把我们的系统信息给暴露出去了;总之,Spring Cloud Gateway 是一个功能强大、易扩展、高性能的 API 网关服务,可以为微服务架构提供统一的入口和出口,并提供了丰富的路由、过滤器、监控等功能,是构建基于 Spring Cloud 的微服务应用程序的不二选择。

2023-04-18 15:25:40 591

原创 【每天学习一点点】RocketMQ的架构、写数据、高效的数据查询索引、负载均衡

RocketMQ 为什么性能高效,到底运用了什么“厉害”的技术?RocketMQ 如何实现刷盘(可以类比一下数据库方面的刷盘、redo、undo 日志)?RocketMQ 文件存储设计理念、基于文件的 Hash 索引是怎么实现的?定时消息、消息过滤等实现原理?如何进行网络编程(Netty 实战)?nameserver、broker、主题、 消费组、消费者、队列负载算法、队列重平衡机制、并发消费、顺序消费、消费进度存储、 定时消息、事务消息、消息过滤等基本概念介绍RocketMQ的Nameserver

2023-04-17 16:13:31 861

原创 【每天学习一点点:字节码增强】class字节码结构、ASM生成新的class字节码、javassist操作字节码、Instrument类库运行时加载类、Agent注入到JVM、JPDA接口attach

Javassist 提供了一组 API 来访问和操作 Java 类的属性、方法、构造函数等元素,并提供了丰富的模板功能来简化 Java 类的创建和修改过程。这样就需要利用到class字节码的javap -c中的code区域的指令集,也就是说我们方法在运行的时候,会被编译成指令进行操作,因此我们可以修改对应的指令来改变行为。我们都知道java是一个跨平台的开发语言,其主要核心在于class字节码,也就是java在编译后会生成对应的class字节码文件,会通过类加载器将class字节码加载到jvm运行空间中。

2023-04-14 15:39:20 327

原创 【每天学习一点点】JVM参数调优

方法区(永久代) : 存储类的行为和共同属性,以及对应的常量池堆空间:存储创建的对象空间本地方法栈虚拟机栈程序计数器。

2023-04-03 11:44:44 258

原创 【分布式协议】分布式强一致性共识算法

在分布式系统中,不同节点之间可能存在网络延迟、故障等原因导致彼此之间存在数据不一致的情况,为了保证分布式系统中的数据一致性,因此需要引入共识算法。共识算法是指在分布式系统中,多个节点通过一系列协议达成一致的过程。这个过程确保不同节点之间的数据状态达成一致,从而保证系统的正确性和可靠性。在共识算法中,节点通过相互通信来传递数据,并根据一定的规则进行数据处理和验证。一旦多个节点达成一致,系统就会根据达成的共识状态来执行相应的操作。著名的共识算法包括Paxos算法、Raft算法、拜占庭容错算法等。

2023-03-31 15:13:05 292

原创 【每天学习一点点】Java SPI机制、dubbo spi机制、Springboot自动配置、nacos插件机制以及使用Spring-plugin策略模式

其中工作原理,我们在工程中定义了一个接口A,在启动的时候会去CLASSPATH路径下的META-INF/services中,找到对应接口全路径下的文件文件,该文件内容是返回了一个实现类的全路径名称,这样就会将接口A的实现类给加载到工程中。在设计原则中有一个原则:依赖倒转原则,应该面向接口编程,也就是说应该依赖接口而不是依赖具体的实现,依赖接口,接口具有不同类型的实现,因此可以提高系统的扩展性,如果仅仅是依赖实现,那么就无法进行扩展了。这里的文件名 java.sql.Driver 其实就是一个全路径接口。

2023-03-22 20:17:38 1424

原创 【并发】详解redis的incr、decr命令

redis是一个单线程的服务,那么所有的命令肯定会排队被redis执行,redis提供的命令都是原子性的,百度搜索incr\decr就是说将对应的key+1,key-1的值重新set到redis中,而且很多都是认为incr\decr原子性的,那么现在就有一个问题,如果redis的key:a, value:100,那么100个线程并发执行decr操作,那么对应的key的value是不是应该为0?按照百度的说法,应该是。

2023-03-22 16:39:10 4170 2

原创 【分布式协议】服务寻址

分布式协议

2023-03-20 14:59:05 165

原创 SQL编写优化技巧

索引是分聚集索引、非聚集索引的,因此如果select * from id = 1,这个是直接走聚集索引也就是主键索引,叶子节点存储的是全部列的数据,这样就不需要回表,但是如果是select * from name = ‘xx’ ,name列创建的索引是非聚集索引,叶子节点是存储的是(id,name),这样会通过ID去聚集索引再去找。当使用=、、>、>=、

2023-03-16 15:46:43 809

原创 代码检查清单

自己的写的方法不要返回null,如果是null则调用方也要进行验证是否为空,如果调用第三方代码则需要进行判断是否为null,返回值需要在代码注释写清楚。前端和后端不是同时进行的,因此需要前端先做初步的判断,如果完全在自测测的时候并不能考虑很细节,考虑到每一个接口的事情。代码的注释:坏注释都是糟糕代码的支撑或借口,或者是对错误决策的修正,基本上等于程序员自说自话。在解决问题时,需要考虑其相关性、将问题所涉及的其他场景列出,并且检查。减少发包次数,实在遇到堵塞问题则进行发包,减少发包时间。

2023-03-14 15:53:13 330

原创 No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

在maven install的时候,对于新引入的项目的时候常常会出这个问题,需要去idea的设置中。找到对应java Compiler。将一些需要设置jdk的内容设置。

2023-03-08 17:23:52 57

原创 Docker学习

docker

2023-03-08 14:24:54 64

原创 详解java.util.concurrent并发工具类

多线程

2023-03-07 18:34:04 741

原创 java 深拷贝

java

2023-02-20 11:57:34 34

原创 教你如何搭建maven nexus私服、配置setting文件、管理系统模块

系统最开始的时候由一个单体应用慢慢拆分成微服务,并且抽取成一些共同的模块,组装成jar进行管理,如果没有私服的时候则无法做好版本管理、团队间使用也会很不方便。因此需要在系统搭建maven私服,将共同模块上传到私服,将发布好的版本上传到私服进行管理。

2023-02-13 17:52:28 2991

原创 JWT工具类

jwt

2023-02-02 12:02:24 83

原创 UML箭头关系

UML

2023-02-02 11:35:12 1930

原创 Netty初步理解

Netty

2023-02-01 20:17:32 912

原创 关于推和拉的处理

数据的拉和推

2023-02-01 15:46:34 30

原创 浅拷贝与深拷贝

java 深拷贝

2023-01-30 17:48:51 612

原创 Web系统时区问题

时区问题

2023-01-28 11:39:02 296

原创 FastJson 序列化SerializeFilter

1

2023-01-12 10:19:03 104

原创 String\基础类型包装类方法参数是值传递还是引用传递

java

2023-01-06 17:02:29 233

原创 反射机制获得字段

2023-01-05 11:28:35 40

原创 【dubbo】springboot集成dubbo框架

dubbo

2022-12-30 16:18:57 197

原创 docker desktop 运行mysql

docker

2022-12-28 18:00:41 1320

原创 Spring内置定时器的使用

spring定时器

2022-11-28 10:58:37 1051

原创 多个ControllerAdvice的使用

多个ControllerAdvice的使用

2022-11-28 10:26:15 1264

原创 Spring Boot 引入jar 包中的 controller

Spring Boot 引入jar 包中的 controller

2022-11-21 19:54:36 3142

原创 java使用MD5生成摘要

【代码】java使用MD5生成摘要。

2022-11-21 16:58:52 248

原创 精益创业读后感

在入职新公司后,该公司是一个“新创企业”,也可以简称为创业公司,该企业要求新入职人员必须学习一门书籍《精益创业》。在精益创业的时候,主要讲到如何将一个创业做到成功,成功也是有方法论的,按照科学的方法进行会事半功倍。按我的理解:以创新的产品去创业。 而创新是一个不同于之前的模式,也就是说创新是充满不确定性的,是不可预期的。也正是这种不可预期的结果,才要有正确的科学方法去指导。............

2022-07-07 10:07:09 1743

原创 java 字符串后面数字进行递增

Java工具类

2022-07-06 15:11:27 1682

原创 springboot的事件通知机制的事务性

在系统开发的过程中,会有不同对象之间有关联性,如a对象的状态发送了改变,需要改变b对象的状态,如果在同一个方法中编写2个实现逻辑,会导致a和b对象进行紧耦合,无法实现高内聚,这样之后可能需求改变,如果a对象的状态发送了改变,又需要改变c对象的状态,这样需要去更新原来的实现逻辑,又破坏了开闭原则、单一职责原则,因此需要引入springboot的事件监听机制,这样可以让变化与变化进行解耦合,提高各自的高内聚。事件监听机制,类似设计模式中的观察者模式,当一个状态发送了改变,会通知该类所关联的所有的观察者。2.2

2022-06-15 10:26:38 674

软件编译原理.rar

东北大学编译原理中文课件东北大学编译原理中文课件东北大学编译原理中文课件

2019-10-07

东北大学软件需求分析与系统设计哲洙老师的笔记重点

东北大学 软件需求分析与系统设计哲洙老师的笔记重点

2019-01-04

价值240元的c语言编程学习教程(带软件编写工具和学习视频)

这个是一个价值240元的c语言编程学习教程(带软件编写工具和学习视频)!其中有函数、基本概念语法、结构体共用体、流程控制、数组、文件 、指针、作用域以及存储类别

2019-01-04

window c语言编写的多线程的Socket局域网聊天室

这个程序是在window下用c编写的socket基于多线程的程序,程序能够完美运行,并且程序注解也是很清楚的哦!Liunx版本的c编写的socket多线程的聊天室也是有的,程序中有可直接执行的exe文件方便大家测试。

2019-01-04

webview app

如你们需要封装一个网站成为一个app,或者想进行半生态的app开发,里面的源代码都有价值参考,里面解决了js显示、网页直接返回、可以调用本地的文件管理器用于下载上传文件等。

2018-11-09

空空如也

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

TA关注的人

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