自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

勇往直前的专栏

写给以后的自己

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

转载 再深一点:面试工作两不误,源码级理解Spring事务

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。Spring有5种隔离级别,7种传播行为。这是面试常问的内容,也是代码中经常碰到的知识点。这些知识枯燥而且乏味,其中有些非常的绕。如果栽在这上面,就实在是太可惜了。xjjdog在一些事务的基础上,再探讨几个容易淡忘的概念,从源码层面找原因,加深我们的理解,问题大概包括:Spring的事务和数据库的...

2020-04-30 13:52:19 798

转载 月均活跃用户达1.3亿,B站高可用架构实践

流量洪峰下要做好高服务质量的架构是一件具备挑战的事情,本文详细阐述了从 Google SRE 的系统方法论以及实际业务的应对过程中出发,一些体系化的可用性设计。对我们了解系统的全貌、上下游的联防有更进一步的帮助。本文来自公众号云加社区(ID:QcloudCommunity)负载均衡负载均衡具体分成两个方向,一个是前端负载均衡,另一个是数据中心内部的负载均衡。前端负载均衡...

2020-04-30 13:47:35 507

转载 微服务网关 Kong 科普

Kong 是由 Mashape 开发的并于2015年开源的一款API 网关,它是基于OpenResty(Nginx + Lua模块)和 Apache Cassandra/PostgreSQL 构建的,能提供易于使用的RESTful API来操作和配置API管理系统。Kong 可以水平扩展多个 Kong Server,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求。...

2020-04-30 13:42:25 1615

转载 如何优雅的处理业务逻辑中的定时和延时问题?

本文将从如何处理业务流程和信息分发中的定时和延时问题出发,横向比较了业界常见的几种方案,如直接多线程编码、Spring定时调度框、大型分布式调度框架、消息中间件定时消息,因为消息中间件接口友好,调用方便,性能稳定,特别推荐了使用消息中间件来处理此类问题。同时对比了ActiveMQ、RabbitMQ和RocketMQ三种消息中间件在此类场景中的优劣势。为了帮助大家理解消息中间件的使用,特别列举了三种...

2020-04-30 13:36:33 870

转载 简单好用!利用Spring AOP技术10分钟实现一个数据库读写分离方案

前言最近我们的APP在线用户越来越多,接口的响应速度也是越来越慢,经过运维排查发现是由于并发查询太多导致的数据库压力比较大,架构师经过调研给出了数据库读写分离的解决方案,为了快速解决问题,我们最终采用AOP技术实现了数据库读写分离方案。目录什么是数据库读写分离以及为什么要读写分离? 数据库读写分离实现方式及优缺点分析 用AOP实现的数据库读写分离方案 总结什么是数据库读写分离以...

2020-04-30 13:34:29 919 1

转载 4 次版本迭代,我们将项目性能提升了 360 倍!

一直不知道性能优化都要做些什么,从哪方面思考,直到最近接手了一个公司的小项目,可谓麻雀虽小五脏俱全。让我这个编程小白学到了很多性能优化的知识,或者说一些思考方式。真的感受到任何一点效率的损失放大一定倍数时,将会是天文数字。最初我的程序计算下来需要跑2个月才能跑完,经过2周不断地调整架构和细节,将性能提升到了4小时完成。整体性能提升了360倍很多心得体会,希望和大家分享,也希望多多批评指正,...

2020-04-30 13:32:48 633

转载 我为什么选择在北上广深打拼?

一场疫情,打乱了所有人的计划。大疫之下,一场“逃离深圳”的风暴,突然席卷社交平台。一批又一批的深漂,正在转租,清退出租屋离开深圳。此外,逃离的,还有不少北漂......有人说,这是一场蓄谋已久的逃离;也有人说,这是一个无奈之举。作为一位有着十年深漂的过来人,对“北上广深”的话题尤有感触。前些天和一个朋友聊到北上广深的话题,他跟我说,打算结束深漂,回老家发展了。因为在深圳买不起房子,孩子...

2020-04-29 21:33:17 915

转载 图解 | 线程的麻烦事儿,Actor能解决吗?

