自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(322)
  • 资源 (22)
  • 收藏
  • 关注

原创 【高可用】利用AOP实现数据库读写分离

*** 动态数据源*//*** ThreadLocal 用于提供线程局部变量,在多线程环境可以保证各个线程里的变量独立于其它线程里的变量。* 也就是说 ThreadLocal 可以为每个线程创建一个【单独的变量副本】,相当于线程的 private static 类型变量。*//*** 决定使用哪个数据源之前需要把多个数据源的信息以及默认数据源信息配置好* @param targetDataSources 目标数据源。

2024-07-23 22:49:58 302

原创 系统设计题-路由表最长匹配

路由表最长匹配:将目标IP地址dstIP与路由为entryIP/掩码长度m(比如10.166.50.0/23)进行匹配,找出匹配掩码m最长值。如果dstIP和entryIP的二进制表示的前m个位相同,则说明是匹配的。0.0.0.0是默认路由,与任何dstIP均匹配,m值为0。所有匹配的路由中,。

2024-07-10 23:19:10 215

原创 系统设计题-日活月活统计

根据访问日志统计接口的日活和月活。日志格式为其中yyyy-mm-dd代表年月日,一个日志文件中时间跨度保证都在同一个月内,但不保证每行是按照日期顺序。clientIP为合法的点分十进制ipv4地址(1.1.1.1和1.01.001.1视作同一IP地址)url访问的地址,格式为/login.do,/query.html,,仅包含字母、英文句号.、斜杠/、和下划线_result接口的访问结果,只有2种:success和fail。

2024-07-07 17:02:17 158

原创 系统设计题-简易数据库系统

create(int tableId,int colNum,String key):创建表,其id为tableId,如果该表已存在,则不做任何处理。colNum为表中列的数量,列名由a-z字母组成,并按a-z顺序编号。比如colNum=3,则代表列分别为a,b,c。key为主键(指1列或多列组合),key中每个字符代表一列,如key=bc,表示主键由列b和列c组合。insert(int tableId,int[] values):添加一条记录。values每个元素按照顺序一一对应每列的值。

2024-07-07 16:20:39 278

原创 利用队列Queue或栈Stack解决字符数组转换运算题

相同的特殊运算符,从左到右顺序计算。用例保证@,$,左右一定存在数字,且数字不存在前导为0。给定包含特殊运算符号@,$ ,转换规则如下。其中x,y都是非负整数且@优先级高于 $。

2024-06-30 18:55:56 155

原创 利用OPT算法解决最短访问次数问题

数据库缓存,模拟访问规则如下:当查询值在缓存中,直接访问缓存,不访问数据库。否则,访问数据库,并将值放入缓存。若缓存已满,则必须删除一个缓存。给定缓存大小和训练数据,依次模拟访问这组数据,请分析在此访问规则下最少的数据库访问次数输入2输出4。

2024-06-30 18:24:33 217

原创 利用BFS或动态规划解决路径算法问题

令 f[i][j]表示从左上角到坐标(i,j)的路径数字和最小值,原问题即可被划分为多个求最优值的子问题,且由于每次只能向下或向右移动一步,因此。此题需要求出从左上角出发,到达坐标(m,n)的路径数字和最小值。因此不难想到,子问题就是从左上角出发,到达坐标(i,j)的路径数字和最小值。给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。输入:grid = [[1,3,1],[1,5,1],[4,2,1]]解释:因为路径 1→3→1→1→1 的总和最小。

2024-06-30 09:19:14 387

原创 利用BFS解决每个零售店到仓库最短距离之和问题

矩阵中有3种类型:0仓库,-1障碍,1零售店。现在每个零售店要去距离它最近的仓库取货物,请计算出所有零售店到最近仓库距离之和,假设矩阵中每个单元格之间距离为1。如果遇到障碍物,则表示无法通过。可以在单元格上下左右移动。注意无法到达仓库的零售店不参与计算没有零售店或者没有仓库,则返回0。

2024-06-25 23:38:35 286

原创 【课程表算法题--拓扑排序】

