- 博客(74)
- 收藏
- 关注
原创 阿里网盘资源查找使用技巧
之前阿里网盘出来的时候,很多消息灵通的朋友应该都已经注册并且已经安排上了,但是现在问题来了,由于百度网盘一家独大,导致很多人都将资源全部存在百度网盘里面的,现在想转移该怎么办?
2021-12-27 17:42:15 3692
原创 JVM图解笔记1
源文件原图地址,关注公众号“奇闻技巧”,回复“JVM图解“ 获取代码编译原始文件通过JavaC编译,经历语法解析器,语意解析器等,变成class字节码文件。类加载器class文件加载过程从磁盘中拿到文件流 将磁盘文件静态结构载入内存方法区,转换为运行时数据结构《类信息》把载入后的类信息进行组装,在堆空间中生成类对象(class对象),做为数据入口。简单来说:双亲委派机制:就是拿到字节码信息之后不会直接加载,会丢给父类去加载,直到没有符合加载的父类为止..
2021-10-13 10:49:38 262
原创 推荐!高速免费抢票软件!国庆假期不在为车票发愁
背景又快到了一年一度的国庆小长假了,远离家乡工作的同胞们又要开始抢票的工作了,现在推荐一款不错的抢票软件,12306bypass,是一款分流抢票软件,不用安装即可使用。下载途径官网下载链接:http://www.12306bypass.com百度云盘:https://pan.baidu.com/s/1MUFsaHHl_prcYsicSb-k7Q 提取码: ivnu操作下载到本地后解压进入软件目录双击Bypass.exe即可运行。...
2021-09-14 17:37:28 1555
原创 互联网中何为中台?
中台的产生公司业务发展到一定阶段,遇到瓶颈与障碍后,提出的解决方案。中台的定义前台的支撑系统,基础设施层之上的通用业务层,具体由通用的业务领域能力和与其对应的后台系统共同组成。建设案例共享业务事业部,就相当于业务中台,将淘宝天猫等通用业务的一个提炼。1.为什么需要中台?企业高速发展中出现重复造轮子,烟囱式架构 问题,影响运行效率和成本。 一类是许多业务需求或功能高度类似,通用,但没有专门的团队负责维护和开发,大量的系统重复开发,重复建设,导致复用性降低,效率低,产研资源
2021-09-14 15:13:35 760
转载 设计 QQ、微信、微博、Github 等第三方账号登陆
前言:多账户登陆创业初期用户名密码注册登陆手机号注册登陆数据库设计引入第三方账户方案数据库设计总结前言:多账户登陆互联网应用当中,我们的应用会使用多个第三方账号进行登录,比如:网易、微信、QQ等,我们把此称为多账户统一登陆。通过这篇文章, 我想阐释多账户登陆的技术方案细节,以及相应的表设计,流程设计。我这里不会有具体代码实现细节,只要方案做的对,有思路,代码咋写都不会太烂。1. 创业初期归结为创业初期是因为这个时候用户量比较少,甚至还没有接入上面所说的其他第三方的账户系统,只是
2021-05-11 14:36:46 210
原创 异步通用导出报表文件设计
1.背景导出几十万,上百万数据文件,会存在http请求时限,Mysql延迟,Excel文件生成慢等问题,需要异步操作。2.涉及技术点super-csv, easyPoi,策略模式,七牛云3.废话不多说,先看一个粗糙的流程图代码案例:1. 生成报表的主流程handlepackage cn.demo.facade.excel;import cn.afterturn.easypoi.excel.entity.ExportParams;import lombok..
2021-03-10 00:37:56 1074
原创 SQL中EXISTS与IN的使用及效率
in 和exists对于以上两种查询条件,in是把外表和内表作hash 连接,而exists 是对外表作loop 循环,每次loop 循环再对内表进行查询。一直以来认为exists 比in 效率高的说法是不准确的。在不同的情况下,exists与in的性能各有优缺项,如果查询的两个表大小相当,那么用in 和exists 差别不大。下面以实例来进行说明:select * from A where id in(select id from B);select * from A where ..
2021-01-31 23:17:45 749 2
原创 Mysql批量插入百万测试数据
背景:需要做稳定测试,需要我造一千万条测试数据步骤: 1.先建立一张临时表,等把数据刷进去之后,在把表名字更改成真正的表,这样就造数据的时候不会阻碍测试正常测试sql 如下DROP TABLE IF EXISTS `order_pay_detail_1`;#1. 准备表CREATE TABLE `order_pay_detail_1` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', `fee_type`..
2021-01-31 22:58:11 383
原创 Sql分析优化工具Soar-Web的简单使用
上一篇记录了安装Soar 和 Soar-web的过程https://blog.csdn.net/qq_35152037/article/details/113099729下面记录一下怎么使用的通过IP+端口访问到如下界面这些按钮和操作不需要多说了,多玩几下就知道了...
2021-01-24 23:24:28 556
原创 SQL分析检查工具Soar 和 Soar-web的安装
SQL分析检查工具Soar 和 Soar-web的安装背景 最近开发需要写一些复杂的Sql脚本,但是依赖Explain工具分析SQl还是有很麻烦,于是乎就找到了这个小米开源的SQL分析工具,东西挺好的,可惜的是到2019年就没有维护了。 工具分为两个组件:Soar 和 Soar-web 顾名思义,前者才是核心,后者是后来方便使用开源的一个网页操作版,就类似于 ES 和 kibana 一样,可以直接用Soar上的命令来分析语句,只是看起来没那么直观而已。前置条件...
2021-01-24 23:14:37 710
原创 pierced-内网穿透工具的使用
背景:需要把自己私有ip地址暴露到公网,可以让人家通过域名访问,此处使用阿里开源的工具pierced场景:钉钉接口回调测试,微信接口回调测试,自己搭的网站等1.下载pierced,地址如下git clone https://github.com/open-dingtalk/pierced.git2.安装,找到你下载下来的文件位置 -(Linux环境) 请使用对应的文件/Users/xh/Decket/ding/mac_64/ding3.输入启动命令:./ding -con
2021-01-24 22:45:31 2805
原创 交易系统订单号改造方案
背景:目前的订单号生成体系不支持高并发的场景,后续可能会出现订单号重复的情况 ,现在生成策略 = xx + 年的前两位 + 月 + 日 + 系统毫秒数后8位 + 用户ID后4位方案一公式:现有生成策略 + 随机5位数字优点:改动范围小缺点:没有从根本解决高并发问题,只是减小了重复的几率方案二公式:现有生成策略 + 用户ID分布式锁优点:防止重复提交缺点:依赖redis提供的能力,需要压测方案三公式:“CM” + 雪花算法(19位字符串) + 用户id后四位 + 加随机数优点:支持高
2020-08-04 10:29:39 263
原创 Java中CMS垃圾回收器存在的问题
CMS存在的问题概述CMS 是老年代垃圾回收算法,通过标记-清除的方式,=意在通过并发的方式适度减少吞吐量,减少用户线程停顿时间。CMS收集器对处理器资源非常敏感CMS的在垃圾清除是使用并发清除的,如果处理器核数不高的情况下,垃圾回收会造成很高的负载。并发回收造成的内存不足造成原因在CMS的并发标记和并发清理阶段,用户线程是还在继续运行的,程序在运行自然就还会伴随有新的...
2020-04-29 15:17:38 927
原创 如何防止表单重复提交(后端)
1.背景与介绍:平时开发的项目中可能会出现下面这些情况:由于用户误操作,多次点击表单提交按钮。 由于网速等原因造成页面卡顿,用户重复刷新提交页面。 黑客或恶意用户使用postman等工具重复恶意提交表单(攻击网站)。这些情况都会导致表单重复提交,造成数据重复,增加服务器负载,严重甚至会造成服务器宕机。因此有效防止表单重复提交有一定的必要性。2.解决方案2.1 通过Jav...
2020-04-26 13:43:13 2507
原创 Postgresql和Mysql的区别
一、 PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步,然而很多 MySQL 用户都遇到过Server级的数据库丢失的场景——mysql系统库是MyISAM的,相比之下,PG数据库这方面要好一些。二、任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降,而 MySQL 明显...
2020-04-12 01:39:56 7785
原创 Synchronized原理和jdk1.8后的优化
Synchronized关键字使用较多的形式如下所示:1:以synchronized同步代码块的形式synchronized(Object){ //代码}2:对一个方法进行synchronized声明,进而对一个方法进行加锁来实现同步。如下面代码public synchornized void test(){ //代码}上述中其实都是对对象加锁,对于第二种如果非...
2020-04-12 01:28:32 4263 5
原创 深入浅出索引-下
在上一篇文章中,我和你介绍了InnoDB索引的数据结构模型,今天我们再继续聊聊跟MySQL索引有关的概念。在开始这篇文章之前,我们先来看一下这个问题:在下面这个表T中,如果我执行 select * from T where k between 3 and 5,需要执行几次树的搜索操作,会扫描多少行?下面是这个表的初始化语句。mysql> create table T (I...
2020-04-08 14:10:35 199
原创 深入浅出索引-上
提到数据库索引,我想你并不陌生,在日常工作中会经常接触到。比如某一个SQL查询比较慢,分析完原因之后,你可能就会说“给某个字段加个索引吧”之类的解决方案。但到底什么是索引,索引又是如何工作的呢?今天就让我们一起来聊聊这个话题吧。数据库索引的内容比较多,我分成了上下两篇文章。索引是数据库系统里面最重要的概念之一,所以我希望你能够耐心看完。在后面的实战文章中,我也会经常引用这两篇文章中提到的知识点...
2020-04-08 11:33:37 227 1
原创 synchronize中的三种锁的形式在使用应用场景上有什么区别? 偏向锁、轻量级锁、重量级锁在使用过程中有什么不同呢?
java中的三种锁,偏向锁,轻量级锁,重量级锁其实也有很多值得探究的地方,引入偏向锁是为了在无多线程竞争的情况下尽量减少不必要的轻量级锁执行路径,因为轻量级锁的获取及释放依赖多次CAS原子指令,而偏向锁只需要在置换ThreadID的时候依赖一次CAS原子指令,代价就是一旦出现多线程竞争的情况就必须撤销偏向锁。Java对象头的长度Java的对象头通常由两个部分组成,一个是Mark Word存...
2020-04-08 10:02:09 573
原创 一条select查询语句在数据库中经历了什么?
比如,你有个最简单的表,表里只有一个ID字段,在执行下面这个查询语句时:mysql> select * from T where ID=10;我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在MySQL内部的执行过程。所以今天我想和你一起把MySQL拆解一下,看看里面都有哪些“零件”,希望借由这个拆解过程,让你对MySQL有更深入的理解。这样当我们碰到MySQL的一...
2020-04-08 09:39:46 687
原创 Mysql的事务隔离,为什么修改了依然看不见
提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转100块钱,而此时你的银行卡只有100块钱。转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作必须保证是一体的,不然等程序查完之后,还没做减法之前,你这100块钱,完全可以借着这个时间差再查一次,然后再给另外一个朋友转账,如果银行这么整,不就乱了么?这时就要用...
2020-04-06 23:44:02 424
原创 一条update更新语句是如何执行的
在平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个ID字段,在执行下面这个查询语句时:mysql> select * from T where ID=10;我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在MySQL内部的执行过程。所以今天我想和你一起把MySQL拆解一下,看看里面都有哪些“零件”,希望借由这个拆解过程,让你对MySQ...
2020-04-06 23:32:32 1983 2
原创 高并发秒杀系统如何设计?
前言秒杀大家都不陌生。自2011年首次出现以来,无论是双十一购物还是 12306 抢票,秒杀场景已随处可见。简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程。从架构视角来看,秒杀系统本质是一个高性能、高一致、高可用的三高系统。而打造并维护一个超大流量的秒杀系统需要进行哪些关注,就是本文讨论的话题。整体思考首先从高维度出发,整体思考问题。秒杀无外乎解决两个核心问题,一是并...
2019-12-04 16:32:43 916
原创 记录一次58面试问题汇总
NIO底层实现原理NIO在哪些场景运用Netty有哪些了解怎么实时变更页面数据WabSocket怎么实现消息推送的说说Mysql存储引擎,以及区别,功能啥的Mysql索引采用什么数据结构explan 慢查询关键字的运用联合索引优化的 最左匹配原则支付表和订单记录表的统计sql,(两种写法试下)手写一个 线程安全的单例模式说一说你知道哪些设计模式,挑一种你最熟悉的来讲(举例说...
2019-12-03 17:55:28 613
原创 如何优化sql,效率最高,SQL索引优化
索引概念和作用索引是一种使记录有序化的技术,它可以指定按某 列/某几列预先排序,从而大大提高查询速度(类似 于汉语词典中按照拼音或者笔画查找)。索引的主要作用是加快数据查找速度,提高数据库 的性能。MySQL索引类型从物理存储角度上,索引可以分为聚集索引和非聚 集索引。1.聚集索引(Clustered Index)聚集索引决定数据在磁盘上的物理排序,-个表只 能有一个聚集索引。2.非...
2019-12-03 16:34:29 727
原创 大厂在用的分库分表方案-杂记
一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。1、IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表。第二种:网络IO...
2019-10-20 22:34:51 153
原创 String.format的特殊用法
“ String.format大家肯定用过,但是你可能不知道还有一些快捷用法吧,这里带领大家去看一下,更多的用法建议大家去百度一下,以下我们用整形%d去探索一下”给整数前面补0比如整数不足3位,前面补0补足3位。如下:String.format("%03d",9)//输出结果就是009给整数前面空格比如整数不足3位,前面补空格补足3位。如下:String.format("% 3d",...
2019-10-20 22:00:35 760
原创 git简单提交并且合并分支以及解决冲突记录
1.拉取代码,并且提交代码git clone git//:xxxxx.gitlujing // 从远程仓库克隆仓库到本地git branch -a // 查看远程分支列表git checkout bugfix/191017 // 切换到bugfix 分支。// …IDE中修改代码git status // 查看git 的状态,能看出分支上有哪些文件改动git ...
2019-10-17 10:54:28 908
原创 MySQL中datetime和timestamp的区别及使用
转载自iVictor,原文链接:http://www.cnblogs.com/ivictor/p/5028368.html一、MySQL中如何表示当前时间?其实,表达方式还是蛮多的,汇总如下:CURRENT_TIMESTAMPCURRENT_TIMESTAMP()NOW()LOCALTIMELOCALTIME()LOCALTIMESTAMPLOCALTIMESTAMP()二、关...
2019-05-13 13:34:36 26380 3
原创 Linux上mysql的安装---tar压缩包格式的
检查是否已安装,grep的-i选项表示匹配时忽略大小写[root@localhost JavaEE]#rpm -qa|grep -i mysqlmysql-libs-5.1.61-4.el6.x86_64可见已经安装了库文件,应该先卸载****,不然会出现覆盖错误。注意卸:载时使用了–nodeps选项,忽略了依赖关系:[root@localhost JavaEE]#rpm -e ...
2019-04-11 15:26:37 363
原创 记录一次支付文档设计2
支付文档请求1携带 orderId,orderName,amount,(订单号,订单名称,金额)到后端。后端校验orderid是否存在,是否具有可支付状态,是否已经支付。后端校验orderName是否为空。后端校验amount是否与数据库中amount一致。调用支付宝SDK发送请求2后端生成业务流水号,记录操作日志。携带orderid,orderna...
2019-01-24 10:49:24 336
原创 接入支付宝网页支付的个人记录
实现支付宝支付,开发其实不难,主要是申请和配置一些秘钥麻烦先申请一个应用,应用对应了不同的功能,需要进行审核才能通过。为了开放方便,我申请了一个沙箱应用其中箭头所示的为这个应用的公钥 需要在代码中配置私钥的生成需要参考官方链接,下载到本地生成: https://docs.open.alipay.com/291/105971下面进行开发的配置:引入依赖<!-- 实现支付...
2019-01-23 20:58:40 2884 1
原创 实现163邮箱发送邮件功能
准备工作:先有一个163邮箱账号: 做一些邮件发送的设置勾选相关服务设置,并且设置客户端授权密码,这个密码是需要在代码中输入的,相当于是你发件箱的客户端密码。代码准备:引入相关依赖包 <!-- 支持发送邮件 --> <dependency> <groupId>org.springframework.boot</groupId&...
2019-01-23 20:25:45 3911
原创 调用阿里短信通知平台
准备工作:首先是在阿里买了一个短信服务(云通信)套餐然后设置短信通知模板然后设置应用签名,这是会在短信通知的内容中展示的,最好是公司或网站名称。找到 AccessKeyId 与 AccessKeySecret的位置AccessKeyId 与 AccessKeySecret是在哪里? 请看 https://help.aliyun.com/document_detail/55288.h...
2019-01-23 20:05:29 1443
原创 Apache、Tomcat、JBoss、Weblogic四个常用的JavaEE服务器
Apache、Tomcat、JBoss、Weblogic四个常用的JavaEE服务器Apache全球应用最广泛的http服务器,免费,出自apache基金组织Tomcat应用也算非常广泛的web 服务器,支持部分j2ee,免费,出自 apache基金组织JBoss开源的应用服务器,比较受人喜爱,免费(文档要收费)Weblogic应该说算是业界第一的app server,全部支持j2ee1....
2019-01-09 13:57:25 2140
原创 @InitBinde相关了解
转:https://blog.csdn.net/zero__007/article/details/80466392@InitBinder用于在@Controller中标注于方法上,表示为当前控制器注册一个属性编辑器,只对当前的Controller有效。@InitBinder标注的方法必须有一个参数WebDataBinder。所谓的属性编辑器可以理解就是帮助我们完成参数绑定。@Response...
2018-12-28 17:54:41 750
原创 解决Linux上Mysql服务器异常挂掉的一次经历
2018-12-25 14:49:57 25873 [Note] Plugin ‘FEDERATED’ is disabled.2018-12-25 14:49:57 25873 [Note] InnoDB: Using atomics to ref count buffer pool pages2018-12-25 14:49:57 25873 [Note] InnoDB: The Inno...
2018-12-25 15:22:28 5704
原创 SQL -优化部分总结+Mysql5.6性能优化
1。你必须选择记录条数最少的表作为基础表.(from 是从前往后检索的,所以要最少记录的表放在最前面)2。采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些 可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。同时在链接的表中能过滤的就应该先进行过滤。(where是从后往前检索,所以能过滤最多数据的条件应放到最后。)3。SELE...
2018-12-10 16:26:02 708
原创 浏览器输入url 后面做了什么处理
大致流程当用户在浏览器输入www.taobao.com这个url时,将会发生很多操作:首先,它会请求DNS把这个域名解析成对应的IP地址然后,根据这个IP在互联网上找到对应的服务器,向服务器发起一个get请求,由这个服务器决定返回默认的数据资源给访问的用户在服务器端可能还有很复杂的业务逻辑:服务器可能有很多台,到底指定哪台服务器来处理请求,这需要一个负载均衡设备来平均分配所有用户的请求;还有请...
2018-12-05 13:49:56 912
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人