冯诺伊曼体系中, CPU和内存居于核心的地位。内存就像一个个的小格子,其中保存着程序要读写的值。当只有一个线程来访问内存的时候,事情非常简单:但是,当出现多线程的时候,就可能会出现互相覆盖的危险:在多线程并发执行的情况下,为了得到正确的结果,必须要加锁。看起来加锁是一件轻松的事情, 但实际上并非如此, 让我们看一个转账的例子:有两个账户,账户A和账户B, 现在有...

2020-04-29 10:31:02 313

转载 配置中心Apollo的设计原理

前言Apollo是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端。本文介绍了配置的概念、配置中心的必要性以及Apollo的特点,着重拆解分析Apollo客户端的设计原理,了解Apollo的原理,也能帮助读者更加能够理解配置中心的实现原理。一、什么是配置配置是程序运行时,动态调整行为的能力。配置有以下属性: 配置是...

2020-04-29 10:21:27 999

转载 G1回收器:我怎么知道你是什么时候的垃圾?

让你看看“浮动垃圾”上周《面试官:你说你熟悉jvm?那你讲一下并发的可达性分析》这篇文章主要聊了jvm的可达性分析算法。借助“三色标记”大法分析了垃圾回收线程扫描的过程中,用户线程同时执行修改引用关系的操作时,可能会出现的“对象消失”问题,以及其对应的两种解决方案增量更新和原始快照。在文章中我写道:对象关系图的变化会导致出现两种情况一是“浮动垃圾”,二是“对象消失”。大概率的情况下...

2020-04-29 10:14:58 399

转载 实时计算:Apache Flink在滴滴的应用与实践

导读:Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态计算。可部署在各种集群环境,对各种大小的数据规模进行快速计算。滴滴基于 Apache Flink 做了大量的优化,也增加了更多的功能,比如扩展 DDL、内置消息格式解析、扩展 UDX 等,使得 Flink 能够在滴滴的业务场景中发挥更大的作用。本文中,滴滴出行实时计算负责人、高级技术专家梁李印分享了...

2020-04-26 18:21:00 890

转载 程序员究竟能干多少年?用数据说话!

程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到30岁,然后就需要转型。我在很多面试中,问到应聘者未来的规划都能听到好些应聘都说程序员是个青春饭。因为,大多数程序员都认为,编程这个事只能干到30岁,最多35岁吧。好多时候超级有想和他们争论的冲动,但后来想想算了,因为你无法帮助那些只想呆在井底思维封闭而且想走捷径速成的人。今天,我们又来谈这个老话题,因为我看到一...

2020-04-26 18:17:06 610 1

转载 如何使用 Nginx 优雅地限流?

限流算法令牌桶算法令牌桶算法算法思想是: 令牌以固定速率产生,并缓存到令牌桶中; 令牌桶放满时,多余的令牌被丢弃; 请求要消耗等比例的令牌才能被处理; 令牌不够时,请求被缓存。 漏桶算法漏桶算法算法思想是: 水(请求)从上方倒入水桶,从水桶下方流出(被处理); 来不及流出的水存在水桶中(缓冲),以固定速率流出; ...

2020-04-26 18:13:56 201

转载 基于 Spring Boot 的 Restful 风格实现增删改查

前言在去年的时候,在各种渠道中略微的了解了SpringBoot,在开发web项目的时候是如何的方便、快捷。但是当时并没有认真的去学习下,毕竟感觉自己在Struts和SpringMVC都用得不太熟练。不过在看了很多关于SpringBoot的介绍之后,并没有想象中的那么难,于是开始准备学习SpringBoot。在闲暇之余的时候,看了下SpringBoot实战以及一些大神关于SpringBoot的博...

2020-04-25 10:53:17 508

转载 秒杀系统流量削峰,这事应该怎么做?

如果你看过秒杀系统的流量监控图的话,你会发现它是一条直线,就在秒杀开始那一秒是一条很 直很直的线,这是因为秒杀请求在时间上高度集中于某一特定的时间点。这样一来,就会导致一 个特别高的流量峰值,它对资源的消耗是瞬时的。但是对秒杀这个场景来说,最终能够抢到商品的人数是固定的,也就是说 100 人和 10000 人发 起请求的结果都是一样的,并发度越高,无效请求也越多。但是从业务上来说,秒杀活动...

2020-04-25 10:50:27 313

转载 OpenResty 概要及原理科普