你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1。在选修某些课程之前需要一些先修课程。例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]。给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]]输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。示例 2:输入: 2, [[1,0],[0,1]]输出: false。

2024-06-22 07:48:17 219

原创 【轮询负载均衡规则算法设计题】

给定n台主机(编号1~n)和某批数据包,数据包格式为(抵达主机时刻,负载量)。这里数据每个时刻最多只有1条数据到达。负载量表示该主机处理此数据包总耗时。请计算轮询负载均衡规则下,哪些主机负载最高(即处理数据的负载量总和),升序输出主机编号。

2024-06-13 18:45:00 324

原创 记录下“where条件中select子查询“的优化

由于项目中流水线门禁规则的升级,导致新提交的sql代码where条件含有select子查询,导致codecheck扫描校验不通过,特此需要整改,简单记录下。

2024-06-12 07:28:20 211

原创 利用单调栈思路解决递增关系数据问题

在对数据进行排序的过程中,通常采用取1个数作为主元,通过比较交换,把比主元小的数挪到它左边;把比主元大的元素挪到右边。现给定一个划分后的正整数序列,请问有多少个元素可能是排序过程中选中的主元?并按顺序输出这些值。通过暴力解法,分别比较每个数的左边和右边值,如果当前值大于左边值且当前值小于右边值,则保存此值到列表中,最后对列表排序输出。由于满足主元的条件:其右边值一定大于它,其左边值一定小于它,相当于有一个隐藏的递增关系,可以考虑单调栈,此解法更加高效。

2024-06-08 16:47:51 228

原创 校验参数个数工具类

项目中有个需求:前后端参数一致性校验,在某业务场景下后端代码需要校验参数个数,因此设计了1个工具类方便大伙使用,特此简单记录下。

2024-06-07 23:47:44 535

原创 自定义对象池BasePooledObjectFactory的使用

System.out.println("ThreadName:" + Thread.currentThread().getName() + " 对象:" + name + "正在被创建。。。。。。");System.out.println("ThreadName:" + Thread.currentThread().getName() + " 对象:" + name + "正在被销毁。。。。。。");

2024-06-01 00:21:51 494 1

原创 关于模糊查询业务的一点思考

注意点:在业务数据量少的场景下,这样写没问题。但是如果数据量非常多,这样首先查询性能非常耗时,而且查询出来太多数据也不太符合公司内人员敏感信息安全规范和期望结果。所以要对查询结果处理,我这里的处理方式就是利用limit限制查询条数,这样既符合敏感信息安全规范,也一定量提升了查询效率,避免对服务器内存造成过大压力。最近项目上线了一个小的功能,业务逻辑非常简单,就是人员联想功能:2张表的关联模糊查询。实现方案:就是无脑在sql中利用like模糊查询。

2024-05-20 20:27:44 117

原创 通过AOP实现项目中业务服务降级功能

最近项目中需要增强系统的可靠性,比如某远程服务宕机或者网络抖动引起服务不可用,需要从本地或者其它地方获取业务数据,保证业务的连续稳定性等等。这里简单记录下业务实现,主要我们项目中调用远程接口失败时,需要从本地数据库中某表获取数据(本地数据库某表每天定时同步远程接口数据)。调用大致逻辑:前端–>服务A–>服务B(这里时公服,用于维护权限、人员等信息)其中服务B调用远程服务故障,进行服务降级,从服务B的本地数据库查询数据。项目中实际是通过故障注入方式,模拟远程接口宕机。这里简单通过除法异常模拟故障。二、测

2024-05-08 22:11:05 360

原创 利用策略模式+模板方法实现项目中运维功能

/ 这里只实现了查询方法,其他增加、删除、修改可以依次实现List<?IDataOperationService定义增删改查模板方法List<?

2024-05-05 05:48:01 685 1

原创 【计算数组连续值的移动距离】及【计算遥控器按键总次数】

【代码】【计算数组连续值的移动距离】及【计算遥控器按键总次数】

2024-01-28 18:57:29 464

原创 【字符串增加偏移量转换】及【贴瓷砖问题】

【代码】【字符串增加偏移量转换】及【贴瓷砖问题】

