![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 77
weixin_37548740
这个作者很懒,什么都没留下…
展开
-
关于一次服务优化的总结和思考
简介最近业务上线已经有一段时间了,在这期间业务的流量逐渐上升,由刚开始时几乎忽略不计的并发流量,上升到平均每秒6M左右,高峰期可达20M,在排除掉一些其他数据的流量后,真实入库的数据平均在2M,高峰期在8M左右,在这期间系统出现了一些并发问题,这里对排查方法和自己对优化方面的思考做了一些总结。系统架构和业务系统是一个物联网平台,主要的就是对硬件设备进行管理,和收集硬件所产生的数据,并且存储入库。目前系统有800多个设备实时的产生数据,每个设备0.2s-1s产生一条测试数据(下面称作测试数据),每条测试原创 2022-03-18 15:37:51 · 617 阅读 · 0 评论 -
Spring循环依赖和的源码分析
Spring循环依赖和的源码分析简介循环依赖并不是一个好的设置,现实代码中很多离奇问题都由循环依赖导致(如死锁等),但是Spring是如何解决这部分问题的呢?答案是利用了Java的特性,同一个对象的应用指向的是同一个类,这样就能在类还在实例化阶段,还没对值进行赋值阶段就创建一个早期实例化对象,依赖对象去持有这个临时对象的引用,在依赖对象完全初始化后,由于持有对象是拥有者依赖对象的同一个引用,这样就能完成循环依赖的操作,现实中循环依赖并不是一个好的模式,我也会在现实中去避免去使用,就如之前介绍的六边形架构原创 2021-12-22 17:02:06 · 228 阅读 · 0 评论 -
泛型在代码设计中的思考
泛型在代码设计中的思考简介最近查看了Hibernate Validator泛型的使用和认知有了新的理解,这里结合自己的理解做一个总结。JAVA 的类型 ┌────┐ │Type│ └────┘ ▲ │ ┌────────────┬────────┴─────────┬原创 2021-11-24 14:15:19 · 121 阅读 · 0 评论 -
Mybatis Spring核心源码分析
##### 简介在最开始接触Mybatis之前就好奇Mybatis是如何将我们执行我们定义的接口?其如何和我们编写的xml关联起来,最近又带着这个疑问分析了一下Mybatis Spring的源码,发现其核心也不复杂就是java 的动态代理。##### 配置入口依旧是老套路,我们先从入口分析,Mybatis需要使用@Mapper注解来在Spring中注册,我们只需要全局搜索看在哪里调用打@Mapper即可,在MybatisAutoConfiguration中找到了内部类以下方法```pub.原创 2021-10-11 16:12:51 · 113 阅读 · 0 评论 -
大流量下物联网数据校验实践
#### 简介最近项目中遇到一个问题,服务器使用tcp与电池检测设备相连,电池检测设备挂载了大量的通道,这些通道会产生电池检测数据(平均1秒产生一条数据,一条数据平均130字节,最快100毫秒产生一条数据),一个测试流程可连续运行几天置一年不等,那么服务端如何检验这些设备发送的检测数据是否有漏发丢发或者是重复发送?第一解决方案就是将这些数据存储在数据库中,每次上传数据的时候去数据库中查询这些数据是不是已经发送过,但是一个测试数据可能有百万甚至上千万条,且在上千个通道并发运行的情况下如果将这些数据全部存在原创 2021-07-20 17:08:47 · 201 阅读 · 1 评论 -
基于领域驱动设计和maven spring的模块化开发的实践
简介基于领域驱动设计(DDD)开发的项目,它具有代码层次分明,业务更好的贴合业务,使代码的可维护性和可读性大大提高等优点,而MAVEN和Spring天生就是为模块化而设计开发的,最近结合之前的DDD使用经验,结合使用MAVEN和Spring对项目的模块化进行一次实践。代码地址:https://github.com/liushprofessor/ddd_module为什么要模块化和为什么需要微服务之前本人参与过的项目中有些采用了SpringCloud全家桶对项目进行微服务化,但是经过一番实践后发现大原创 2020-10-17 23:24:06 · 547 阅读 · 2 评论