自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

勇往直前的专栏

写给以后的自己

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

转载 动图 + 源码,演示 Java 中常用数据结构执行过程及原理

最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程.主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList LinkedHashMap中的双向列表不再是回环的.HashMap中的单链表是尾插, 而不是头插入等等, 后文不再赘叙这些差异, 本文目录结构如下:LinkedList经典的双链表结构, 适用...

2019-11-30 16:16:43 220

转载 美团点评效果广告实验配置平台的设计与实现

广告系统中,一个好的实验平台可以令算法、工程、业务的迭代更多、更快、更好。本文详细介绍了美团点评效果广告引擎团队结合自身业务实际,在广告实验配置平台上的实践。目前该平台已经在搜索广告中全面上线,支持线上所有实验需求。一. 背景效果广告的主要特点之一是可量化,即广告系统的所有业务指标都是可以计算并通过数字进行展示的。因此,可以通过业务指标来表示广告系统的迭代效果。那如何在全量上线前确认迭...

2019-11-30 15:32:25 426

转载 Spring 中策略模式的 2 个经典应用,可以用来怼面试官了

一、背景程序员在项目实战中,策略模式用的非常多。二、学习目标 会在Spring项目中运用策略模式 三、代码例子废话不多说,Java的软件开发们注意啦,开车啦!下面是一个查询业务使用策略模式的案例查询业务A的具体实现:查询业务B的具体实现:查询业务C的具体实现:四、这是子查询业务的调用类分3部分 1.注入list的子查询业务对象 ...

2019-11-29 20:19:19 198

转载 分表分库中间件 sharding-jdbc

文章转载于:http://www.open-open.com/lib/view/open1455691160276.html 数据库分库分表从互联网时代开启至今,一直是热门话题。在NoSQL横行的今天,关系型数据库凭借其稳定、查询灵活、兼容等特性,仍被大多数公司作为首选数据库。因此,合理采用分库分表技术应对海量数据和高并发对数据库的冲击,是各大互联网公司不可避...

2019-11-29 17:33:22 246

转载 终于有人把 Nginx 说清楚了,图文详解!

想必大家一定听说过 Nginx,若没听说过它,那么一定听过它的"同行"Apache 吧!Nginx 的产生Nginx 同 Apache 一样都是一种 Web 服务器。基于 REST 架构风格,以统一资源描述符(Uniform Resources Identifier)URI 或者统一资源定位符(Uniform Resources Locator)URL 作为沟通依据,通过 HTTP 协议提...

2019-11-29 16:07:28 311

转载 MySQL 中主键的几种表设计组合的实际应用效果

了解主键、外键、索引主键主键的主要作用是保证表的完整、保证表数据行的唯一性质,① 业务主键(自然主键):在数据库表中把具有业务逻辑含义的字段作为主键,称为“自然主键(Natural Key)”。自然主键的含义就是原始数据中存在的不重复字段,直接使用成为主键字段。这种方式对业务的耦合太强,一般不会使用。② 逻辑主键(代理主键):在数据库表中采用一个与当前表中逻辑信息无关的字段作为...

2019-11-29 15:53:20 317

转载 Java中的享元设计模式,涨姿势了!

