自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

勇往直前的专栏

写给以后的自己

  • 博客(3055)
  • 收藏
  • 关注

转载 Docker 极简入门教程,傻瓜都能看懂!

富 Web 时代,应用变得越来越强大,与此同时也越来越复杂。集群部署、隔离环境、灰度发布以及动态扩容缺一不可,而容器化则成为中间的必要桥梁。本文我们就来探索一下Docker的神秘世界,从零到一掌握Docker的基本原理与实践操作。别再守着前端那一亩三分地,是时候该开疆扩土了。讲个故事为了更好的理解Docker是什么,我们先来讲个故事:我需要盖一个房子,于是我搬石头、砍木头、画图纸、盖房子。一顿操作,终于把这个房子盖好了。结果,住了一段时间,心血来潮想搬到海边去...

2020-08-14 21:48:44 330

转载 面试必问:常用的加密算法有哪些?

加密算法我们整体可以分为:可逆加密和不可逆加密,可逆加密又可以分为:对称加密和非对称加密。一、不可逆加密常见的不可逆加密算法有MD5,HMAC,SHA1、SHA-224、SHA-256、SHA-384,和SHA-512,其中SHA-224、SHA-256、SHA-384,和SHA-512我们可以统称为SHA2加密算法,SHA加密算法的安全性要比MD5更高,而SHA2加密算法比SHA1的要高。其中SHA后面的数字表示的是加密后的字符串长度,SHA1默认会产生一个160位的信息摘要。不可逆加密算.

2020-08-14 21:33:53 3026 1

转载 支付宝二面:Mybatis 接口 Mapper 内的方法为啥不能重载吗?我直接懵逼了。。。

