自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

勇往直前的专栏

写给以后的自己

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

转载 解密初、中、高级程序员的进化之路

程序员的标准与要求初级程序员仅能完成简单模块和项目的开发工作,难以胜任复杂模块的开发。通常是入行不久, 1 年及以下工作经验的同学。能力要求 熟悉前端基础知识如 HTML、JS、CSS 。 能够使用一门 MVVM 框架进行简单的业务开发。 遇到复杂的组件和模块,会找现有的轮子使用。 会使用百度、google 等检索工具搜索问题。 中级程序员(阿里...

2019-10-31 09:02:11 181

转载 Spring Boot 项目的 API 接口防刷

说明:使用了注解的方式进行对接口防刷的功能,非常高大上,本文章仅供参考 一,技术要点:springboot的基本知识,redis基本操作,首先是写一个注解类:importjava.lang.annotation.Retention;importjava.lang.annotation.Target;importstaticjava.lang.annotation.Ele...

2019-10-31 09:00:45 472

转载 厉害了,12306 是如何顶住一秒百万流量的?

作者:绘你一世倾https://juejin.im/post/5d84e21f6fb9a06ac824814每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票12306 抢票,极限并发带来的思考虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用 12306,还会考虑“智行”和其他的抢票软件...

2019-10-30 21:00:30 837 2

转载 饿了么监控平台的架构设计与演进历程

作者 | 田晓旭嘉宾 | 黄杰运维行业流传着一句话:“无监控,不运维”,监控的重要程度可见一斑。随着互联网行业的不断发展,各种监控工具多得不可胜数,如何利用这些工具构建一个完整好用的监控平台呢?在近期召开的 QCon 上海 2019 大会现场,InfoQ 记者采访了饿了么框架工具部、监控平台负责人黄杰,他和我们分享了随着业务和系统越来越复杂,饿了么的监控平台是如何不断演进的。饿...

2019-10-29 17:17:52 2282

转载 初创公司技术困境:弹性部署与详尽测试

作者 | Xavier Grand译者 | 足下策划 | 赵钰莹作为一家初创公司,构建软件要坚持创新,要有吸引力和竞争力。因为,市场在不断变化,新的需求也在不断出现。从软件角度来说,要保持这样的优势就意味着必须尽可能缩短文档和开发阶段所占的时间。当然,保持软件的弹性也很重要,提供优秀的服务是 Algolia 的重要目标之一。我们有许多高端用户,搜索功能对业务有非常重要的影响...

2019-10-29 17:15:09 447

转载 如何模拟超过 5 万用户的并发访问?

来源:http://t.cn/ES7KBkW本文将从负载测试的角度,描述了做一次流畅的5万用户并发测试需要做的事情.你可以在本文的结尾部分看到讨论的记录.快速的步骤概要 编写你的脚本 使用JMeter进行本地测试 BlazeMeter沙箱测试 使用一个控制台和一个引擎设置Users-per-Engine的数量 设置并测试你的集合 (1个...

2019-10-29 16:24:52 908

转载 在中国,程序员是青春饭吗?

作者:阿莱克西斯来源:https://www.zhihu.com/question/321199799/answer/779270361已获得转载授权很遗憾, 就我在中国和美国的工作经历和观察来看, 程序员无论在哪里都是“青春饭”(注意引号, 友军先别开枪!).但是,在你站在40岁50岁时候的自己这个角度来思考问题,从而害怕程序员是青春饭,自己被年轻人"干掉"的同时,你...

2019-10-28 09:52:50 509

转载 50 个 Java 性能优化细节,你要不要看?

在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:第一,控制资源的使用,通过线程同步来控制资源的并发访问;第二,控制实例的产生,以达到节约资源的目...

2019-10-26 10:41:32 310

转载 性能优化指南(5000 字小结)

作为一个程序员,性能优化是常有的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应用还是分布式系统。本文从以下几个方面来思考这个问题:性能优化的一般性原则,性能优化的层次,性能优化的通用方法。本文不限于任何语言、框架,不过可能会用Python语言来举例。不过囿于个人经验,可能更多的是从Linux服务端的角度来思考这些问题。一般性原则依据数据而不是凭空猜测这是性...

2019-10-26 10:11:12 236

转载 掌握这些 Redis 技巧,百亿数据量不在话下!

一、Redis封装架构讲解实际上NewLife.Redis是一个完整的Redis协议功能的实现,但是Redis的核心功能并没有在这里面,而是在NewLife.Core里面。这里可以打开看一下,NewLife.Core里面有一个NewLife.Caching的命名空间,里面有一个Redis类,里面实现了Redis的基本功能;另一个类是RedisClient是Redis的客户端。Redis...

2019-10-25 14:57:45 357

转载 为什么 Java 线程没有 Running 状态?

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

2019-10-25 14:52:42 277

转载 厉害了,淘宝千万并发,14 次架构演进…

本文以设计淘宝网的后台架构为例,介绍从一百个并发到千万级并发情况下服务端的架构的14次演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知。文章最后汇总了一些架构设计的原则。基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍。1)什么是分布式?系统中的多个模块在不同服务器上部署,即可称为分布式...