2024-01-23 23:38:48 563

原创 【连续数之间的数字和最大值】及【字符串进制转换】

【代码】【连续数之间的数字和最大值】及【字符串进制转换】

2024-01-23 23:07:06 467

原创 一道使用LinkedList和Stack解决的算法题

学校的自助午餐提供圆形和方形的三明治,分别用数字 0 和 1 表示。所有学生站在一个队列里,每个学生要么喜欢圆形的要么喜欢方形的。餐厅里三明治的数量与学生的数量相同。所有三明治都放在一个 栈 里,每一轮:如果队列最前面的学生 喜欢 栈顶的三明治,那么会 拿走它 并离开队列。否则,这名学生会 放弃这个三明治 并回到队列的尾部。这个过程会一直持续到队列里所有学生都不喜欢栈顶的三明治为止。给你两个整数数组 students 和 sandwiches ,其中 sandwiches[i] 是栈里面第 i

2024-01-16 07:04:23 763

原创 不同整数的最少数目和单词直接最短距离

今天分享两个关于“最小、最短”的算法题,废话少说,show me your code!

2024-01-16 05:51:25 483

原创 处理含退格的字符串

字符串如果包含$,则将 $ 前的字符剔除,最后保留剔除后的字符串,输出其长度。利用String Builder对字符串处理。输出3,因为剔除后的字符串为abd。或者利用Stack对字符串处理。

2024-01-15 09:15:00 388

原创 数组中根据刷新时间间隔计算对应值

特斯拉发射火箭,从start时刻开始(包括start),由于发射台需要准备时间才能发射,因此需要period个单位时间就会有发射机会(不限制发射数量,只要若干火箭就绪则可以发射)。比如[[1,2],[4,6]],第一个订单在1时刻收到,需要2个单位时间准备就绪,在时刻3才能发射;现在有n个订单需要发射,用二维数组表示,即int[][] launches,第一个数字代表接收到该订单时刻,第二个数字代表准备就绪需要花费的时间。分享个关于数组中根据刷新时间间隔计算对应值的问题。未完待续-----------

2024-01-14 09:10:18 397

原创 数组中差值的最大值(寻找一个数组中左侧最大值与右侧最小值的差值)

今天跟大伙分享下关于数组中差值的最大值(寻找一个数组中左侧最大值与右侧最小值的差值)的计算思路的算法题,解决方案有许多,这里简单进行抛砖引玉。

2024-01-14 08:39:03 864

原创 【Sharding-Sphere 整合SpringBoot】

Sharding-Sphere 整合SpringBoot

2024-01-07 23:42:37 1341

原创 【奇偶数合并】及【奇数偶数排序】

由于要对偶数合并且将合并值增加到相邻且相等2个偶数之间,然后相邻且相等奇数合并,原始数组长度可能会发生改变,因此需要用额外的数据结构进行存储临时计算结果数据。将所有相邻且相同的偶数相加放入相邻偶数中间 将所有相邻且相同奇数相加,替换掉这两个相邻且相同的奇数 最后输出合并后的数组结果。第一轮计算之后,需要判断是否还需要递归进行计算,如果需要,则递归奇偶数合并即可,最后输出计算结果。数组奇偶数合并之后[1,2,4,2,7,8,6,12,6]数组[1,2,2,7,8,3,3,6]今天分享一道很有意思的算法题目,

2024-01-06 07:24:20 404

原创 力扣:单调栈算法思路题

🍒 通常是在数组中需要通过比较前后元素的大小关系来找最近的比它大(小)的元素问题时,可以使用单调栈进行求解。单调栈分为单调递增栈和单调递减栈,通过使用单调栈我们可以访问到最近一个比它大(小)的元素。🍋什么情况适合用单调栈来解决实际问题呢?3:LeetCode 42. 接雨水。2:寻找左边第一个小于它的数的下标。1:寻找左边第一个小于它的数。

2023-11-26 06:41:04 642

原创 力扣:盛最多水的容器