OpenResty® 是一个基于Nginx与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。OpenResty 官网地址:https://openresty.org/cn/。OpenResty主要包含两方面的技术: Nginx: 一个免费的、开源...

2020-04-24 21:36:45 1020

转载 苏宁高时效、高并发秒杀业务中台的设计与实现

设计背景对于苏宁易购主站而言,正常的用户购物流程囊括选品、下单、库存扣减、付款、订单状态更新、物流履约等。但是在电商业务中往往会涉及到对某些热点商品的秒杀场景。相比于正常购物流程,秒杀场景具有时效性高、并发量大、瞬时业务量极高的业务特性,往往会出现显著的分布式一致性问题。正常的业务系统不能很好地应对瞬时高并发的业务需求,因此就需要针对于秒杀场景进行相应的架构优化,抑或是设计专门用于秒杀的中台业...

2020-04-24 21:30:47 1064

转载 微信支付软件架构,这也太牛逼了!

作者:Jack Jianghttps://www.cnblogs.com/imstudy/p/12567241.html背景作为一个重要业务,微信支付在客户端上面临着各种问题。其中最核心问题就是分平台实现导致的问题:iOS 和安卓实现不一致 容易出 Bug 通过沟通保证不了质量 扩展性差,无法快速响应业务需求 需求变更迭代周期长 数据上报不全...

2020-04-24 20:58:29 502

转载 HashMap 面试 21 问,这次要跪了!

21 个刁钻的 HashMap 面试题,这次要跪了!1:HashMap 的数据结构?A:哈希表结构(链表散列:数组+链表)实现,结合数组和链表的优点。当链表长度超过 8 时,链表转换为红黑树。transientNode<K,V>\[\]table;2:HashMap 的工作原理?HashMap 底层是 hash 数组和单向链表实现,数组中的每个元素都是链...

2020-04-24 19:52:39 266

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

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

2020-04-24 19:46:17 374

转载 如何评估一项技术是否值得长期投入

“每个人的时间都是有限的,在有限的时间里选择一项值得投入的技术会变得尤为重要。”笔者从 2008 年开始工作到现在也有 12 个年头了,一路走来都在和数据打交道,做过很多大数据底层框架内核的开发(Hadoop,Pig,Hive,Tez,Spark),也做过多年上层数据计算框架(Livy, Zeppelin)以及数据应用开发,包括数据处理,数据分析以及机器学习。现在是 Apache Membe...

2020-04-24 19:22:47 299

转载 从你输入一个网址,到网页显示,其间发生了什么?

来源:小林coding想必不少小伙伴面试过程中,会遇到「当键入网址后,到网页显示,其间发生了什么」的面试题。这次,小林我带大家一起探究下,一个数据包在网络中的心路历程。每个阶段都有数据包的「心路历程」,我们一起看看它说了什么?正文接下来以下图较简单的网络拓扑模型作为例子,探究探究其间发生了什么?简单的网络模型01 孤单...

2020-04-24 18:35:04 377

转载 艰难的这年,程序员的未来在哪里?

不好意思,标题党了,不过这篇文章有不少干货,请耐心往下看。大部分技术人,在职业发展的后半段,会触及发展的瓶颈。面对这种瓶颈,大部分人是想通过提高技术来突破。对这个问题,我结合自己的经历说说自己的一些思考。1大学的时候,我特别喜欢编程,用 “痴迷” 来形容也不为过。毕业工作后,也对技术有着近乎偏执的执着,觉得只要技术高到一定水平,就能够搞定所有的事情。毕业第一年,过得蛮焦虑的,当时压...

2020-04-23 17:54:47 217

转载 在Spring事务管理下,Synchronized为啥还线程不安全?