2019-10-25 14:50:29 470 1

转载 首次公开:京东数科强一致、高性能分布式事务中间件 JDTX

来源:https://www.infoq.cn/article/BAXzcfjRTcgmKisa7JHm在分布式数据库、云原生数据库、NewSQL 等名词在数据库领域层出不穷的当今,变革——在这个相对稳定的领域已愈加不可避免。相比于完全革新,渐进式增强的方案在拥有厚重沉淀的行业则更受青睐。同所有分布式领域的解决方案相同,分而治之的透明化数据分片方案,是新一代数据库解决海量数据的核心理念。...

2019-10-25 14:37:44 662

转载 有了这 15 款编程游戏,谁都可以学编程!

1. Coding Games一边玩游戏,一边挑战编程难题。Coding games支持包括PHP、C、JavaScript在内的20多种编程语言。用户界面功能强大,可以定制。例如,你可以选择你的代码编辑器的风格:Emacs、Vim、Classic。如果你想提升编程技能,玩Coding games是一种有趣的途径。网址:www.codingame.com2. CodeCom...

2019-10-25 14:24:49 499

转载 什么是 Java 对象深拷贝?面试必问!

作者丨吴大山wudashan.com/2018/10/14/Java-Deep-Copy介绍在Java语言里,当我们需要拷贝一个对象时,有两种类型的拷贝:浅拷贝与深拷贝。浅拷贝只是拷贝了源对象的地址,所以源对象的值发生变化时,拷贝对象的值也会发生变化。而深拷贝则是拷贝了源对象的所有值,所以即使源对象的值发生变化时,拷贝对象的值也不会改变。如下图描述:了解了浅拷贝和深拷贝的区...

2019-10-25 14:23:18 97

转载 Spring Boot 静态资源处理,妙!

作者:liuxiaopenghttps://www.cnblogs.com/paddix/p/8301331.html做web开发的时候,我们往往会有很多静态资源,如html、图片、css等。那如何向前端返回静态资源呢?以前做过web开发的同学应该知道,我们以前创建的web工程下面会有一个webapp的目录,我们只要把静态资源放在该目录下就可以直接访问。但是,基于Spring ...

2019-10-25 14:18:27 125

转载 原子变量、锁、内存屏障,写得非常好!

