开发技术
文章平均质量分 60
knight_hf
这个作者很懒,什么都没留下…
展开
-
JAVA开发中的工具类——基于函数式接口的重试工具类
在实际的项目开发中,为了保证程序的健壮性,一些场景在代码执行失败的时候需要进行重试操作。该文章介绍了一个基于JAVA函数式接口实现的重试的工具类。import com.google.common.collect.Lists;import lombok.Data;import lombok.extern.slf4j.Slf4j;import java.time.LocalDateTime;import java.util.List;import java.util.concurrent.原创 2022-02-18 17:03:43 · 769 阅读 · 0 评论 -
Java开发中的工具类——基于JedisPool的Redis工具类
在日常的开发中,使用Redis作为缓存中间件来提高查询性能已经很常见。通常为了简化开发,提高开发效率,我们在实际开发中会封装一些工具类来满足我们的诉求。本文以Java工程为例,介绍基于JedisPool的Redis工具类的使用。一、Maven依赖<!-- jedis依赖--><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</原创 2022-02-14 15:38:55 · 1981 阅读 · 0 评论 -
JAVA开发中的工具类——基于HttpClinet的RestTemplate
RestTemplate是Spring提供的用于发送HTTP请求的客户端工具,RestTmplate提供了很多便捷的方法,可以大大提供开发效率。RestTemplate默认依赖JDK的Http连接工具HttpUrlConnection,你也可以替换不同的源,比如OkHttp、Apache HttpComponents 等等。本文以HttpClient为例来实现RestTemplate工具类,重点关注以下几点:1、连接池超线程数量为避免每次请求都需要创建线程,造成不必要的系统开销,在Http请求时,可原创 2022-02-14 14:35:48 · 799 阅读 · 0 评论 -
基于SpringBoot的API网关实现
目录一、背景&目标二、基于SpringBoot的API网关架构2.1、概要架构图2.2、架构说明2.3、实现说明2.3.2 高性能2.3.3 高可用2.3.4 安全性三、总结一、背景&目标在微服务架构已经很普及的今天,API网关是整个微服务体系中是必不可少的基础服务。提到API网关大家可能会想到Zuul、Spring Cloud Gateway等开源API网关,Zuul2.x、Spring Cloud GateWay这些基于Reactor模式(原创 2022-02-11 17:38:26 · 4801 阅读 · 0 评论 -
SQL SERVER下非聚集索引引发的死锁问题
最近一个消息发送功能在测试的过程中遇到了因为非聚集索引引发的死锁问题,下面是小伙伴事后总结的内容,现分享出来。(因为一些内容涉及到公司信息,所以只分享了其中部分内容,但是应该不影响整体阅读)情景介绍表名是Receiver,字段有id(主键,聚集索引),msgId(非聚集索引),receiver(非聚集索引),createTime,updateTime并发执行的语句为1、insert into Rec原创 2017-01-06 10:29:49 · 3019 阅读 · 3 评论 -
sql中的or,哪些场景会导致全表扫描
sql中的or,哪些场景会导致全表扫描或者索引失效呢?原创 2016-09-23 00:11:00 · 6237 阅读 · 3 评论 -
Sql,少一些join吧
公司DBA之前分享过一些sql的优化技巧,这是其中的一点——"少一些join,降低IO次数"原创 2016-08-02 21:31:03 · 515 阅读 · 0 评论 -
一段死循环引发的Java heap space类型的OutOfMemory
一段死循环引发的Java heap space类型的OutOfMemory原创 2016-08-01 15:32:54 · 2406 阅读 · 0 评论 -
JAVA内存模型
Question:在并发编程中,多个线程之间采取什么机制进行通信(信息交换),什么机制进行数据的同步? Answer:在Java语言中,采用的是共享内存模型来实现多线程之间的信息交换和数据同步的。 线程之间通过共享程序公共的状态,通过读-写内存中公共状态的方式来进行隐式的通信。同步指的是程序在控制多个线程之间执行程序的相对顺序的机制,在共享内存模型中,同步是显式的,程序员必须显式指定某个方法/代转载 2016-06-07 09:37:28 · 465 阅读 · 0 评论 -
参数嗅探(Parameter Sniffing)(2/2)
在参数嗅探(Parameter Sniffing)(1/2)里,我介绍了SQL Server里参数嗅探的基本概念和背后的问题。如你所见,当缓存的计划被SQL Server盲目重用时,会带来严重的性能问题。今天我会向你展示下如何处理这个问题,即使用不同的技术克服它。索引(Index)上次我们讨论造成参数嗅探问题的根源是:在执行计划里,SQL 语句有时会产生书签查找,有时会产生表/转载 2016-06-02 14:24:40 · 920 阅读 · 0 评论 -
参数嗅探(Parameter Sniffing)(1/2)
这个问题会在参数话的SQL语句(例如存储过程)与SQL Server里的计划缓存机制结合的时候会出现。这个文章分为2个部分,第1部分会介绍下参数嗅探(Parameter Sniffing)的概况,第2部分我们介绍下如何解决这个问题。什么是参数嗅探(Parameter Sniffing)在SQL Server里当你执行参数话的SQL查询时,查询优化器会基于第一个提供的参数值编译执行计转载 2016-06-02 14:19:48 · 830 阅读 · 0 评论 -
公司产品“云筑加”性能优化记录
最近对公司产品性能进行了初步的验证并进行了一些初步优化,下面是对本次优化过程的一个记录,方便自己今后进行查阅:■测试环境:windows server 2008 8G内存JDK1.7apache2.4.x+tomcat8.0.xmysql5.6.24■测试场景:sys_info表6000条数据sys_dynamic_share表10000条数据原创 2015-11-11 15:40:17 · 529 阅读 · 0 评论 -
SQL SERVER中求上月、本月和下月的第一天和最后一天
<br />1、上月的第一天<br />SELECT CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111)<br /> <br />2、上月的最后一天<br />SELECT CONVERT(CHAR(10),DATEADD(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()),0)),111)+' 23:59:59'<br /> <br />3、本月的第一天<br />原创 2010-06-01 15:58:00 · 1955 阅读 · 0 评论 -
SQL SERVER中OVER子句与聚集函数的结合使用
<br />下面是从网上看到的一个例子:<br />use tempdb <br />go <br />if (object_id ('tb' ) is not null )<br /> drop table tb <br />go <br />create table tb (name varchar (10 ), val int )<br />go <br />insert into tb <br />select 'aa' , 10 <br />union all select 'aa' , 2原创 2010-06-01 16:14:00 · 841 阅读 · 0 评论 -
Java中的equals和hashCode方法详解
Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这两个方法,今天就来介绍一些这两个方法的作用。equals()和hashCode()方法是用来在同一类中做比较用的,尤其是在容器里如set存放同一类对象时用来判断放入的对象是否重复。这里我们首先要明白一个问题:转载 2016-04-29 16:58:41 · 493 阅读 · 0 评论 -
数据库水平拆分
一般人们分析问题,总是从问题现象,原因分析,解决方案这样的思路来分析思考问题,我想对这个数据库的水平拆分也按这样的思路来简单剖析一下。 先从问题现象入手,随着数据库表中数据日积月累越来越多,当表记录数达到千万甚至亿级别时,数据库表的访问效率下降明显,导致外层应用的访问效率非常差,访问时间急剧上升,用户体验下降。如果是表数据太大的原因导致访问速度变慢,一般情况下当访转载 2016-04-29 16:41:22 · 1182 阅读 · 0 评论 -
《thinking in java》之复用类、多态学习。
因为部门安排了读书学习,目前正在读的书是《thinking in java》第七章复用类、第八章多态,把自己读书中的一些体会在这边做一些简单的记录。1.域对象不存在多态,但父类的引用指向子类对象时,在内存中是分配两处不同的地址来存储父类引用和子类对象的。2..组合和继承,一般情况下使用组合。继承只有确实存在具有通用性时才需要将一部分通用的处理抽象出来形成一个基类并供其他业务类继承。3.原创 2015-12-25 00:45:14 · 629 阅读 · 0 评论