自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(186)
  • 收藏
  • 关注

原创 mysql-业绩排行查询

根据销售金额查询业绩排名。

2022-10-18 14:49:28 413 1

原创 为什么处理有序的数组比无序的数组更快

如果它交替,那么你交替你的猜测。但是当面对无法识别的模式的不可预测的分支时,分支预测器实际上是无用的。数据[] = 226, 185, 125, 158, 198, 144, 217, 79, 202, 118, 14, 150, 177, 182, …但是,当数据完全随机时,分支预测器就变得毫无用处,因为它无法预测随机数据。你不知道它应该走哪条路。分支 = T, T, N, T, T, T, T, N, T, N, N, T, T, T …如果你猜错了,船长会停下来,后退,然后对你大喊大叫来拨动开关。

2022-09-25 23:03:59 296

转载 jmeter-connection refused timeout

我用Jmeter2.13测试网站一个http请求,服务器是tomcat7,测试500个线程数正常,增加到750就会出现connection refused错误,而且一般是最后的请求出现错误,前面仍是对的。试了网上一些方法增加tomcat7 server.xml最大线程数,修改系统参数等都不行。此时CPU内存带宽IO都是没有满的,所以不知瓶颈在何处??希望有遇到过类似情况或者知道的人能解答,谢谢!org.apache.http.conn.HttpHostConnectException: Connectio

2021-11-13 21:03:46 1903 1

转载 java Timer(定时调用、实现固定时间执行)