双指针代表的是 可以作为容器边界的所有位置的范围。在一开始,双指针指向数组的左右边界,表示 数组中所有的位置都可以作为容器的边界,因为我们还没有进行过任何尝试。在这之后,我们每次将 对应的数字较小的那个指针 往 另一个指针 的方向移动一个位置,就表示我们认为 这个指针不可能再作为容器的边界了。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。输入:[1,8,6,2,5,4,8,3,7]

2023-10-21 20:54:28 253

原创 SpringBoot 中使用JPA

最近忙里偷闲,想写一点关于JPA的东西,另外也加深下对JPA的理解,才有了此篇博文。

2023-09-30 16:42:52 343

原创 巧用@Conditional注解根据配置文件注入不同的bean对象

项目中使用了mq,kafka两种消息队列进行发送数据,为了避免硬编码,在项目中通过不同的配置文件自动识别具体消息队列策略。这里整理两种实施方案,仅供参考!

2023-09-28 09:23:53 974

原创 【@PostConstruct、 @Autowired与构造函数的执行顺序】

Java提供的注解,被用来修饰方法,被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。调用的顺序为: 构造函数 > @Autowired > @PostConstruct(2)作用:@PostConstruct注解的方法在项目启动的时候执行这个方法,也可以理解为在spring容器启动的时候执行,可作为一些数据的常规化加载,比如读取数据字典之类、目录树缓存。

2023-09-23 19:47:03 2326

原创 利用hutool工具类实现验证码功能

利用hutool工具类,可以很方便生成不同类型的验证码。

2023-09-16 16:00:29 3543 2

原创 利用Semaphore实现多线程调用接口A且限制接口A的每秒QPS为10

前段时间在群里面发现有个群友抛出一个实际需求:需要通过一个接口拉取数据,这个接口有每秒10QPS限制,请问如何实现数据拉去效率最大化且限制调用拉取接口每秒10PQPS?我觉得这个需求挺有意思的,跟某群友讨论,发现可以利用JUC包下的Semaphore实现,几行代码就能搞定。这里将实现方案做下整理,算是抛砖引玉吧~

2023-09-13 22:55:25 376

原创 Spring的重试机制-SpringRetry

在我们的日常开发中,经查会遇到调用接口失败的情况,这时候就需要通过一些方法来进行重试,比如通过while循环手动重复调用或,或者通过记录错误接口url和参数到数据库,然后手动调用接口,或者通过JDK/CGLib动态代理的方式来进行重试,但是这种方法比较笨重,且对原有逻辑代码的入侵性比较大。

2023-09-03 10:05:53 531

原创 如何使用 try-with-resources 优雅地关闭资源

今天学习下Java 7中引入的try-with-resources语法糖,一个非常有用的特性,它使得在代码中使用资源(例如文件或数据库连接)变得更加简单、方便和安全。try-with-resources 从反编译后的代码来看,编译器自动帮我们生成了 finally 块,并且在里面调用了资源的 close() 方法,所以例子TryWithResourceOldTest 中的close() 方法会在运行的时候被执行。如果不用这个语法糖,手动在finally块中关闭,则代码显得非常臃肿。

2023-08-26 08:02:03 404

原创 多线程事务怎么回滚?

在Spring中可以使用@Transactional注解去控制事务,使出现异常时会进行回滚,在多线程中,这个注解则不会生效。如果主线程需要先执行一些修改数据库的操作,当子线程在进行处理出现异常时,主线程修改的数据则不会回滚,导致数据错误。通过使用sqlSession控制手动提交事务,可以达到主线程和子线程数据事务回滚。

2023-08-13 17:54:49 515 1

原创 Mybatis实现JsonObject对象与JSON之间交互

项目中使用PostGresql数据库进行数据存储,表中某字段为Json类型,用于存储Json格式数据。PG数据库能够直接存储Json算是一大特色,很多特定情境下使用直接存储Json字段数据能够大量节省开发时间,提高后台数据查询和转换效率。

2023-08-04 06:07:35 1634

原创 记录本周五项目上线失败经验总结