在synchronized 锁住方法的情况下,竟然出现了脏写Tips昨天本来打算是准备着一支烟 一杯咖啡 一个bug写一天的,突然我们组长跟我们说线上环境报错了,还出现了"服务器异常,请联系管理员"这特么不是一级事故吗?虽然有测试再前面扛枪。但是是我负责的直播模块,心理慌的一批(ps 报错图当时没保存了)分析事故原因因为是报错(因为我做这条数据查询的时候是selectOne 所以...

2020-04-23 17:53:51 360

转载 Spring Boot 发邮件和附件,超实用!

Spring Boot集成邮件服务竟如此简单,快速掌握邮件业务类的核心逻辑和企业邮件的日常服务。什么是SMTP?SMTP全称为Simple Mail Transfer Protocol(简单邮件传输协议),它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP认证要求必须提供账号和密码才能登陆服务器,其设计目的在于避免用户受到垃圾邮件的侵扰。什么是IMAP?...

2020-04-22 21:59:47 775

转载 文件句柄?文件描述符?傻傻分不清楚

概述在实际工作中会经常遇到一些bug,有些就需要用到文件句柄,文件描述符等概念,比如报错: too many open files, 如果你对相关知识一无所知,那么debug起来将会异常痛苦。在linux操作系统中,文件句柄(包括Socket句柄)、打开文件、文件指针、文件描述符的概念比较绕,而且windows的文件句柄又与此有何关联和区别?这一系列的问题是我们不得不面对的。笔者通过翻阅相...

2020-04-22 21:48:46 1220

转载 深入Lock锁底层原理实现,手写一个可重入锁

synchronized与locklock是一个接口,而synchronized是在JVM层面实现的。synchronized释放锁有两种方式: 获取锁的线程执行完同步代码,释放锁 。 线程执行发生异常,jvm会让线程释放锁。 lock锁的释放,出现异常时必须在finally中释放锁,不然容易造成线程死锁。lock显式获取锁和释放锁,提供超时获取锁、可中断地获取锁。sy...

2020-04-22 21:06:46 595

转载 编程语言圣经(卷一)

第0x00天上古时期,人类主要使用二进制编程,人类需要记住数据在内存的地址,然后才能进行读写操作。比如取出地址为0x3A6F27处的值, 以及地址为0x3A6F39处的值,然后把两个值相加起来。冗长的、难以记忆的地址让人类痛苦不堪。仁慈的上帝要解救人类于苦难之中,他说:要有变量 ! 用变量表示内存中的值。人类不解:“那地址呢?”上帝送给人类一个叫编译器的宝贝:“不...

2020-04-22 20:59:50 392

转载 北漂8年的程序员,终于在疫情之下决定撤退老家了

作者 l 南雁北飞来源 l Hollis(ID:hollischuang)这是Hollis的一位读者,之前在粉丝群里面大家聊的都比较开心,也是比较活跃的一个人。最近突然在微信上和我说,他准备撤退回老家了。然后我给他发了个语音,聊了很久,最终我还是支持了他的决定。没想到,第二天他给我发过来一篇文稿,说算是给自己的8年北漂生活一个总结,让我帮他发出来。以下是他的原文内容:...

2020-04-22 20:50:20 841

转载 报复性求职潮来袭!

最近这段时间,相信不少人都明显感受到了一个现象:今年找工作太,太,太难了。由于受到疫情的影响,今年的“金三银四”求职季,成了又一年“最难的求职季”,就业压力空前巨大。受到疫情辐射效应的影响,不少企业倒闭,在挣扎中自保,或裁员优化,或延招,缩招,甚至不招。招聘需求急剧下降,失业潮还在蔓延,导致求职潮爆发。在疫情辐射效应之下,没有等来报复性消费,却等来了报复性求职潮。据《2020年春季...

2020-04-21 18:33:17 468

转载 一入职!就遇到MySQL亿级大表优化....

作者丨jia-xin出处:https://www.cnblogs.com/YangJiaXin/p/10828244.html“前段时间刚入职一家公司,就遇到了 MySQL 亿级大表优化这事!图片来自 Pexels背景XX 实例(一主一从)xxx 告警中每天凌晨在报 SLA 报警,该报警的意思是存在一定的主从延迟。(若在此时发生主从切换,需要长时间才可以完成切换,要追延迟来...

2020-04-21 17:11:16 249

转载 Spring Boot 项目 RedisTemplate 实现轻量级消息队列

背景公司项目有个需求, 前端上传excel文件, 后端读取数据、处理数据、返回错误数据, 最简单的方式同步处理, 客户端上传文件后一直阻塞等待响应, 但用户体验无疑很差, 处理数据可能十分耗时, 没人愿意傻等, 由于项目暂未使用ActiveMQ等消息队列中间件, 而redis的lpush和rpop很适合作为一种轻量级的消息队列实现, 所以用它完成此次功能开发一、本文涉及知识点 exc...

2020-04-21 17:03:42 653 2

转载 300 行代码带你搞懂 Java 多线程!

线程线程的概念,百度是这样解释的:线程(英语:Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(Lightweight Processes),但轻量进程更多指内核线程(Kernel T...

2020-04-21 16:42:21 212

转载 19届毕业生在字节跳动工作的真实体验!

【面试经历】2019年的春节,当时我还在网易实习。在各种新闻上了解到了关于网易的裁员新闻后,危机感使我开始找新工作。机缘巧合下我获得了头条的内推机会!免笔试直接进入面试。一面问了一些 Java 基础,二面问了一些 Android 基础,三面做了一道简单程度的算法题(简单的大根堆的应用),经过**4轮面试(3技术 + 1HR)**后加入到了字节跳动这个大家庭,正式成为了一个 Bytedancer...

2020-04-21 16:19:33 6251 2

转载 慢查询优化,我终于在生产踩到了这个坑!!

为什么会想取这样一个标题,因为看了理论上的慢查询优化,今天!!!终于在生产上实战了。一、慢sql一问题发现将应用发布到生产环境后,前端页面请求后台API返回数据,发现至少需要6s。查看到慢sql:复现慢sql执行sql:selectcount(*)fromsync\_block\_datawhereunix\_timestamp(sync\_dt)>=...

2020-04-21 15:52:47 292

转载 不要和Java“结婚”

软件大神Bill 听说张大胖要和女友Java举办婚礼,他非常吃惊,赶紧跑去阻止,可是为时已晚,张大胖已经把戒指戴到了满脸幸福的Java的手上。Bill警告张大胖:“你的苦日子开始了!”张大胖不以为然,他太喜欢Java了,喜欢Java那严谨的语法,优美的Lambda表达式,漂亮的注解,无所不包的类库。还有,一个简单的单例模式用Java都有七种写法!这是其他语言根本无法比拟的!他发誓以...

2020-04-21 13:36:28 225

转载 强!分库分表与分布式数据库技术选项分析

最近经常被问到分库分表与分布式数据库如何选择,网上也有很多关于中间件+传统关系数据库(分库分表)与NewSQL分布式数据库的文章,但有些观点与判断是我觉得是偏激的,脱离环境去评价方案好坏其实有失公允。本文通过对两种模式关键特性实现原理对比,希望可以尽可能客观、中立的阐明各自真实的优缺点以及适用场景。NewSQL数据库先进在哪儿?首先关于“中间件+关系数据库分库分表”算不算NewSQL分...

2020-04-21 13:35:25 601

转载 运维如何逆袭?月薪30K的牛逼运维需要的知识,全在这里了

上次写了运维,反响很大,我的粉丝是不是都喜欢看这种逆袭的故事?运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,干的好,月薪30K没有问题,干得不好,删库跑路也可以理解。前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感知前方潮流变化。如:今年大数据,人工智能比较火……(相对表示就是 Python 比较火)初级篇linux运维人员常用工具拓扑详见:1.rsync工具很多地方经...

2020-04-21 12:32:48 1473 2

转载 我是一个函数

这两天有人问我RPC相关的问题,这其实是个非常“古老”的概念了,没有经历过DCOM和RMI开发时代的同学可能对RPC的来龙去脉没有直观的认识,之前我写过一篇文章做过讲述,今天再发一次,希望能解决一部分人的疑惑吧!我是一个函数, 生活在内存当中,我的家--用你们的“黑话”来说--就是进程的地址空间, 我的邻居也是一个函数,其中有一段很有趣的代码。我经常去拜访他,去的时候当然不能空着手,...

2020-04-20 20:23:03 332

转载 高性能服务器架构思路「不仅是思路」

在服务器端程序开发领域,性能问题一直是备受关注的重点。业界有大量的框架、组件、类库都是以性能为卖点而广为人知。然而,服务器端程序在性能问题上应该有何种基本思路,这个却很少被这些项目的文档提及。本文正式希望介绍服务器端解决性能问题的基本策略和经典实践,并分为几个部分来说明:1.缓存策略的概念和实例2.缓存策略的难点:不同特点的缓存数据的清理机制3.分布策略的概念和实例4.分布策略的难...

2020-04-20 14:26:49 297

空空如也

空空如也

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

TA关注的人

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