最近需要用到定时调用的功能。可以通过java的Timer类来进行定时调用,下面是有关Timer的一些相关知识。其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来实现,例如这样:Timer timer = new Timer();timer.schedule(new TimerTask() { public void run() { System.out.println("11232

2021-08-15 20:57:39 3135

转载 Spring MVC之@RequestBody, @ResponseBody 详解

引言:接上一篇文章讲述处理@RequestMapping的方法参数绑定之后,详细介绍下@RequestBody、@ResponseBody的具体用法和使用时机;简介:@RequestBody作用: i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上; ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。使用时机:A)

2021-08-15 20:28:46 420

转载 当当网高可用架构之道

声明:本文内容来自于TOP100Summit旗下技术沙龙品牌into100沙龙第17期:高可用高并发解决之道,如需转载请联系主办方进行授权。嘉宾:史海峰,当当架构部总监。2012年加入当当,负责总体架构规划、技术规范制定,善于把握复杂业务需求,提出创新性解决方案,参与重点项目方案设计,对系统架构进行持续改造优化,推动技术革新,组织内外部技术交流。以下为分享整理正文:系统中的非功能性需求今天我们的主题是当当高可用架构设计之道,高可用并不是功能性的需求,而是传统的IT当中非功能性需求的一部分。大家可以看

2021-08-15 17:54:30 338

转载 Java 并发编程:线程间的协作(wait/notify/sleep/yield/join)

一、线程的状态Java中线程中状态可分为五种:New(新建状态),Runnable(就绪状态),Running(运行状态),Blocked(阻塞状态),Dead(死亡状态)。New:新建状态,当线程创建完成时为新建状态,即new Thread(…),还没有调用start方法时,线程处于新建状态。Runnable:就绪状态,当调用线程的的start方法后,线程进入就绪状态,等待CPU资源。处于就绪状态的线程由Java运行时系统的线程调度程序(thread scheduler)来调度。Running:运

2021-08-14 23:46:54 132

转载 QQ 会员亿级 Web 系统的容错性建设实践

本文整理自 #ArchSummit 微课堂#线上分享——QQ 会员亿级 Web 系统的容错性建设实践。三年多前,我在腾讯负责的活动运营系统,因为业务流量规模的数倍增长,系统出现了各种各样的异常,那个时候,我 7*24 小时地没日没夜处理告警,周末和凌晨也经常上线,疲于奔命。后来,当时的老领导对我说:你不能总扮演一个“救火队长”的角色, 要尝试从系统整体层面思考产生问题的根本原因,然后推进解决。我幡然醒悟,“火”是永远救不完的,让系统能够自动”灭火”,才是解决问题的正确方向。简而言之,系统的异常不能总是依赖

2021-08-08 17:25:45 223

转载 秒杀业务架构优化之路

一、秒杀业务为什么难做IM 系统,例如 QQ 或者微博,每个人都读自己的数据(好友列表、群列表、个人信息)。微博系统,每个人读你关注的人的数据,一个人读多个人的数据。秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。例如小米手机每周二的秒杀,可能手机只有 1 万部,但瞬时进入的流量可能是几百几千万。又例如 12306 抢票,票是有限的,库存一份,瞬时流量非常多,都读相同的库存。读写冲突,锁非常严重,这是秒杀业务难的地方。那我们怎么优化秒杀业务的架构呢?二、优化方向优化

2021-08-08 15:51:49 138

转载 Tomcat进程意外退出的问题分析

节前某个部门的测试环境反馈tomcat会意外退出,我们到实际环境排查后发现不是jvm crash,日志里有进程销毁的记录,从pause到destory的整个过程:org.apache.coyote.AbstractProtocol pausePausing ProtocolHandlerorg.apache.catalina.core.StandardService stopInternalStopping service Catalinaorg.apache.coyote.AbstractPro

2021-08-08 15:19:17 487

转载 MySQL-ROUND函数进行四舍五入操作陷阱分析

在MySQL中, ROUND 函数用于对查询结果进行四舍五入,不过最近使用ROUND函数四舍五入时意外发现并没有预期的那样,本文将这一问题记录下来,以免大家跟我一样犯同样的错误。问题描述假如我们有如下一个数据表 test ,建表语句如下CREATE TABLE test ( id int(11) NOT NULL AUTO_INCREMENT, field1 bigint(10) DEFAULT NULL, field2 decimal(10,0) DEFAULT NULL, field3 i

2021-08-08 00:07:22 263

转载 MySQL-出现Waiting for table metadata lock的原因方法

MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景。而且,一旦alter table TableA的操作停滞在Waiting for table metadata lock的状态,后续对TableA的任何操作(包括读)都无法进行,因为他们也会在Opening tables的阶段进入到Waiting for table metadata lock的锁等待队列。如果是产品环境的核心表出现了这样的锁等待队列,就会造成灾难性的后果

2021-08-05 22:57:48 714 1

转载 JAVA-private修饰的方法可以通过反射访问,那么private的意义是什么

private的意义是什么?private并不是解决安全问题的,如果想让解决代码的安全问题,请用别的办法private的意义是面向对象编程的封装概念而对于setAccessible()方法会破坏类的访问规则,产生安全隐患。知乎上面看到的一篇回答貌似很有道理:...

2021-08-05 22:40:37 183

原创 微信公众号开发-获取用户资料的方式

微信公众号开发主要是在服务号环境,订阅号拿不到用户的资料;使用公众号的access_token获取用户信息如果要求用户必须关注公众号(服务号)才能使用功能,那就选择使用公众号的access_token获取用户信息这种方式可以实现用户无需点击授权按钮;使用Oauth2.0授权的access_token获取用户信息不需要用户关注微信公众号,甚至没有公众号,而只需要用户使用微信登录系统。如果你没有公众号,则必须去微信开放平台注册一个应用;一个微信公众号其实就是一个应用。一旦你有了一个应用之后,就可以像

2021-07-11 18:00:18 362

原创 JodaTime-将秒数转换为年/日/小时/分钟

jodatime依赖 <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.10.10</version> </dependency> Seconds seconds =

2021-07-04 17:57:33 570

原创 MySQL-按指定数据排序

如果指定数据是一个,如id=1要排在第一位SELECT * FROM 表名 ORDER BY id<>1;如果指定数据是多个,如id in (1,2,3)SELECT * FROM 表名 ORDER BY id NOT IN(1,2,3);

2021-06-27 14:40:01 379

原创 SpringMVC整合fastjson

SpringMVC在使用@ResponseBody时,默认使用Jackson做json对象的序列化操作,若想使用fastJson,可指定message-converters <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean id="fastJsonHttpMessageConverter"

2021-01-24 16:59:39 208

原创 JAVA-读取post请求payload格式参数

简单的方式,使用Apache Commons IO 库的IO工具类IOUtils.toString(request.getReader())参考https://stackoverflow.com/questions/14525982/getting-request-payload-from-post-request-in-java-servlethttps://blog.csdn.net/mhmyqn/article/details/25561535...

2021-01-23 23:36:26 1351

原创 使用Nginx将http转https

最简单的方式,使用rewrite重写到httpsserver { listen 80; charset utf-8; server_name www.test.com; location ~ ^/(.*) { rewrite ^/(.*) https://www.test.com/$1 permanent; }}

2021-01-23 22:54:21 633

原创 Chrome 80及以上版本跨域Cookie的Samesite问题

Chrome 80之后,SameSite功能默认是开启的,用来防止CSRF攻击和用户追踪客户端快速解决方式,关闭SameSite功能打开Chrome设置,将chrome://flags/#same-site-by-default-cookies禁用,然后重启浏览器。服务端解决方法SameSite属性设置为None,secure属性设置为true;服务域名必须使用https协议访问;参考https://www.cnblogs.com/liu01321/p/13521558.htmlhttp:

2021-01-23 15:00:03 1619 3

原创 JAVA-关于线程stop方法过期

stop方法是不安全的。 停止线程会使它解锁它已锁定的所有监视器。建议的结束线程的两种方式:1.通过标识控制线程是否运行;public class ThreadSafe extends Thread { public volatile boolean exit = false; public void run() { while (!exit){...

2020-04-06 22:43:15 538

原创 JAVA-SimpleDateFormat线程安全问题

SimpleDateFormat是用来格式化日期的类,在单线程下使用没问题,但是在多线程场景下,如果多个线程使用的是同个实例,则可能出现时间出错,线程挂死问题。原因是format中使用了父类中的的calendar变量,其是一个共享变量,前后修改值在多线程情况下会出问题。解决方法:1.每个线程都使用一个新的实例;2.使用ThreadLocal保存SimpleDateFormat实例;pac...

2020-04-05 22:30:40 320

原创 Redis-多字段排序-排名设计

Redis的sorted set集合提供了一种有序的集合,集合中的每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。使用场景通常是作为排名。在上一篇说了选择题型题目表设计,接着这篇说下用户回答题目后的排行设计,这里使用redis的有序集合进行排名,排名条件是正确率高,耗时少。有序集合添加元素时需设定一个分数,这里两个排序条件不同,一个按照正...

2019-06-16 21:47:34 5528

原创 选择题型题目表设计

选择型题目表设计。场景:用户参与答题活动,可以多次回答,每次选择随机题目,题目都是单项选择题,表设计如下。题目表CREATE TABLE `question` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `title` varchar(512) COLLATE utf8mb4_bin NOT NULL, `create_at` datet...

2019-06-16 20:44:56 2663

原创 Apache-POI-设置单元格背景色

Apache-POI-设置单元格背景色版本:3.14XSSFCell mobileCell = row.getCell(0);XSSFCellStyle cellStyle = wb.createCellStyle();cellStyle.setFillForegroundColor(IndexedColors.RED.getIndex());cellStyle.setFillPatte...

2019-06-03 13:37:45 1430

原创 JAVA-删除html标签

import java.io.*;public class Html2TextWithRegExp { private Html2TextWithRegExp() {} public static void main (String[] args) throws Exception{ StringBuilder sb = new StringBuilder(); ...

2019-05-29 17:24:57 941

转载 Linux too many open files问题调查

转载自https://hunfan.top/2018/06/05/Linux%20too%20many%20open%20files/问题今天发现某netty服务总是报too many open files,因为是新上的服务,设备量并不多,不应该啊,T.T原因调查一下发生原因:too many open files,字面意思上看就是打开了过多的文件,不过在linux下files并不只是文...

2019-05-09 17:42:57 923

原创 StringUtils-leftPad、rightPad、center填充方法

package com.qh.health.service;import org.apache.commons.lang3.StringUtils;/** * @author wzx * @since 2019-04-29 */public class StringTest { public static void main(String[] args) { ...

2019-05-08 15:39:12 2286

原创 JAVA-简单树形结构

package com.qh.health.service;import com.alibaba.fastjson.JSON;import com.google.common.collect.Lists;import com.google.common.collect.Maps;import lombok.Data;import java.util.List;import java...

2019-05-07 18:02:19 625

原创 SpringMVC-请求参数注入-对象类型参数注入源码探讨

接着上一篇请求参数解析,本篇分析讲请求参数解析为对象属性的源码。demo基于springboot与上一篇稍微不同,这里的spring版本为5.1.5。controller@RestController@RequestMapping("/index")public class TestController { @GetMapping("/test") public St...

2019-04-21 23:12:08 3008

原创 Spring-bean循环依赖

循环依赖指的是两个或以上bean相互存在引用。Spring中循环依赖的几种情况:1.构造器参数循环依赖;无法解决,只能避免2.setter方式,单例;3.setter方法,prototype原型;无法解决,只能避免在bean初始化一文中,可以知道,创建bean需要经过一下几个步骤:1.实例化bean;2.populate bean,填充bean的属性;3.initialize be...

2019-03-31 22:19:21 689

原创 Spring-@Transactional源码分析

在spring配置文件添加<tx:annotation-driven />启用注解式事务管理,接着在需要事务管理的类或方法上添加@Transactional注解,就能实现事务管理。本篇内容分析该实现背后源码。上面两个注解在spring-tx包中:<dependency> <groupId>org.springframework</groupI...

2019-03-30 15:55:03 362

原创 Spring-AOP源码探讨-创建bean代理对象&代理方法执行流程

在上一篇中梳理了匹配bean通知(Advisor)的流程。这篇延续上篇,梳理创建bean代理对象源码。先回顾下AbstractAutoProxyCreator类的wrapIfNecessary方法:/** * Wrap the given bean if necessary, i.e. if it is eligible for being proxied. * @param bean ...

2019-03-29 23:00:16 770

原创 Spring-AOP源码探讨-匹配bean通知

说明使用<aop:aspectj-autoproxy />声明式注解风格配置切面,其自动为spirng容器中符合条件的bean创建代理对象匹配通知(Advisor)内部流程。配置:<aop:aspectj-autoproxy />aop命名空间中aspectj-autoproxy的解析类是AspectJAutoProxyBeanDefinitionParser。其...

2019-03-29 21:54:59 395

原创 Spingboot-使用AOP实现动态自动切换Mybatis数据源+分页

目标:使用AOP实现动态自动切换Mybatis数据源,分页插件使用PageHelper。项目使用Springboot搭建。application.yml配置文件server: port: 8086db1: datasource: url: jdbc:mysql://localhost:3306/demo?characterEncoding=UTF-8&chara...

2019-03-28 10:42:19 947

原创 Java-实现可监控线程池

目标:创建线程池和一个监控线程,监控线程持有线程池引用,接着定时打印线程池相关信息,使用springboot创建demo。创建线程池接口:/** * 通过设置的参数创建线程池 * Created by wzx on 22/03/2019 */public interface ITestThreadPoolExecutorService { ThreadPoolExecutor...

2019-03-28 00:04:13 4813

原创 JS-时区选择-获取当前时区

一个时区选择插件的使用,以及获取当前时区的例子。&lt;!DOCTYPE html&gt;&lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;&lt;/title&gt; &lt;script src="https://cdn.bootcss.com/jquery/3.3.

2018-12-29 17:18:24 18617 1

原创 JS-使用clamp.js-限制文本显示行数

使用clamp.js限制文本显示行数&lt;!DOCTYPE html&gt;&lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;line-clampin&lt;/title&gt; &lt;script src="https://cdn.bootcss.com/jquer

2018-12-29 15:47:38 2464

原创 JS-监控input文本内容变化

需要监控input是否有值,可通过监听change、keyup、paste3个事件判断。&lt;!DOCTYPE html&gt;&lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;input_change&lt;/title&gt; &lt;script src="htt

2018-12-29 15:16:11 1783

原创 JS-selectize插件使用

Selectize是基于jQuery的input和select的结合。它的使用场景通常在标记,联系人列表,国家/地区选择器等。GitHub:https://github.com/selectize/selectize.js例子:&lt;!DOCTYPE html&gt;&lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt...

2018-12-29 15:04:52 2927

空空如也

空空如也

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

TA关注的人

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