从此次上线失败事件中,发现我们存在一个误区就是只要上线失败,就肯定是我们自己代码问题(虽然有时候确实这样)。但是既然经过了sit和uat两个环境的测试和检验,代码逻辑应该没啥问题!惯性思维有时候害死人!如果我们先分析接口调用链路情况,可能就不会再费力的去分析错误日志和代码逻辑了!有时候遇到问题,需要换种思路去分析,而不是盲目的自我怀疑。还有就是生产环境出问题,不要慌张,要冷静的分析查找根本原因,如果自己都乱了阵脚,那么很容易陷入思维误区或者事倍功半。

2023-07-30 00:06:17 380

原创 双重for循环优化

通过迭代删除或者利用map集合特性均能够有效提升查询效率

2023-07-28 22:51:00 5295

dubbo-admin-2.5.7.war.7z

dubbo-admin监控工程

2021-07-29

dubbotest1-master.7z

springboot整合dubbo+zookeeper https://blog.csdn.net/wangzibai/article/details/100106261

2021-07-29

dubbo-admin-2.5.4.war.7z

web页面服务查看,下载dubbo-admin监控工程,将war包解压后放入tomcat的webapps目录下,将\webapps\dubbo-admin-2.5.4\WEB-INF\dubbo.properties修改成自己的zookeeper地址即可

2021-07-29

Linux中安装Oracle12c介质.docx

Linux环境中安装Oracle12C介质操作手册,详细记载了安装过程以及安装问题。利用Xmanager的Xstart启动图形化安装界面进行安装,清晰明了,操作简单,本人亲测可行!

2020-08-03

springboot.7z

SpringBoot整合Mybatis完整详细版,通过连接MySQL,实现增删改查功能。例子比较简单是非常适合入门练手。项目启动之后,直接在浏览器输入访问地址即可。

2020-07-18

springboottest1.7z

SpringBoot整合Mybatis完整详细版,通过连接MySQL,实现增删改查功能。例子比较简单是非常适合入门练手。项目启动之后,直接在浏览器http://localhost:8086/testBoot/getUser/2即可

2020-07-17

SpringShiroDemo.7z

SpringMVC与Shiro整合,实现登录授权功能。通过使用账号admin和密码admin登录进入,否则需要登录才能访问。登录链接地址:http://localhost:8080/ShiroDemo/login.jsp

2020-06-04

基于MapReduce的Apriori算法并行化改进

基于MapReduce的Apriori算法并行化改进,包含改进思路与代码实现。该文档提供了详细的设计思路和方法,具有一定的借鉴意义,互相学习,互相进步!

2017-11-08

基于MapReduce的Apriori算法

基于MapReduce的Apriori算法,关联规则并行化思路与解决方案。该方法具有一定的借鉴意义,可以用来进行学术研究。

2017-11-08

zookeeper安装配置

zookeeper安装配置,步骤明确而详细。此文档为培训班内部培训资料!

2017-11-08

详细配置Hbase

hbase资料整理PPT,资料详细。为内部培训课程PPT,请勿转载!

2017-11-08

WebService配置

WebService配置详细配置步骤。按照操作文档提示步骤,配置webservice接口,欢迎指正,亲测可行!

2017-11-08

基于MapReduce的Apriori算法代码及其使用

基于MapReduce的Apriori算法代码及其使用,内含源代码及其实现。数据集为http://fimi.ua.ac.be/data/

2017-11-08

基于MapReduce的Apriori算法代码

mapreduce实现apriori算法,亲测可行!需要自行下载数据集。数据集链接如下http://fimi.ua.ac.be/data/

2017-11-08

《机器学习实战》源代码

《机器学习实战》源代码

2017-06-29

数据挖掘经典算法

数据挖掘经典算法,详细介绍,原理剖析。

2017-06-29

前端打印插件

前端打印插件,简单易用

2017-06-29

Myeclipse-2014-破解文件

Myeclipse-2014-破解文件

2017-06-29

echarts.min.js

优秀的报表制作插件,美观而简洁

2017-06-29

bootstrap-3.3.7

一款非常优秀的前端插件

2017-06-29

python-2.7.10.amd64

python2.7

2016-07-10

cmiadapter

1111

2016-07-10

空空如也

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

TA关注的人

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