- 博客(13)
- 收藏
- 关注
原创 业务规则配置中心的设计方案
业务规则配置中心的设计方案 背景:需要一个高可用,高性能的业务规则配置中心查询服务,并且提供低频的修改,修改要求准实时生效业务规则配置,从大的数据结构来说,是一个List,每一个元素,是一个自定义的数据结构长期存储,需要使用可长期存储的解决方案,建议使用数据库查询服务高可用,即使长期存储介质出现故障,只要不是所有的应用服务器故障,都要可提供稳定的服务高性能,要求保证99%以上查询,是内存级的服务,不可操作硬盘或SSD一旦修改完成,必须准实时生效,生效时间原则来说,要求在秒级,不允
2021-07-30 00:36:40
1525
原创 Java Spring分库分表方案详述
以下方案可实现,已经实现分库方案前面已经说过了,这里再说下细节1、实现AbstractRouteDataSource不用说,这里提两点,兼容模式和defaultDatasource建议关闭,以防出现问题2、将数据库层封到manage层,不管有没有用事务,使用注解拦截,基于AOP将分库key放到ThreadLocal中,执行完成后再将数据清除3、关于分库注解和事务,事务的默认优先级是...
2020-05-04 17:50:43
883
原创 Java Spring 分库分表方案概述
目前分库分表的实现上无非就那么几大类实现分库方案:方案1、采用类似于oceanbase这样的数据存储,最方法,后期维护也比较方便的方案,但是灵活性上,性能上很难说方案2、采用开源组件,如apache shang-jdbc实现方案3、自行实现原理说明:除了方案1、其实方案2都可以自行实现的,只是原理不同,通过Spring + mybatis框架分析,你如果想要分库,其实只有一...
2020-05-04 17:41:29
798
原创 Java Spring分库分表前言
从数据库的发展历程来看,大约有5年了吧,5年前,单库单表已经不能满足海量数据的出现,计算,存储,频繁出现了很多新技术1、NoSQL当时的代表之一,其中的代表作有redis,mongodb,es等等,已牺牲一部分功能为代价,提供一种海量数据的计算、存储的解决方案,在当时是相当火热但是随着时间的推移,劣势也逐渐显示出来,标注SQL仍然是解决问题的基本手段之一,各种NoSQL的限制和不足问题...
2020-05-04 17:04:41
221
原创 InsertOrUpdate的一些注意项
有时候,我们经常会写这样的逻辑,insertOrUpdate,即数据存在即更新,数据不存在则增加。一般情况下这个是没有问题,但是在部分情况,这个东西是存在很大的问题的 我们都知道,数据库有4个隔离级别,即READ UNCOMMITEDREAD COMMITEDREPEATABLE READSERIALIZABLE按照正常的逻辑,针对READ UNCOMMITED...
2018-06-04 15:15:03
11296
原创 maven pom exclusion all
现在,RPC服务,微服务大面积地扩大市场,所以,我们会引用很多其它人的包,JAVA一般都是通过maven来管理的。当看到一个别人的包引入了N多包,但是我们用的仅有其中的很小一部分,不需要依赖那些东东,怎么办?一个个execusion,好像只有这个方法吧看到了这个之后,我发现我被雷到了,我居然不知道,exclusion all 居然可以加通配符。有谁想用就收走吧,我很在旁边忧伤2小时官方文档说明:h...
2018-05-08 17:48:05
2846
原创 前端分页查询的另一种想法(基于游标和每页条目)
不知道你们有没有听说过这样的分页需求:将每个用户的查询每次的查询情况缓存起来,然后将它查第二页时,直接从缓存中获取,除非其查询第一页。这样的理由在于,后台的数据在不断地增加中,你现在看到的第一页,或许在下一个时刻,就发生了变化。而如果此时你要看第二页,是需要基于上一次查询的第二页,而不是重新排序的第二页,因为此时,有可能会出现之前看到的第一页数据,或者比之前第一页的数据更靠前(因数据增加得很快,重...
2018-04-28 17:52:26
1211
原创 从什么时候开始,我们不再使用枚举
学习过任何一种高级语言的人,肯定都知道一种数据类型,枚举那是一个很强大,也很实用的数据类型,但是,似乎从很早之前,就很少用了,或许说,是尽量避免去用了为什么?似乎是因为,MYSQL的枚举用法,存在一些坑(几年前的事了,似乎从我开始入程序猿这条路就开始了),然后我们就很少用了。那我们现在思考下,我们为什么需要使用枚举枚举是存在了一些固定选择的范围时,即一个有限的集合时,才会使用的,将集合中的所有元素...
2018-04-25 15:32:09
2238
原创 我们为什么要用lambda
lambda并非是Java首创,准确地来说,是Java迎合时代的产物lambda的好处很显而易见,易读,更好理解(可能对于新手来说不是太好写)。易读的好处带来的就是易维护,不容易出错。在编程语言的发展史上,从机器语言到汇编语言,再到高级语言,以及下一代的自然语言(也不知道啥时候会出现),是以可读性为基础的,而不是以性能为基础的。因为可读性的变化,才使得语言的进一步发展。这里也声明下,不是说对于编程...
2018-04-20 19:37:41
3631
原创 JDK的发布周期缩短,JDK9,JDK10是短期版本
这两天看到JDK10的发布,感觉Oracle的发布周期缩短了这么久,JDK9何去何留?经查Oracle的发布周期缩短,即以后每半年一个版本即目前2018年3月份,JDK10,2018年9月份,可能会有新的版本,有很高概率是JDK11,并且,JDK9,JDK10并不是长期服务版本(LTS),据说下一个版本才是LTS版本,也有可能是JDK8后第一个长期服务版本JDK8的截止时间为2019年1月份,即到...
2018-04-20 17:53:04
11579
2
原创 SimpleDateFormat未抛出ParseException
关于SimpleDateFormat的不严格性【技术探讨】今天一组员写了几段Java代码,发现如下问题: SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); Timestamp timestamp = new Timestamp(System.currentTimeMillis()); ...
2018-03-24 15:08:32
1695
转载 Why Developers Should Not Write Programs That Call 'sun' Packages
The java.*, javax.* and org.* packages documented in the Java Platform Standard Edition API Specification make up the official, supported, public interface. If a Java program directly calls only API i...
2018-03-24 15:01:53
111
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人