突然想聊聊这个话题,是因为知乎上的一个问题多次出现在了我的Timeline里:请问,多个线程可以读一个变量,只有一个线程可以对这个变量进行写,到底要不要加锁?可惜的是很多高票答案语焉不详,甚至有所错漏。所以我想在这篇文章里斗胆聊聊这个水挺深的问题。受限于个人水平,文章若有错漏,还望读者不吝赐教。首先约定,由于CPU的架构和设计浩如烟海,本文站在工程师的角度,只谈IA32/AMD64(x86-6...

2019-10-25 14:14:27 1770 2

转载 一个 Java 对象到底有多大?

编写Java代码的时候,大多数情况下,我们很少关注一个Java对象究竟有多大(占据多少内存),更多的是关注业务与逻辑。但是殊不知,在我们不经意间,大量的内存被无形地浪费了。一个Java对象到底有多大?想要精确计算一个Java对象占用的内存,首先要了解Java对象的结构表示。Java对象结构一个Java对象在Heap的表示,可以分为三部分: Object Header ...

2019-10-24 13:38:32 128 1

转载 拼多多面试真题:如何用 Redis 统计独立用户访问量!

众所周至,拼多多的待遇也是高的可怕,在挖人方面也是不遗余力,对于一些工作3年的开发,稍微优秀一点的,都给到30K的Offer,当然,拼多多加班也是出名的,一周上6天班是常态,每天工作时间基本都是超过12个小时,也是相当辛苦的。废话不多说,今天我们来聊一聊拼多多的一道后台面试真题,是一道简单的架构类的题目:拼多多有数亿的用户,那么对于某个网页,怎么使用Redis来统计一个网站的用户访问数呢?...

2019-10-23 17:20:35 260 1

转载 记一次内存泄漏问题的排查经历

源宝导读:随着系统越来越庞大,越来越复杂,疑难杂症问题也越来越多。本文将介绍明源研发协同平台团队针对一次内存泄露问题的排查过程和技术探索。一、背景 内存泄漏,一个说大不大说下不小的瑕疵。作为开发者,我们都很清楚内存泄漏是我们代码问题导致的。但是话说回来,泄漏后果会很严重嘛?这不好说,如果对服务器内存的影响只有几个百分点,又或者对应用没有什么致命影响,那么修补内存泄漏就像鸡肋一样,...

2019-10-23 17:17:00 759 1

转载 RabbitMQ和Kafka到底怎么选?

作者:haolujun来源:cnblogs.com/haolujun/p/9632835.html前言开源社区有好多优秀的队列中间件,比如RabbitMQ和Kafka,每个队列都貌似有其特性,在进行工程选择时,往往眼花缭乱,不知所措。对于RabbitMQ和Kafka,到底应该选哪个?RabbitMQ架构RabbitMQ是一个分布式系统,这里面有几个抽象概念。 brok...

2019-10-23 17:14:16 172

转载 Flink or Spark?实时计算框架在K12场景的应用实践

如今,越来越多的业务场景要求 OLTP 系统能及时得到业务数据计算、分析后的结果,这就需要实时的流式计算如Flink等来保障。例如,在 TB 级别数据量的数据库中,通过 SQL 语句或相关 API直接对原始数据进行大规模关联、聚合操作,是无法做到在极短的时间内通过接口反馈到前端进行展示的。若想实现大规模数据的“即席查询”,就须用实时计算框架构建实时数仓来实现。本文通过一个教育行业的应用案例,剖...

2019-10-23 17:10:20 677

转载 这款多线程中间件,吊打 Redis!

今天给大家介绍的是KeyDB,KeyDB项目是从redis fork出来的分支。众所周知redis是一个单线程的kv内存存储系统,而KeyDB在100%兼容redis API的情况下将redis改造成多线程。上次也跟大家说了,redis多线程正式版将在今年底发布,大家拭目以待。线程模型KeyDB将redis原来的主线程拆分成了主线程和worker线程。每个worker线程都是io线...

2019-10-23 13:34:44 487

转载 为什么我们需要volatile关键字?

volatile字段以确保多个线程始终看到最新值,即使缓存系统或编译器优化正在起作用。从volatile变量读取始终返回此变量的最新写入值。java.uti.concurrent包中的大多数类的方法也具有此属性。通常在内部使用volatile字段。关于volatile关键字让我着迷的是它是必须的,因为我的软件仍然在硅芯片上运行。即使我的应用程序在Java虚拟机中的虚拟机上运行在云中。但是,尽管...

2019-10-23 13:29:26 455

转载 从零开始 Code Review,两年实战经验分享!

前几天看了《Code Review 程序员的寄望与哀伤》,想到我们团队开展Code Review也有2年了,结果还算比较满意,有些经验应该可以和大家一起分享、探讨。我们为什么要推行Code Review呢?我们当时面临着代码混乱、Bug频出的状况。当时我觉得要有所改变,希望能提高产品的代码质量,改善开发团队面临的困境。并且我个人在开发上有很多经验,也希望这些知识能够在团队内传播。各种考虑后,...

2019-10-23 13:25:45 246

转载 几款流行监控系统简介

由于业务的多样性,平台和系统也变得异常的复杂。如何对其进行监控和维护是我们 IT 人需要面对的重要问题。就在这样一个纷繁复杂的环境下,监控系统粉墨登场了。今天,我们会对 IT 监控系统进行介绍,包括其功能,分类,分层;同时也会介绍几款流行的监控平台。监控系统的功能在 IT 运维过程中,常遇到这样的情况: 某个业务模块出现问题,运维人员并不知道,发现的时候问题已经很严重了。 ...

2019-10-23 11:34:01 527

转载 Kafka 基本原理(8000 字小结)

简介Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。Kafka架构它的架构包括以下组件: 话题(Topic):是特定类型的消息流。消息是字节的有效负载(Payload),话题是消息的分类名或种子(Feed)名。 生产...

2019-10-23 11:16:27 141

转载 Java 如何设计 API 接口,实现统一格式返回?

前言在移动互联网,分布式、微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前后端分离方式,(题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟;以前后端人员瞧不起前端人员,那现在后端人员要重新认识一下前端,前端已经很成体系了)。一般系统的大致整体架构图如下:需要说明的是,有些小伙伴会回复说,这个架构太简单了吧,太low了,什么网关啊...

2019-10-18 20:33:24 1243 3

转载 分享一个牛逼的阿里天猫面经,已经拿到 Offer ,来自朋友的朋友

个人背景本人毕业于杭州的一所二本学校,实习进入了传统企业,毕业的时候发现互联网不但薪资高,技术也新,自己在这个老旧的地方待着可能没啥前途,所以毕业两个月的时候就出去找工作了。但是从传统企业到互联网,因为没有互联网经验简历直接被刷,只能去面传统企业,但是一些用spring的传统企业也看不上我,因为我根本不知道啥是spring,后来顺利进入了一家类似的但是大型的传统企业,好在公司搞事情,建立了...

2019-10-18 20:20:04 907 1

转载 Dubbo 序列化协议 5 连问,你接得住不?

1)dubbo 支持哪些通信协议?2)支持哪些序列化协议?3)说一下 Hessian 的数据结构?4)PB 知道吗?5)为什么 PB 的效率是最高的?面试官心理分析上一个问题,说说 dubbo 的基本工作原理,那是你必须知道的,至少要知道 dubbo 分成哪些层,然后平时怎么发起 rpc 请求的,注册、发现、调用,这些是基本的。接着就可以针对底层进行深入的问问了,比如第...

