- 博客(56)
- 资源 (5)
- 收藏
- 关注
原创 【Maven私服配置】
这里的server的ID没有意义,如果存在多个server会依次往下去找对应的server的用户和密码。在上述中mirrorOf表示只有central的maven才会走这个镜像去访问下载;对于一些中央的pom,应该配置对应的mirror镜像访问。私服需要认证因此需要定义server。其他的会走profit。
2025-02-17 13:50:17
334
原创 中间件插件机制
在mybatis一类中间件在处理的时候,提供了插件机制,类似于aop机制,可以在方法前、方法后进行拦截并且修改入参获得改变其方法的行为。那么调用的的方法应该也需要使用动态代理活动被插件进行aop的对象。
2023-08-08 11:52:11
261
原创 编写springboot组件starter-配置管理
在开发一个组件的时候,需要引入者提供配置选项,比如是否开启,比如配置的规则,需要在引入方进行配置。
2023-08-07 10:47:53
254
原创 各个查询引擎是如何提高写入效率,查询效率
由于是先将消息写入到操作系统的页缓存,而页缓存数据刷新同步sync到磁盘文件是由操作系统来控制的,即操作系统通过一个内核后台线程,每5秒检查一次是否需要将页缓存数据同步到磁盘文件,如果超过指定时间或者超过指定大小则将页缓存数据同步到磁盘。如果消息生产者生产了消息,发送到broker之后,需要存储在磁盘中,如果直接存储到话,并发度会很小,因为操作磁盘会很慢,尤其是操作随机IO,因此看看能不能在写入磁盘的时候,使用顺序IO,这样在接收数据的时候就能大大提高并发量。在查看源码注解时有如下说明。
2023-05-26 12:02:07
480
原创 对接银行处理退票的解决方案
在跨行支付时,付款请求提交汇出行后,由汇出行转交至人民银行支付系统,经人民银行大小额系统处理后会先返回交易成功的结果,再由人民银行转至收款行,收款行在清算过程中会将收款人账户信息、状态、款项用途信息不符、异常、不合规等无法入账的款项原路退回至原汇出行,这个过程就是退票。因此交易成功的状态不一定表示收款账户已入账。产生原因:若收款账号输入错误、收款人姓名与开户银行预留户名不符或开户银行信息不正确、款项用途信息不符等都有可能造成退票。表现形式:会查回一笔金额、对方信息完全一致的收款;
2023-05-11 11:37:42
1208
原创 JUC并发包详解AQS同步队列
在JUC并发包中,AQS为其最关键的作用,全称为abstractQueuedSynchroinzed同步器,为信号量semaphore、同步锁的基础抽象类。其中内部主要有二大块state共享资源,通过并发操作state修改改值为1,如果修改成功则表示获得锁。FIFO队列该队列为CLH队列的变形队列,通过引入双向队列,采取自旋加堵塞的方式提高性能,其中核心为head节点、tail节点。
2023-05-08 10:54:37
530
原创 使用ASE+盐对文件流进行加解密,将盐存入到加密后内容中
每一个文件都对应着自己一个key,也就是说每一个文件自己生成一个password,这样必须破解数据库,才有可能破解文件内容。该方式还是为单一加密,也就是每一个文件都是使用相同的key,即使盐不同,iv 不同,获得到了key也能够解密到所有的文件。但是这样不太放心,password应加密保存到数据库,这样就有一个主密钥,那么主密钥应该如何安全进行管理?以上写法都无法保证百分之百安全,只能提高破解的难度。
2023-05-04 16:50:07
522
原创 【每天学习一点点】微服务网关、zuul、spring cloud gateWay
而现在的开发又是前后端分离的,因此我们访问一个前端地址,可以访问到不同的系统的数据,因此必须在前端中按钮指定系统的url,但是每一个系统的部署ip和port端口不同,如果全部维护在前端信息中,第一个是不安全,这样就把我们的系统信息给暴露出去了;总之,Spring Cloud Gateway 是一个功能强大、易扩展、高性能的 API 网关服务,可以为微服务架构提供统一的入口和出口,并提供了丰富的路由、过滤器、监控等功能,是构建基于 Spring Cloud 的微服务应用程序的不二选择。
2023-04-18 15:25:40
720
原创 【每天学习一点点】RocketMQ的架构、写数据、高效的数据查询索引、负载均衡
RocketMQ 为什么性能高效,到底运用了什么“厉害”的技术?RocketMQ 如何实现刷盘(可以类比一下数据库方面的刷盘、redo、undo 日志)?RocketMQ 文件存储设计理念、基于文件的 Hash 索引是怎么实现的?定时消息、消息过滤等实现原理?如何进行网络编程(Netty 实战)?nameserver、broker、主题、 消费组、消费者、队列负载算法、队列重平衡机制、并发消费、顺序消费、消费进度存储、 定时消息、事务消息、消息过滤等基本概念介绍RocketMQ的Nameserver
2023-04-17 16:13:31
1210
原创 【每天学习一点点:字节码增强】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
647
原创 【每天学习一点点】JVM参数调优
方法区(永久代) : 存储类的行为和共同属性,以及对应的常量池堆空间:存储创建的对象空间本地方法栈虚拟机栈程序计数器。
2023-04-03 11:44:44
343
原创 【分布式协议】分布式强一致性共识算法
在分布式系统中,不同节点之间可能存在网络延迟、故障等原因导致彼此之间存在数据不一致的情况,为了保证分布式系统中的数据一致性,因此需要引入共识算法。共识算法是指在分布式系统中,多个节点通过一系列协议达成一致的过程。这个过程确保不同节点之间的数据状态达成一致,从而保证系统的正确性和可靠性。在共识算法中,节点通过相互通信来传递数据,并根据一定的规则进行数据处理和验证。一旦多个节点达成一致,系统就会根据达成的共识状态来执行相应的操作。著名的共识算法包括Paxos算法、Raft算法、拜占庭容错算法等。
2023-03-31 15:13:05
423
原创 【每天学习一点点】Java SPI机制、dubbo spi机制、Springboot自动配置、nacos插件机制以及使用Spring-plugin策略模式
其中工作原理,我们在工程中定义了一个接口A,在启动的时候会去CLASSPATH路径下的META-INF/services中,找到对应接口全路径下的文件文件,该文件内容是返回了一个实现类的全路径名称,这样就会将接口A的实现类给加载到工程中。在设计原则中有一个原则:依赖倒转原则,应该面向接口编程,也就是说应该依赖接口而不是依赖具体的实现,依赖接口,接口具有不同类型的实现,因此可以提高系统的扩展性,如果仅仅是依赖实现,那么就无法进行扩展了。这里的文件名 java.sql.Driver 其实就是一个全路径接口。
2023-03-22 20:17:38
1944
原创 【并发】详解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
8790
2
原创 SQL编写优化技巧
索引是分聚集索引、非聚集索引的,因此如果select * from id = 1,这个是直接走聚集索引也就是主键索引,叶子节点存储的是全部列的数据,这样就不需要回表,但是如果是select * from name = ‘xx’ ,name列创建的索引是非聚集索引,叶子节点是存储的是(id,name),这样会通过ID去聚集索引再去找。当使用=、、>、>=、
2023-03-16 15:46:43
919
原创 代码检查清单
自己的写的方法不要返回null,如果是null则调用方也要进行验证是否为空,如果调用第三方代码则需要进行判断是否为null,返回值需要在代码注释写清楚。前端和后端不是同时进行的,因此需要前端先做初步的判断,如果完全在自测测的时候并不能考虑很细节,考虑到每一个接口的事情。代码的注释:坏注释都是糟糕代码的支撑或借口,或者是对错误决策的修正,基本上等于程序员自说自话。在解决问题时,需要考虑其相关性、将问题所涉及的其他场景列出,并且检查。减少发包次数,实在遇到堵塞问题则进行发包,减少发包时间。
2023-03-14 15:53:13
536
原创 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
103
原创 教你如何搭建maven nexus私服、配置setting文件、管理系统模块
系统最开始的时候由一个单体应用慢慢拆分成微服务,并且抽取成一些共同的模块,组装成jar进行管理,如果没有私服的时候则无法做好版本管理、团队间使用也会很不方便。因此需要在系统搭建maven私服,将共同模块上传到私服,将发布好的版本上传到私服进行管理。
2023-02-13 17:52:28
3266
1
原创 精益创业读后感
在入职新公司后,该公司是一个“新创企业”,也可以简称为创业公司,该企业要求新入职人员必须学习一门书籍《精益创业》。在精益创业的时候,主要讲到如何将一个创业做到成功,成功也是有方法论的,按照科学的方法进行会事半功倍。按我的理解:以创新的产品去创业。 而创新是一个不同于之前的模式,也就是说创新是充满不确定性的,是不可预期的。也正是这种不可预期的结果,才要有正确的科学方法去指导。............
2022-07-07 10:07:09
1896
价值240元的c语言编程学习教程(带软件编写工具和学习视频)
2019-01-04
window c语言编写的多线程的Socket局域网聊天室
2019-01-04
webview app
2018-11-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人