动态代理的功能:通过拦截器方法回调,对目标target方法进行增强。言外之意就是为了增强目标target方法。上面这句话没错,但也不要认为它就是真理,殊不知,动态代理还有投鞭断流的霸权,连目标target都不要的科幻模式。注:本文默认认为,读者对动态代理的原理是理解的,如果不明白target的含义,难以看懂本篇文章,建议先理解动态代理。1. 自定义JDK动态代理之投鞭断流实现自动映射器Mapper首先定义一个pojo。publicclassUser{privateInte...

2020-08-14 21:25:58 237

转载 Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现

前言本专题大纲如下:事务专题大纲「对于专题大纲我又做了调整哈,主要是希望专题的内容能够更丰富,更加详细」,本来是想在源码分析的文章中附带讲一讲事务使用中的问题,这两天想了想还是单独写一篇并作为事务专题的收尾篇,也是我Spring源码专题的收尾篇。本文大纲如下:Spring事务应用大纲在看这篇文章,以及下篇源码分析的文章我希望你对Spring AOP以及有充分的了解,不然一些细节问题你可能看不明白,关于Spring AOP如果你能看完这三篇文章基本上就没什么问题了Spring官网阅读(十八

2020-08-13 19:40:10 226

转载 Spring事务专题(三)事务的基本概念,Mysql事务处理原理

我重新整理了大纲,思考了很久,决定单独将MySQL的事务实现原理跟Spring中的事务示例分为两篇文章,因为二者毕竟没有什么实际关系,实际上如果你对MySQL的事务原理不感兴趣也可以直接跳过本文,等待接下来两篇应用及源码分析,不过我觉得知识的学习应该慢慢行成一个体系,为了建立一个完善的体系应该要对数据库本身事务的实现有一定认知才行。本文为Spring事务专题第三篇,在前两篇文章中我们已经对Spring中的数据访问有了一定的了解,那么从本文开始我们正式接触事务,在分析Spring中事务的实现之前我们应该要

2020-08-13 16:59:47 273

转载 彻底吃透监控系统,就这一篇!

由于业务的多样性,这些平台和系统也变得异常的复杂。如何对其进行监控和维护是我们 IT 人需要面对的重要问题。就在这样一个纷繁复杂地环境下,监控系统粉墨登场了。今天,我们会对 IT 监控系统进行介绍,包括其功能,分类,分层;同时也会介绍几款流行的监控平台。监控系统的功能在 IT 运维过程中,常遇到这样的情况: 某个业务模块出现问题,运维人员并不知道,发现的时候问题已经很严重了。 系统出现瓶颈了,CPU 占用持续升高,内存不足,磁盘被写满;网络请求突增,超出网关承受的压力。 .

2020-08-13 14:41:04 2139 1

转载 Spring Boot 中的 RestTemplate 不好用?试试 Retrofit!

大家都知道okhttp是一款由square公司开源的java版本http客户端工具。实际上,square公司还开源了基于okhttp进一步封装的retrofit工具,用来支持通过接口的方式发起http请求。如果你的项目中还在直接使用RestTemplate或者okhttp,或者基于它们封装的HttpUtils,那么你可以尝试使用Retrofit。retrofit-spring-boot-starter实现了Retrofit与spring-boot框架快速整合,并且支持了部分功能增强,从而极大的简化s..

2020-08-13 13:35:40 224

转载 面试官问:为什么 Java 线程没有Running状态?我懵了

Java虚拟机层面所暴露给我们的状态,与操作系统底层的线程状态是两个不同层面的事。具体而言,这里说的 Java 线程状态均来自于 Thread 类下的 State 这一内部枚举类中所定义的状态:什么是 RUNNABLE?直接看它的 Javadoc 中的说明:“一个在 JVM 中执行的线程处于这一状态中。(A threadexecutingin the Java virtual machine is in this state.)而传统的进(线)程状态一般划分如下:“注...

2020-08-13 10:54:05 964 1

转载 Redis 实现延迟队列?深深被折服!!

作者:_BKing地址:www.cnblogs.com/xiaowei123/p/13222710.html最近,又重新学习了下Redis,深深被Redis的魅力所折服,Redis不仅能快还能慢(我想也这么优秀o(╥﹏╥)o),简直利器呀咳咳咳,大家不要误会,本文很正经的啦!伙伴们跟我一起冲呀,我们一起去爬爬这座延时队列的山峰,探一探它究竟到底有高。那接下来开始我们的旅行啦~,我们都知道Redis是一种基于内存的单进程单线程数据库(Redis6.0开始之后支持多线程啦!),处理速.

2020-08-12 20:47:15 395

转载 Kafka 为什么那么快的 6 个原因!

无论 kafka 作为 MQ 也好,作为存储层也罢,无非就是两个功能(好简单的样子),一是 Producer 生产的数据存到 broker,二是 Consumer 从 broker 读取数据。那 Kafka 的快也就体现在读写两个方面了,下面我们就聊聊 Kafka 快的原因。1. 利用 Partition 实现并行处理我们都知道 Kafka 是一个 Pub-Sub 的消息系统,无论是发布还是订阅,都要指定 Topic。Topic 只是一个逻辑的概念。每个 Topic 都包含一个或多个 Par

2020-08-12 20:42:58 3106 1

转载 将来,你会成为这三种程序员之一

记者:观众朋友们大家好,我是码农翻身电视台的记者,欢迎收看今晚11点半的《码农访谈》节目。在编程技术日新月异的今天,保持快速学习的能力是在这个行业”混“下去的关键。今天我们采访了三位30岁+的“老”程序员:老王,老张,老钱,他们各自有一套快速学习的秘籍,咱们一起来看一看。01 对老王的采访记者:老王您好,我听说您在公司号称“行走的百科全书” ,什么技术都懂?老王(嘿嘿一笑):哪里哪里,我只会十来种语言吧!然后就是懂一些前端,懂一些后端,懂一点儿Android ,懂一点iOS,了解一点大数据,.

2020-08-12 17:58:18 264

转载 JVM 史上最最最完整知识总结!

作者:Huangy远来源:segmentfault.com/a/1190000014395186Java运行时数据区:Java虚拟机在执行Java程序的过程中会将其管理的内存划分为若干个不同的数据区域,这些区域有各自的用途、创建和销毁的时间,有些区域随虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束来建立和销毁。Java虚拟机所管理的内存包括以下几个运行时数据区域,如图:1、程序计数器:指向当前线程正在执行的字节码指令。线程私有的。2、虚拟机栈:虚拟机栈是.

2020-08-12 17:56:36 250

转载 Spring Boot 微信点餐开源系统

架构前后端分离:Nginx与Tomcat的关系在这篇文章,几分钟可以快速了解:“https://www.jianshu.com/p/22dcb7ef9172补充: setting.xml 文件的作用:settings.xml是maven的全局配置文件。而pom.xml文件是所在项目的局部配置。Settings.xml中包含类似本地仓储位置、修改远程仓储服务器、认证信息等配置。 maven的作用:借助Maven,可将jar包仅仅保存在“仓库”中,有需要该文件时,..

2020-08-12 09:41:19 237

转载 MySQL 的 Binlog 日志处理工具(Canal,Maxwell,Databus,DTS)对比

Canal定位:基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql。原理: canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议 mysql master收到dump请求,开始推送binary log给slave(也就是canal) canal解析binary log对象(原始为byte流) 整个parser过程大致可分为几步: Connection获取上一次

2020-08-12 09:37:32 421

转载 Spring 常犯的十大错误,打死都不要犯!

1. 错误一:太过关注底层我们正在解决这个常见错误,是因为 “非我所创” 综合症在软件开发领域很是常见。症状包括经常重写一些常见的代码,很多开发人员都有这种症状。虽然理解特定库的内部结构及其实现,在很大程度上是好的并且很有必要的(也可以是一个很好的学习过程),但作为软件工程师,不断地处理相同的底层实现细节对个人的开发生涯是有害的。像 Spring 这种抽象框架的存在是有原因的,它将你从重复地手工劳作中解放出来,并允许你专注于更高层次的细节 —— 领域对象和业务逻辑。因此,接受抽象。下次面对特

2020-08-12 09:29:47 202

转载 ZooKeeper 技术内幕,Leader 选举是一个什么样的过程?

几个问题,引发思考: 什么时候 leader 选举? 选举的过程? 选举过程中,是否能提供服务? 选举结果,是否会丢失数据? 服务器角色2 个小问题: 服务器节点有多少角色? 每个角色的作用? 角色ZK 集群中,服务器节点,有 3 中角色: Leader:ZK 集群工作机制的核心,主要工作: 调度者:集群内部各个服务节点的调度者 事务请求:事务请求的唯一调度和处理者,保证集群事务处理的顺序性

2020-08-12 07:30:32 173

转载 基于 Spring Boot 的车牌识别系统(附项目地址)ba

gitee开源地址“https://gitee.com/admin_yu/yx-image-recognition嘿嘿,胖友给艿艿的 https://github.com/YunaiV/SpringBoot-Labs 仓库点个 Star 吧,具体 100000 只差 4000 个了,分分钟~介绍 spring boot + maven 实现的车牌识别及训练系统 基于java语言的深度学习项目,在整个开源社区来说都相对较少;而基于java语言实现车牌识别EasyPR-Java项

2020-08-11 21:38:22 227

转载 干 MySQL 两千万数据的大表优化解决过程,三种厉害的解决方案

问题概述使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死。严重影响业务。问题前提:老系统,当时设计系统的人大概是大学没毕业,表设计和sql语句写的不仅仅是垃圾,简直无法直视。原开发人员都已离职,到我来维护,这就是传说中的维护不了就跑路,然后我就是掉坑的那个!!!我尝试解决该问题,so,有个这个日志。方案概述方案一:优化现有mysql数据库。优点:不影响现有业务,

2020-08-11 21:34:11 1237

转载 醉了,RPC 超时设置也能引起线上事故!

上面这张监控图,对于服务端的研发同学来说再熟悉不过了。在日常的系统维护中,『服务超时』应该属于监控报警最多的一类问题。尤其在微服务架构下,一次请求可能要经过一条很长的链路,跨多个服务调用后才能返回结果。当服务超时发生时,研发同学往往要抽丝剥茧般去分析自身系统的性能以及依赖服务的性能,这也是为什么服务超时相对于服务出错和服务调用量异常更难调查的原因。这篇文章将通过一个真实的线上事故,系统性地介绍下:在微服务架构下,该如何正确理解并设置RPC接口的超时时间,让大家在开发服务端接口时有更全局的视野。内..

2020-08-11 21:31:41 229

转载 短信验证码的登录流程

1、构造手机验证码:使用random对象生成要求的随机数作为验证码,例如4位验证码:1000~9999之间随机数;2、使用接口向短信平台发送手机号和验证码数据,然后短信平台再把验证码发送到制定手机号上,接口参数一般包括:目标手机号,随机验证码(或包含失效时间),平台接口地址,平台口令;3、保存接口返回的信息(一般为json文本数据,然后需转换为json对象格式);4、将手机号--验证码、操作时间存入Session中,作为后面验证使用;5、接收用户填写的验证码及其他数据;6、对比提交的验证

2020-08-11 21:25:16 497

转载 Spring Validation 最佳实践及其实现原理,参数校验没那么简单!

之前也写过一篇关于Spring Validation使用的文章,不过自我感觉还是浮于表面,本次打算彻底搞懂Spring Validation。本文会详细介绍Spring Validation各种场景下的最佳实践及其实现原理,死磕到底!“项目源码:https://github.com/chentianming11/spring-validation简单使用Java API规范(JSR303)定义了Bean校验的标准validation-api,但没有提供实现。hibernate validat

2020-08-11 21:22:37 380

转载 我的程序跑了60多小时,就是为了让你看一眼JDK的BUG导致的内存泄漏。

从一个BUG说起前段时间翻到了一个 JDK 有点意思的 BUG,带大家一起瞅瞅。https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8137185memory leak,内存泄漏。是谁导致的内存泄漏呢?ConcurrentLinkedQueue,这个队列。这个 BUG 里面说,在 jetty 项目里面也爆出了这个 BUG:我看了一下,觉得 jetty 的这个写的挺有意思的。我按照 jetty 的这个讲吧,反正都

2020-08-11 21:19:14 182

转载 朋友入职中软一个月(外包华为)就离职了!

我在年前从上一家公司离职,没想到过年期间疫情爆发,我也被困在家里,在家呆着的日子让人很焦躁,于是我疯狂的投简历,看面试题,希望可以进大公司去看看。我也有幸面试了我觉得还挺大的公司的(虽然不是 bat 之类的大厂,但是作为一名二本计算机专业刚毕业的大学生 bat 那些大厂我连投简历的勇气都没有),最后选择了中软,我知道这是一家外包公司,待遇各方面甚至不如我的上一家公司,但是对我而言这可是外包华为,能在华为工作是我一直都不敢想的,算是我心中的白月光吧,即使是以外包的身份进去。目前入职已经有 ..

2020-08-11 16:47:04 3368 1

转载 技术总监反思录:我是怎么失去团队掌控力的?

我是一个不合格的技术总监,在过去的快三个月里。我带着从40多个人的研发团队(包含需求、开发、测试)里抽调出20多个人去为公司开疆拓土。在这快三个月中,我们一起奋战奋斗拼搏。在过程中,我通宵时间超过半个月,干到凌晨4/5点的日子数不胜数,干到凌晨1/2点日子更是习以为常。整个团队绝大多数人近乎两个月没有周末,辛苦异常,是实实在在的高峰体验。但是三个月后,我带着失败和一身的惨痛教训回到公司。我在这次的经历中感受到了我是怎么失去团队掌控力的。我所谓的团队掌控,不是说兄弟们不听安排,不按计划行事。而是我对整个开

2020-08-11 16:44:44 287

转载 面试:你知道 Java 中的回调机制吗?

调用和回调机制在一个应用系统中, 无论使用何种语言开发, 必然存在模块之间的调用, 调用的方式分为几种:1. 同步调用同步调用是最基本并且最简单的一种调用方式, 类 A 的方法 a() 调用类 B 的方法 b(), 一直等待 b() 方法执行完毕, a() 方法继续往下走. 这种调用方式适用于方法 b() 执行时间不长的情况, 因为 b() 方法执行时间一长或者直接阻塞的话, a() 方法的余下代码是无法执行下去的, 这样会造成整个流程的阻塞.2. 异步调用异步调用是为了解决同步

2020-08-11 16:40:16 138

转载 Spring 的 Controller 是单例还是多例?怎么保证并发的安全

答案controller默认是单例的,不要使用非静态的成员变量,否则会发生数据逻辑混乱。正因为单例所以不是线程安全的。我们下面来简单的验证下:packagecom.riemann.springbootdemo.controller;importorg.springframework.context.annotation.Scope;importorg.springframework.stereotype.Controller;importorg.springframework....

2020-08-11 15:46:52 170

转载 数据仓库、数据湖、流批一体,终于有大神讲清楚了!

摘要数据仓库,数据湖,包括Flink社区提的流批一体,它们到底能解决什么问题?今天将由阿里云研究员从解决业务问题出发,将问题抽丝剥茧,从技术维度娓娓道来:为什么你需要数据湖或者数据仓库解决方案?它的核心难点与核心问题在哪?如果想稳定落地,系统设计该怎么做?业务背景1.1 典型实时业务场景首先我们来看一个典型的实时业务场景,这个场景也是绝大部分实时计算用户的业务场景,整个链路也是一个典型的流计算架构:把用户的行为数据或者数据库同步的Binlog,写入至kafka,再通过...

2020-08-09 17:31:24 641

转载 在 Redis 中设置了过期时间的 Key,需要注意哪些问题?

熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除。在为key设置过期时间需要注意的事项1、 DEL/SET/GETSET等命令会清除过期时间在使用DEL、SET、GETSET等会覆盖key对应value的命令操作一个设置了过期时间的key的时候,会导致对应的key的过期时间被清除。//设置mykey的过期时间为300s127.0.0.1:6379>setmykeyhelloex300OK//查看...

2020-08-07 09:48:19 421

转载 互联网人的《三十而已》:裸辞,催婚,职业瓶颈,逃离北上广深......

最近刷爆眼球的热播剧,莫过于《三十而已》。这部剧折射出的现实问题,引起广泛的共鸣。孔夫子曰:三十而立。所谓“三十而立”,是指人在三十岁前后建立自己稳定的价值观、做事做人的价值。而如今与“三十岁”捆绑的,却往往是结婚、买房、生子......所以我们在迈向三十岁的时候,总会不由自主地慌乱,总觉得这时候该拥有些什么才能立足于当下。在小城市,年轻人或许更早地踏入人生预设的轨道,在所谓的而立之年,完成了买房,结婚,生子等任务。但在一线城市,尤其是拥抱变化的互联网行业,这一切未必如你所愿。互

2020-08-07 09:46:52 301

转载 新一代垃圾回收器ZGC的探索与实践

很多低延迟高可用Java服务的系统可用性经常受GC停顿的困扰,作为新一代的低延迟垃圾回收器,ZGC在大内存低延迟服务的内存管理和回收方面,有着非常不错的表现。本文从GC之痛、ZGC原理、ZGC调优实践、升级ZGC效果等维度展开,详述了ZGC在美团低延时场景中的应用,以及在生产环境中取得的一些成果。希望这些实践对大家有所帮助或者启发。ZGC(The Z Garbage Collector)是JDK 11中推出的一款低延迟垃圾回收器,它的设计目标包括: 停顿时间不超过10ms; 停顿时间

2020-08-07 09:46:34 435

转载 两年经验斩获蚂蚁/头条/PingCAP Offer,牛逼哈!

“分享一篇面经,作者拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer。下面是该作者的经验分享。去年(18年)年底想出来看看机会,最后很幸运地拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer。想着可以总结一下经验,分享一下自己这一段”骑驴找马”过的心路历程。当然,一家之言,难免粗浅,如有不妥,敬请指正。全文有点长,假如只对一家公司感兴趣的话可以直接跳过去: 准备过程 面试: PingCAP 面试: 蚂蚁

2020-08-06 10:50:12 1134 1

转载 面试官:知道时间轮算法吗?在Netty和Kafka中如何应用的?

最近看 Kafka 看到了时间轮算法,记得以前看 Netty 也看到过这玩意,没太过关注。今天就来看看时间轮到底是什么东西。为什么要用时间轮算法来实现延迟操作?延时操作 Java 不是提供了 Timer 么?还有 DelayQueue 配合线程池或者 ScheduledThreadPool 不香吗?我们先来简单看看 Timer、DelayQueue 和 ScheduledThreadPool 的相关实现,看看它们是如何实现延时任务的,源码之下无秘密。再来剖析下为何 Netty 和 Kafka

2020-08-06 10:46:30 292

转载 MySQL 日期时间类型怎么选?千万不要乱用!

构建数据库写程序避免不了使用日期和时间,对于数据库来说,有多种日期时间字段可供选择,如 timestamp 和 datetime 以及使用 int 来存储 unix timestamp。不仅新手,包括一些有经验的程序员还是比较迷茫,究竟我该用哪种类型来存储日期时间呢?那我们就一步一步来分析他们的特点,这样我们根据自己的需求选择合适的字段类型来存储 (优点和缺点是比较出来的 , 跟父母从小喜欢拿邻居小孩子跟自己比一样的)datetime 和 timestampdatetime 更像日历上面的.

2020-08-06 10:31:34 559

转载 面试:一个 Java 字符串到底有多少个字符?

依照Java的文档, Java中的字符内部是以UTF-16编码方式表示的,最小值是\u0000(0),最大值是\uffff(65535), 也就是一个字符以2个字节来表示,难道Java最多只能表示 65535个字符?“char: The char data type is a single 16-bit Unicode character. It has a minimum value of '\u0000' (or 0) and a maximum value of '\uffff' (or 6..

2020-08-06 10:30:09 234

转载 面试官:你能告诉我一个请求过来,Spring MVC 是如何找到正确的 Controller 的?

前言SpringMVC是目前主流的Web MVC框架之一。我们使用浏览器通过地址 http://ip:port/contextPath/path进行访问,SpringMVC是如何得知用户到底是访问哪个Controller中的方法,这期间到底发生了什么。本文将分析SpringMVC是如何处理请求与Controller之间的映射关系的,让读者知道这个过程中到底发生了什么事情。源码分析在分析源码之前,我们先了解一下几个东西。1.这个过程中重要的接口和类。HandlerMethod类:

2020-08-06 10:17:50 328

转载 为什么 char 数组比 String 更适合存储密码?

另一个基于String的棘手 Java 问题,相信我只有很少的 Java 程序员可以正确回答这个问题。这是一个真正艰难的核心 Java 面试问题,并且需要对String的扎实知识才能回答这个问题。这是最近在Java 面试中向我的一位朋友询问的问题。他正在接受技术主管职位的面试,并且有超过6年的经验。如果你还没有遇到过这种情况,那么字符数组和字符串可以用来存储文本数据,但是选择一个而不是另一个很难。但正如我的朋友所说,任何与String相关的问题都必须对字符串的特殊属性有一些线索...

2020-08-06 09:52:45 1076 1

转载 因 Redis 分布式锁造成的 P0 级重大事故,整个项目组被扣了绩效。。。

前言基于Redis使用分布式锁在当今已经不是什么新鲜事了。本篇文章主要是基于我们实际项目中因为redis分布式锁造成的事故分析及解决方案。背景:我们项目中的抢购订单采用的是分布式锁来解决的。有一次,运营做了一个飞天茅台的抢购活动,库存100瓶,但是却超卖了!要知道,这个地球上飞天茅台的稀缺性啊!!!事故定为P0级重大事故...只能坦然接受。整个项目组被扣绩效了~~事故发生后,CTO指名点姓让我带头冲锋来处理,好吧,冲~事故现场经过一番了解后,得知这个抢购活动接口以前从来没有出现过这种情况,但

2020-08-06 09:51:17 342

转载 ZooKeeper 定位:能解决什么问题?不能解决什么问题?

ZooKeeper 很流行,有个基本的疑问: ZooKeeper 是用来做什么的? 之前没有ZK,为什么会诞生 ZK? OK,解答一下上面的疑问:(下面是凭直觉说的) ZooKeeper 是用于简化分布式应用开发的,对开发者屏蔽一些分布式应用开发过程中的底层细节 ZooKeeper 对外暴露简单的 API,用于支持分布式应用开发 ZooKeeper 在提供上述功能的同时,其还是一个 高性能、高可用、高可靠的分布式集群 上面说这么多,总结一下,ZK 能解决分布

2020-08-06 09:47:33 289

转载 为什么阿里巴巴规定禁止超过三张表 join?

最近,在知乎上看到一个有意思的问题,我个人觉得不错,挺有收获,在这里跟大家分享一下。题目:《阿里巴巴JAVA开发手册》里面写超过三张表禁止join 这是为什么?这样的话那sql要怎么写?一般,我对于这种问题,解决方案是查询官方文档,要么查看我的工具书《高性能的MySQL》,在本书的6.3节:重构查询的方式里面提到,需要考虑实际情况,看看是否有必要将一个复杂的查询分解成多个简单的查询,并不一定要把所有的工作全都移交给数据库(转换思路)!!!其实Join拆解的核心就是利用In关键字,这个也是

2020-08-06 09:41:16 430

转载 因用了Insert into select语句,美女同事被开除了!

前言Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。通过在Baidu的海洋里遨游,他发现了可以使用insert into select实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O完成,这样简直不要太棒了。然后他就被开除了。事故发生的经过。由于数据数据库中order_today数据量过大,当时好像有70

2020-08-05 09:35:47 238

空空如也

空空如也

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

TA关注的人

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