2019-10-08 13:46:54 184

转载 StringBuilder 为什么线程不安全?

引言周五去面试又被面试的一个问题问哑巴了面试官:StringBuilder和StringBuffer的区别在哪?我:StringBuilder不是线程安全的,StringBuffer是线程安全的面试官:那StringBuilder不安全的点在哪儿?我:。。。(哑巴了)在这之前我只记住了StringBuilder不是线程安全的,StringBuffer是线程安全的这个结论,至于...

2019-10-08 10:54:58 267

转载 公司前端和后端因为接口扯起了皮,还列了 5 宗罪

今天一位前端开发人员扯起了后端接口的皮,那个兄弟对后端人员提供的接口很大的意见(我是司空见惯),不过他说的也确实有道理,所以结合我的见解,希望提供接口的人员能多加注意。罪状一:没有文档例如新的前端人员到了一个新的公司,使用接口时,问这个这个不知道,问那个那个不知道,要文档没文档,这绝对是前端人员最抓狂的事,心里肯定是一千只草泥马奔腾而过。1.为什么要文档? 文档是当前开发者甚至后...

2019-10-05 11:38:45 189

转载 漫漫优化路,总会错几步!记一次接口优化!

最近做了一个搜索接口的优化,反复压测了四次,终于达到要求了,记录一下,晚上加个鸡腿????业务逻辑从OpenSearch中检索出数据,然后各种填充组装数据,最后返回逻辑看似很简单,当初我也是这样认为的,于是预估5天完成,最后前前后后开发、联调、改bug直到上线差不多花了10天(当然这10天并不是只做这一件事情)复杂在于影响返回结构的因素很多,排除问题需要检查配置、检查数据库、检查缓存...

2019-10-05 11:37:51 123 1

转载 Java 中如何模拟真正的同时并发请求?

有时需要测试一下某个功能的并发性能,又不要想借助于其他工具,索性就自己的开发语言,来一个并发请求就最方便了。java中模拟并发请求,自然是很方便的,只要多开几个线程,发起请求就好了。但是,这种请求,一般会存在启动的先后顺序了,算不得真正的同时并发!怎么样才能做到真正的同时并发呢?是本文想说的点,java中提供了闭锁 CountDownLatch, 刚好就用来做这种事就最合适了。只需要:...

2019-10-02 20:24:02 159 1

转载 日均 5 亿查询量的京东订单中心,为什么舍 MySQL 用 ES ?

京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大,造成了订单数据读多写少的情况。我们把订单数据存储在MySQL中,但显然只通过DB来支撑大量的查询是不可取的。同时对于一些复杂的查询,MySQL支持得不够友好,所以订单中心系统使用了Elasticsearch来承载订单查询的主要压力。Elasticsearch作为一款功能强大的分布式...

2019-10-02 20:19:59 185

转载 如何优雅的导出 Excel

前言公司项目最近有一个需要:报表导出。整个系统下来,起码超过一百张报表需要导出。这个时候如何优雅的实现报表导出,释放生产力就显得很重要了。下面主要给大家分享一下该工具类的使用方法与实现思路。实现的功能点对于每个报表都相同的操作,我们很自然的会抽离出来,这个很简单。而最重要的是:如何把那些每个报表不相同的操作进行良好的封装,尽可能的提高复用性;针对以上的原则,主要实现了一下关键功能点:...

2019-10-01 23:02:01 108

转载 Spring Boot Redis 入门

本文,我们基于 Spring Boot 2.X 版本。1. 概述在快速入门 Spring Boot 整合 Redis 之前,我们先来做个简单的了解。在 Spring 的生态中,我们使用Spring Data Redis来实现对 Redis 的数据访问。可能这个时候,会有胖友会有疑惑,市面上已经有 Jedis、Redisson、Lettuce 等优秀的 Java Redis 工具...

2019-10-01 15:36:29 392

空空如也

空空如也

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

TA关注的人

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