- 博客(56)
- 资源 (5)
- 收藏
- 关注
原创 redis中flushdb和flushall两个命令的关键区别
在redis中,flushdb和flushall 都是清空当前数据库的操作,但是两者有很大的区别
2022-03-08 09:41:15
900
原创 Spring定时任务及Encountered invalid @Scheduled method For Input String错误
@Servicepublic class ScheduledService { // 每月的最后一天23点执行一次 @Scheduled(cron = "0 0 23 28-31 * *") public void scheduledCall() { System.out.println("hello world !"); }}运行出现问题:Caused by: java.lang.IllegalStateException:Enc.
2021-11-09 12:27:16
10264
4
转载 JVM调优,基本思路
jvm调优主要是针对垃圾收集器的收集性能优化,令运行在虚拟机上的应用能够使用更少的内存以及延迟获取更大的吞吐量。1、性能定义要查找和评估器性能瓶颈,首先要知道性能定义,对于jvm调优来说,我们需要知道以下三个定义属性,依作为评估基础:吞吐量:重要指标之一,是指不考虑垃圾收集引起的停顿时间或内存消耗,垃圾收集器能支撑应用达到的最高性能指标。延迟:其度量标准是缩短由于垃圾啊收集引起的停顿时间或者完全消除因垃圾收集所引起的停顿,避免应用运行时发生抖动。内存占用:垃圾收集器流畅运行所需要 的内存数量。
2020-06-17 17:49:00
642
原创 为什么在密码问题上char[]比String更合适
任何与字符串相关的问题一定有线索可以在字符串的属性里面找到,比如不可变性。1. 因为字符串是不可变对象,如果作为普通文本存储密码,那么它会一直存在内存中直至被垃圾收集器回收。因为字符串从字符串池中取出的(如果池中有该字符串就直接从池中获取,否则new 一个出来,然后把它放入池中),这样有很大的机会长期保留在内存中,这样会引发安全问题。因为任何可以访问内存的人能以明码的方式把密码dump出来。另...
2020-03-13 22:46:49
459
原创 Kafka的ACK参数-1,0,1分别代表什么含义,如何保证宕机的时候数据不丢失的
这个acks参数在kafka的使用中,是非常核心以及关键的一个参数,决定了很多东西。Kafkaproducer有三种ack机制 初始化producer时在config中进行配置;ack等于0:意味着producer不等待broker同步完成的确认,继续发送下一条(批)信息提供了最低的延迟。但是最弱的持久性,当服务器发生故障时,就很可能发生数据丢失。例如leader已经死亡,prod...
2020-03-13 20:53:12
16844
原创 mysql递归查询
表结构数据如下:id:主键idnodename:节点名称(部门名称)pid:父iddescription:描述信息如果是oracle数据库:select * from dept tconnect by prior t.pid = t.idstart with t.id = 1;如果是mysql数据库:SELECT id AS ID,nodename ...
2019-12-27 00:21:20
260
转载 Java虚拟机(JVM)你只要看这一篇就够了!
Java虚拟机(JVM)你只要看这一篇就够了!https://blog.youkuaiyun.com/qq_41701956/article/details/81664921
2019-11-28 01:22:29
298
原创 mysql中 (@i:=@i+1)的作用
Oracle中有一个伪列rownum,可以在生成查询结果表的时候生成一组递增的序列号。MySQL中没有这个伪列,但是有时候要用,可以用如下方法模拟生成一列自增序号。(1)sql示例:select (@i:=@i+5) as rownum, surname, personal_name from student, (select @i:=100) as init;解释: 上述sql中,100...
2019-11-13 01:09:05
649
转载 消息队列中点对点与发布订阅区别
我们为何需要搭建Apache Kafka分布式系统:活动数据网站用户行为相关数据,例如PV、UV等。运营数据监控系统性能指标(cpu利用率、负载,内存使用率,磁盘利用率,IO性能)以上这些数据的特点:数据不可变海量数据需要实时处理传统消息系统并不能很好的支持。背景知识JMS一个在Java标准化组织(JCP)内开发的标准(代号JSR 914)。2001年...
2019-09-11 09:39:41
281
转载 关于分布式发布订阅消息系统Kafka
概述:Kafka是一个高吞吐量、分布式的发布——订阅消息系统。据Kafka官网介绍,当前的Kafka已经定位为一个分布式流式处理平台(a distributed streaming platform),它以可水平扩展和具有高吞吐量等特性而著称。越来越多的开源分布式处理系统(Flume、Apache Storm 、Spark、Flink等)支持与KafKa集成。Kafka能够很好的满足以下三个...
2019-09-11 09:29:57
296
转载 内存可见性和原子性:Synchronized和Volatile的比较
在说明Java多线程内存可见性之前,先来简单了解一下Java内存模型。 (1)Java所有变量都存储在主内存中 (2)每个线程都有自己独立的工作内存,里面保存该线程的使用到的变量副本(该副本就是主内存中该变量的一份拷贝)(1)线程对共享变量的所有操作都必须在自己的工作内存中进行,不能直接在主内存中读写(2)不同线程之间无法直接访问其他线程工作内存中的变量,线程...
2019-09-06 10:10:45
152
原创 线程池的种类、原理、作用
一、常见的线程池有如下几种:1.CachedThreadPool(可缓存的线程池)2.SecudleThreadPool(周期性执行任务的线程池)3.SingleThreadPool(单线程线程池)4.FixedThreadPool(定常的线程池)二、区别及使用场景:三、线程池的工作原理:拿存在核心线程的线程池为例,这样其他线程池也很容易了解了!在这里我们要注...
2019-08-13 23:48:47
494
转载 Redis相关简述
1 什么是redis?Redis是一个基于内存的高性能key-value数据库。 (有空再补充,有理解错误或不足欢迎指正)2 Reids的特点Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 ...
2019-07-25 17:03:39
135
原创 关于对UUID 生成唯一标识的改进
需求 并发的时候需要,类似订单号不能重复,要保持唯一。精确到毫秒的时间戳并不能达到唯一标识。UUIDUUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,...
2019-07-25 09:18:10
605
原创 懒加载和预加载的区别
1、懒加载1.什么是懒加载?懒加载也就是延迟加载。当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张大小为1*1px图片的路径(这样就只需请求一次,俗称占位图),只有当图片出现在浏览器的可视区域内时,才设置图片正真的路径,让图片显示出来。这就是图片懒加载。2.为什么要使用懒加载?很多页面,内容很丰富,页面很长,图片较多。比如说各种商城页面。这些页面图...
2019-07-24 17:38:09
560
原创 Mysql搜索引擎及索引的选择
Mysql搜索引擎及索引的选择Mysql作为目前主流的开源关系型数据库,它的搜索引擎及索引的选择是十分关键的,选择正确能为数据库带来倍数的效率提升,而且这些效率提升是资源限制无关的,简单说就是免费的搜索引擎分为MyISAM和Innodb两种1. MyISAM(My Index Sequential Access Mode)索引循序存取法,MyISAM可压缩,读取...
2019-07-24 15:21:15
561
转载 高并发与高可用知识总结
究竟啥才是互联网架构“高并发”一、什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。响应时间:系统对...
2019-07-23 21:59:30
515
原创 Mybatis 延迟加载
1、什么是延迟加载延迟加载的条件:resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。 延迟加载的好处: 2.1:先从单表查询、需要时再从关联表去关联查询,大大提高 数据库性能,因为查询单表要比关联查询多张表速度要快。 2.2:提高性能,不用将程序未使用到...
2019-07-23 17:39:41
148
转载 mysql数据库中,数据量很大的表,完美解决方案
问题概述使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死。严重影响业务。问题前提:老系统,当时设计系统的人大概是大学没毕业,表设计和sql语句写的不仅仅是垃圾,简直无法直视。原开发人员都已离职,到我来维护,这就是传说中的维护不了就跑路,然后我就是掉坑的那个!!!...
2019-07-03 08:57:17
19643
转载 一篇文章彻底了解清楚什么是负载均衡
负载均衡是高可用网络基础架构的的一个关键组成部分,有了负载均衡,我们通常可以将我们的应用服务器部署多台,然后通过负载均衡将用户的请求分发到不同的服务器用来提高网站、应用、数据库或其他服务的性能以及可靠性。为什么要引入负载均衡先看一个没有负载均衡机制的web架构:请问上图中的架构有什么缺陷了?首先,用户是通过网络直接和web服务器相连,想象一下,如果这个服务器挂了(这种情况随时都...
2019-07-01 18:15:26
169
原创 一台服务器如何调另一台服务器里的接口(服务)
一台服务器如何调另一台服务器里的接口https://blog.youkuaiyun.com/qq_43154385/article/details/89401812
2019-07-01 11:57:39
2706
原创 并发编程之原子性、可见性、有序性的简单理解
并发程序正确地执行,必须要保证原子性、可见性以及有序性。只要有一个没有被保证,就有可能会导致程序运行不正确。原子性:一个操作或多个操作要么全部执行完成且执行过程不被中断,要么就不执行。可见性:当多个线程同时访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。有序性:程序执行的顺序按照代码的先后顺序执行。对于单线程,在执行代码时jvm会进行指令重排序,处理器...
2019-07-01 11:48:41
173
原创 Kettle数据同步和抽取
Kettle数据同步和抽取:https://blog.youkuaiyun.com/ruiguang21/article/details/80337960Kettle实现数据迁移:https://blog.youkuaiyun.com/qq_30258957/article/details/81464167
2019-07-01 10:11:51
408
原创 Tomcat支持多少并发
Tomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能和CPU数量都有很大关系的。更好的硬件,更多的处理器都会使Tomcat支持更多的并发。 Tomcat默认的HTTP实现是采用阻塞式的Socket通信,每个请求都需要创建一个线程处理,当一个进程有500个线程在跑的话,那性能已经是很低很低了。 Tomcat 默认配置的最大请求数是150,也就是说同时支...
2019-07-01 09:49:48
5664
原创 java连接ftp并读取文件内容
我们以读取NASA降水数据为例:package ftp.ftp5;import org.apache.commons.net.ftp.FTPClient;import java.io.*;public class Demo { public static void main (String args []) throws IOException { // 标准...
2019-06-28 15:26:42
8634
原创 上传文件到阿里云OSS提示RequestTimeTooSkewed错误
上传文件到阿里云对象存储服务报错,报错信息如下:2019-06-11 19:09:15.474 WARN 1 --- [ Thread-910] com.aliyun.oss : [Server]Unable to execute HTTP request: Thedifference between the request time and the current time is too...
2019-06-13 10:58:38
3171
原创 关于java时区问题
最近项目过程中遇到了一个时区问题,趁有时间这里做一下总结一、MySql从数据库中查出时间数据比实际时间晚八个小时;错误现象:数据库中的数据:查询到页面显示的数据:根本原因:时区设置的问题,UTC代表的是全球标准时间 ,但是我们使用的时间是北京时区也就是东八区,领先UTC八个小时,也就是说:UTC + (+0800) = 本地(北京)时间解决办法:在JDBC连接M...
2019-06-13 10:51:14
517
原创 SpringBoot配置Swagger
SpringBoot配置Swaggerhttps://blog.youkuaiyun.com/u011212427/article/details/78024126
2019-05-24 10:46:32
88
原创 spring boot configuration annotation processor not found in classpath
Spring boot提示信息:“spring boot configuration annotation processor not found in classpath”解决办法:在build.gradle中粘贴如下:dependencies { compile("org.springframework.boot:spring-boot-configuration-pro...
2019-05-21 09:45:52
136
原创 唯一索引和普通索引的区别
一、背景介绍索引用来快速地寻找那些具有特定值的记录,如果没有索引,执行查询时Mysql必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录,表里面的记录数量越多,这个操作的代价就越高,如果作为搜索条件的列上已经创建了索引,mysql无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有一千个记录,通过索引查找记录至少要比顺序扫描记录快100倍。所以对于现在的各种大型数据库来说,索...
2019-05-16 09:05:31
4286
原创 JAVA常量池
常量池分类常量池大体可以分为:静态常量池,运行时常量池。静态常量池: 存在于class文件中,比如经常使用的javap -verbose中,常量池总是在最前面把?运行时常量池:就是在class文件被加载进了内存之后,常量池保存在了方法区中,通常说的常量池 值的是运行时常量池。所以呢,讨论的都是运行时常量池字符串常量池最最最流行的、最典型的就是字符串了典型范例:Stri...
2019-05-15 17:21:52
420
1
原创 前端防止重复提交
在现在的web开发中我们经常使用ajax从后端获取数据,提交数据。对于有些游戏爱好者或者手速甚快的同学来说,一个按钮触发click事件可以触发多次。有经验的前端开发者肯定会使用防止重复提交方式避免重复提交数据。有经验的后端则会在每次提交数据时加vision版本号。如果后端加版本号来验证,则需要前端每次提交时增加版本号这个字段。因此做防止重复提交还是交给伟大的前端同学哈!现在我就把我所使用的方式分享...
2019-05-15 16:31:13
3468
原创 FreeMarker下拉列表选中值回显
使用FreeMarker实现下拉列表选中值回显最近项目突然要用freemarker,使用久了js、jquery现在有点不习惯,现在利用freemarker实现回显的方式记录一下。传到前端的两个对象分别是screen、company: /** * 编辑 */ @RequestMapping(value = "/edit", method = Reque...
2019-05-10 17:30:49
3276
原创 利用MySQL计算两点地理坐标之间的距离
需求:手机APP中,查询距离我1公里范围内所有的商家。分析:关键是如何根据两点之间的坐标求出这两点之间的距离;解决方案:利用MySQL存储函数计算距离并做处理;-- 获取两坐标点的距离(单位:米)-- lng1 经度1-- lat1 纬度1-- lng2 经度2-- lat2 纬度2CREATE FUNCTION `get_distance` ( lng1 D...
2019-05-09 16:47:04
1166
原创 Apache Shiro基本概念了解
Apache Shiro是一个强大且易用的Java安全框架,用于身份验证、授权、加密和会话管理等。Shiro 能做什么认证:验证用户的身份;授权:对用户执行访问控制:判断用户是否被允许做某事;管理:在任何环境下使用 Session API,即使没有 Web 或EJB 容器。加密:以更简洁易用的方式使用加密功能,保护或隐藏数据防止被偷窥;Realms:聚集一个或多个用户安全数据的数据源;单...
2019-05-09 10:52:45
167
原创 java读写excel
平常工作中,会有大量数据需要写入数据库,如果一个个逐条手动录入,很容易出现意想不到的差池,这时就需要excel直接导入了,方便快捷并且也不容易出错。那么,如何实现excel读取和写入呢?思路读取excel的时候,把每行数据看做一个一纬数组oneData对象,然后把这一个一个的一维数组遍历封装成一个二维数组的allData对象,写入excel的时候与此相反,把这个二维数组对象拆分成一个一个的...
2019-05-07 18:34:31
2018
1
原创 Redis缓存穿透、缓存雪崩、缓存击穿和缓存预热的详解及其就解决方案
Redis缓存的使用可以极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案。本篇文章,并不是要更加完美的解决这三个问题,也不是要颠覆业界流行的解决方案。而是...
2019-05-07 10:33:07
3123
mysql-connector-java-5.0.8-bin.jar
2017-05-03
nutz包文件
2017-05-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人