首先来看一段代码:publicclassShareTest{publicstaticvoidmain(String[] args){Integer a =127;Integer b =127;System.out.println(a==b);Integer c =128;Integer d =128;Sy...

2019-11-29 10:24:58 157

转载 为什么不推荐使用存储过程?

来源:杨洋的围脖啊 sf.gg/a/1190000011138993之所以有这个题目,我既不是故意吸引眼球,也不想在本文对存储过程进行教科书般论述。最近项目中遇到的存储过程问题,让我想起了去年在武汉出差时一位同事的发问:我觉得存储过程挺好用的,为什么你不建议用?当时我好似胸有万言,但终究没用一个实在的例子回答同事,只是从结论上大侃一通,代码相对于SQL,复用、扩展、通用性都要更强。...

2019-11-29 09:07:59 397

转载 蚂蚁金服二面:面试官问我零拷贝的实现原理,当场跪。。。

本文来源:占小狼的博客"狼哥,面试又跪了,碰到了知识盲区""哪个?""一面还可以,二面面试官问我零拷贝的原理,懵逼了...这块内容没去研究过""哦,这个知识点,我之前应该有讲过,你没注意到?""这东西工作中用不到,可能被我忽略了""啧啧啧...""哎,有空和我讲讲?""先从简单开始,实现下这个场景:从一个文件中读出数据并将数据传到另一台服务器上?""为啥写这...

2019-11-29 09:06:50 1102

转载 Netty 在 Dubbo 中是如何应用的?

众所周知,国内知名框架 Dubbo 底层使用的是Netty作为网络通信,那么内部到底是如何使用的呢?今天我们就来一探究竟。1. dubbo 的 Consumer 消费者如何使用 Netty注意:此次代码使用了从 github 上 clone 的 dubbo 源码中的 dubbo-demo 例子。代码如下:System.setProperty("java.net.prefe...

2019-11-28 14:10:18 266

转载 如何快速安全的插入千万条数据?

最近有个需求解析一个订单文件,并且说明文件可达到千万条数据,每条数据大概在20个字段左右,每个字段使用逗号分隔,需要尽量在半小时内入库。思路1.估算文件大小因为告诉文件有千万条,同时每条记录大概在20个字段左右,所以可以大致估算一下整个订单文件的大小,方法也很简单使用FileWriter往文件中插入一千万条数据,查看文件大小,经测试大概在1.5G左右;2.如何批量插入由上可...

2019-11-27 20:51:55 405

转载 扛住 100 亿次请求?我们来试一试

1. 前言前几天,偶然看到了 《扛住100亿次请求——如何做一个“有把握”的春晚红包系统”》(url)一文,看完以后,感慨良多,收益很多。正所谓他山之石,可以攻玉,虽然此文发表于2015年,我看到时已经是2016年末,但是其中的思想仍然是可以为很多后端设计借鉴,。同时作为一个工程师,看完以后又会思考,学习了这样的文章以后,是否能给自己的工作带来一些实际的经验呢?所谓纸上得来终觉浅,绝知此事要躬...

2019-11-27 20:47:52 172

转载 一文让你轻松了解 JAVA 开发中的四种加密方法

一、工具类 md5加密工具类 base64加密工具类 Bcrypt工具类 二、加密测试 MD5加密测试 base64加密测试 SHA加密测试 BCrypt加密测试 一、工具类1. md5加密工具类package加密Tester.util;importjava.security.MessageDigest;pu...

2019-11-27 19:39:32 174

转载 Mybatis 的工作原理,写得太好了!

来源:cnblogs.com/scuury/p/10371246.html近来想写一个mybatis的分页插件,但是在写插件之前肯定要了解一下mybatis具体的工作原理吧,于是边参考别人的博客,边看源码就开干了。核心部件: SqlSession Executor StatementHandler ParameterHandler Resu...

2019-11-27 19:38:06 125

转载 解密 Redis 助力双 11 背后电商秒杀系统

背景秒杀活动是绝大部分电商选择的低价促销、推广品牌的方式。不仅可以给平台带来用户量,还可以提高平台知名度。一个好的秒杀系统,可以提高平台系统的稳定性和公平性,获得更好的用户体验,提升平台的口碑,从而提升秒杀活动的最大价值。本文讨论云数据库 Redis 版缓存设计高并发的秒杀系统。秒杀的特征秒杀活动对稀缺或者特价的商品进行定时定量售卖,吸引成大量的消费者进行抢购,但又只有少部分消费者...

2019-11-27 18:39:53 193

转载 为什么阿里巴巴要禁用 Executors 创建线程池?

看阿里巴巴开发手册并发编程这块有一条:线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,通过源码分析禁用的原因写在前面首先感谢大家在盖楼的间隙阅读本篇文章,通过阅读本篇文章你将了解到: 线程池的定义 Executors创建线程池的几种方式 ThreadPoolExecutor对象 线程池执行任务逻辑和线程...

2019-11-27 18:21:08 149

转载 从考研说起:大学、职场、个人选择

长文慎入,本文适合人群: 在校本科生、硕/博研究生 职场新人 互联网从业人员 上周考研复试季,承蒙大家信任,收到几位考研同学的咨询。A同学本科长沙理工,已经通过上海大学通信工程系复试,大数据人工智能方向。他想跟我聊聊以后学习大方向的问题,通话的时候,他正在从上海回长沙的高铁上,语气中可以感觉到对方抑制不住的兴奋。B同学本科安徽工业大学,电子系跨考北邮计算...

2019-11-26 10:01:13 5063 1

原创 windows 修改hosts 立即生效的方法

windows 的hosts 文件所在位置c:/windows/system32/drivers/etc/hosts显示所有 dns内容左下角 搜索框 搜索 输入cmd弹出命令框输入ipconfig /displaydns 刷新所有 dns内容ipconfig /flushdns...

2019-11-26 09:35:04 9922 1

转载 Redis 是怎么实现 “附近的人” 的?

针对“附近的人”这一位置服务领域的应用场景,常见的可使用PG、MySQL和MongoDB等多种DB的空间索引进行实现。而Redis另辟蹊径,结合其有序队列zset以及geohash编码,实现了空间搜索功能,且拥有极高的运行效率。本文将从源码角度对其算法原理进行解析,并推算查询时间复杂度。要提供完整的“附近的人”服务,最基本的是要实现“增”、“删”、“查”的功能。以下将分别进行介绍,其...

2019-11-25 16:22:37 276

转载 为什么中国程序员水平一直上不了层次?无非是这些原因!

纵览,国内比较大的软件公司(以下统一简称"国软"),清一色都是做政府项目的(他们能做大的原因我就不用说了吧),真正能做大的国软又有几家呢?这是为什么呢?今天在这里就给大家简单分析下:一."作坊"式管理"作坊"往往是效率最高的,国软几乎都是从作坊走过来的, 但把作坊式的管理模式套用到一个不断壮大的公司中显然是不行的. 组织架构到达一定程度后就必然要进行分工的细化,依靠作坊式的"暴力开...

2019-11-25 16:12:42 233 1

转载 谈谈中间件开发,给想从事中间件开发的同学

基友「莫那鲁道」(本文作者),目前正在开发使用 Java 语言,开发基于 Raft 算法的 KV 分布式存储。地址是:https://github.com/stateIs0/lu-raft-kv最重要的是,他就是想凑点 STAR ,哈哈哈哈哈哈哈。前言本文主要是写给那些想从事中间件开发的同学看的 :)如果你没有这个打算,那么本文的学习路线非但不实用,还可能会影响你正常的工作...

2019-11-25 16:10:52 733 2

转载 现身说法:37岁老码农找工作

分享一篇文章,作者真是掏心窝了:前几天突然接到dk的电话,要和我聊聊天。他说他们部门调整,虽然最后他留了下来,但还是非常焦虑。人无远虑必有近忧,他这次被刺激到了,想提高一下自己,以免下次再有类似的心惊肉跳。但怎么提高呢?程序员第一考虑的当然是技术,但现在真不知道学什么了:干了三四年的开发,手头的工作马马虎虎都没什么问题了。就算有问题,也是业务逻辑上的问题,系统太复杂,吃不透;或者系统里...

2019-11-25 16:09:48 208

转载 厉害了,ES 如何做到几十亿数据检索 3 秒返回!

一、前言数据平台已迭代三个版本,从头开始遇到很多常见的难题,终于有片段时间整理一些已完善的文档,在此分享以供所需朋友的实现参考,少走些弯路,在此篇幅中偏重于ES的优化,关于HBase,Hadoop的设计优化估计有很多文章可以参考,不再赘述。二、需求说明项目背景:在一业务系统中,部分表每天的数据量过亿,已按天分表,但业务上受限于按天查询,并且DB中只能保留3个月的数据(硬件高配)...

2019-11-25 16:08:05 331

转载 终于有篇看的懂的 B 树文章了!

本文来源:Hollis“索引,相信大多数人已经相当熟悉了,很多人都知道 MySQL 的索引主要以 B+ 树为主,但是要问到为什么用 B+ 树,恐怕很少有人能把前因后果讲述完整。本文就来从头到尾介绍下数据库的索引。索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。索引最形象的比喻就是图书的目录了。注意这里的大量,数据量大了索引才显得有意义,如果我想要在[1,2,...

2019-11-23 10:25:37 195

转载 Spring Batch 入门教程

我将向您展示如何使用Spring Boot创建一个的Spring Batch的Hello World示例。(循序渐进)因此,如果您是Spring Batch的初学者,您一定会喜欢本指南。准备好了吗?如果您想了解更多关于Spring Batch的信息,请访问Spring Batch教程页面。1.Spring Batch框架工作原理在深入研究代码之前,让我们先看看Sprin...

2019-11-23 10:14:19 361

转载 图解 MySQL 索引:B-树、B+树

看了很多关于索引的博客,讲的大同小异。但是始终没有让我明白关于索引的一些概念,如B-Tree索引,Hash索引,唯一索引....或许有很多人和我一样,没搞清楚概念就开始研究B-Tree,B+Tree等结构,导致在面试的时候答非所问!本文中有关存储引擎请查看MySQL存储引擎-InnoDB和MyISAM索引是什么?索引是帮助MySQL高效获取数据的数据结构。索引能干什么?提高数据...

2019-11-23 10:06:32 170

转载 如何设计真正高性能高并发分布式系统(万字长文)

“世间可称之为天经地义的事情没几样,复杂的互联网架构也是如此,万丈高楼平地起,架构都是演变而来,那么演变的本质是什么?”—1—引子 软件复杂性来源于几个方面:高并发、高性能、高可用、可扩展、低成本、低规模、可维护、安全等。架构演化、发展都是为了试图降低复杂性: 高并发、高性能:互联网系统特点,用户量大,请求量大,高并发高性能成为必备要求。性能差体验会差,用户会有别的选...

2019-11-23 10:00:22 2209

转载 介绍 9 款 MySQL 常见的图形化工具,第三款我用了 10 年

趋势MySQL的管理维护工具非常多,除了系统自带的命令行管理工具之外,还有许多其他的图形化管理工具,这里我介绍几个经常使用的MySQL图形化管理工具,供大家参考。MySQL是一个非常流行的小型关系型数据库管理系统,2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中小型 网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站...

2019-11-23 09:08:28 272

转载 史上最易懂的 Kubernetes 儿童插图指南

献给所有试图向孩子们解释软件工程的家长。很久很久以前,有一个叫 Phippy 的应用程序。她是一个简单的应用程序,由 PHP 编写且只有一个页面。她住在一个需要和其他可怕的应用程序分享环境的主机中,她不认识这些应用程序并且不愿意和他们来往。她希望她能拥有一个属于自己的环境:只有她自己和她可以称之为家的 Web 服务器。每个应用程序都有个运行所依赖的环境。对于 PHP 应用程...

2019-11-23 09:01:09 213

转载 这一次彻底搞懂 Git Rebase

使用 Git 已经好几年了,却始终只是熟悉一些常用的操作。对于 Git Rebase 却很少用到,直到这一次,不得不用。一、起因上线构建的过程中扫了一眼代码变更,突然发现,commit提交竟然多达62次。我们来看看都提交了什么东西:这里我们先不说git提交规范,就单纯这么多次无用的commit就很让人不舒服。可能很多人觉得无所谓,无非是多了一些提交纪录。然而...

2019-11-22 20:15:50 196

转载 很遗憾,没有一篇文章能讲清楚ZooKeeper

作为分布式系统解决方案的 ZooKeeper,被广泛应用于多个分布式场景。例如:数据发布/订阅,负载均衡,命名服务,集群管理等等。因此,ZooKeeper 在分布式系统中扮演着重要的角色,今天通过一个简单的例子来看看它的实现原理。从一个简单的例子开始在分布式系统中经常会遇到这种情况,多个应用读取同一个配置。例如:A,B 两个应用都会读取配置 C 中的内容,一旦 C 中的内容出现变化,会...

2019-11-22 20:12:54 343

转载 忘掉 Java 并发,先听完这个故事。。。

最近在给别人讲解 Java 并发编程面试考点时,为了解释锁对象这个概念,想了一个形象的故事。后来慢慢发现这个故事似乎能讲解 Java 并发编程中好多核心概念,于是完善起来形成了这篇文章。大家先忘记并发编程,只听我给你讲个故事:故事可能比较奇怪,有这么一个学校,里面有好多好多人,我们简单分成学生、老师、以及宿管阿姨。学校中间还有一个很奇葩的水果超市,里面有个仓库放着苹果、西瓜、橘子。...

2019-11-22 18:18:48 160

转载 面试官问:平常你是怎么对 Java 服务进行调优的?

Java 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢、接口超时,服务器负载高、并发数低,数据库频繁死锁等。尤其是在“糙快猛”的互联网开发模式大行其道的今天,随着系统访问量的日益增加和代码的臃肿,各种性能问题开始纷至沓来。Java 应用性能的瓶颈点非常多,比如磁盘、内存、网络 I/O 等系统因素,Java 应用代码,JVM GC,数据库,缓存等。笔者根据个人经验,将 Java 性能...

2019-11-22 10:36:12 204

转载 高并发下的接口幂等性解决方案!

一、背景我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。例如: 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱; 发送消息,也应该只发一次,同样的短信发给用户,用户会哭的; 创建业务订单,一次业务请求只能创建...

2019-11-21 10:49:01 378

转载 徒手撸一个简单的 IOC

Spring框架中最经典的两个就是IOC和AOP,其中IOC(Inversion of Control)是什么呢?控制反转,简单来说就是将控制实体Bean的动作交给了Spring容器进行管理。再简单点来说就是例如之前想用一个类,必须new一个,但是使用了Spring那么直接用@Autowired注解或者用xml配置的方式就能直接获得此对象,而且你也不用管它的生命周期啊等等之类的。就不用自己new一...

2019-11-20 22:06:43 162

转载 流量复制与回放与压测平台化

背景软件测试是软件质量保障工作中重要的一个环节,如何通过测试的手段确保京东APP购物流程的平稳运行以及绝佳的购物体验,是我们测试团队永恒的话题。作为一名测试工程师,相信您一定曾经遇到过类似这样的场景:已经按照评审过的测试用例完成所有的测试,并且也包含了异常逻辑的测试覆盖,但是版本发布,或者服务上线后可能还是出现了各种问题,导致不得不回退版本或者紧急上线修复。一旦发生这种事情不仅会对业务正常...

2019-11-19 19:34:59 1704

转载 线上服务 CPU 又 100% 啦?一键定位 so easy!

背景经常做后端服务开发的同学,或多或少都遇到过 CPU 负载特别高的问题。尤其是在周末或大半夜,突然群里有人反馈线上机器负载特别高,不熟悉定位流程和思路的同学可能登上服务器一通手忙脚乱,定位过程百转千回。img对此,也有不少同学曾经整理过相关流程或方法论,类似把大象放进冰箱要几步,传统的方案一般是4步:1.topoderbywithP:1040//首先按进程负载...

2019-11-14 09:26:28 323

转载 教你 7 招,迅速提高服务器并发能力!

什么是服务器并发处理能力?一台服务器在单位时间里能处理的请求越多,服务器的能力越高,也就是服务器并发处理能力越强。服务器的本质工作就是,争取以最快的速度将内核缓冲区中的用户请求数据一个不剩地都拿出来,然后尽快处理,再将响应数据放到一块又能够与发送数据的缓冲区中,接着处理下一拨请求。有什么方法衡量服务器并发处理能力?一、吞吐率量化指标:吞吐率,单位时间里服务器处理的最大请求数,单...

2019-11-13 10:19:18 320

转载 记一次找因 Redis 使用不当导致应用卡死 bug 的过程

首先说下问题现象:内网sandbox环境API持续1周出现应用卡死,所有api无响应现象刚开始当测试抱怨环境响应慢的时候 ,我们重启一下应用,应用恢复正常,于是没做处理。但是后来问题出现频率越来越频繁,越来越多的同事开始抱怨,于是感觉代码可能有问题,开始排查。首先发现开发的本地ide没有发现问题,应用卡死时候数据库,redis都正常,并且无特殊错误日志。开始怀疑是sandbox环境机器问题...

2019-11-13 10:16:28 279

转载 Mybatis 的工作原理,你了解过吗?

第一步:创建一个sqlSessionFactory 第二步:创建sqlSession 第三步:执行具体的sql请求 总结 参考 近来想写一个mybatis的分页插件,但是在写插件之前肯定要了解一下mybatis具体的工作原理吧,于是边参考别人的博客,边看源码就开干了。核心部件: SqlSession Executor ...

2019-11-13 09:56:22 148

空空如也

空空如也

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

TA关注的人

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