自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 5分钟了解CDN 加速原理 | +新书推荐

CDN 的全称是(Content Delivery Network),即内容分发网络。其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近用户的网络”边缘“的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度。简单的说,CDN 的工作原理就是将您源站的资源缓存到位于全球各地的 CDN 节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回

2022-07-05 01:30:57 166 1

原创 MySQL大表优化方案

当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在以下,字符串为主的表在以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段尽量使用、、作为整数类型而非,如果非负则加上的长度只分配真正需要的空间使用枚举或整数代替字符串类型尽量使用而非,单表不要有太多字段,建议在20以内避免使用NULL字段,很难查

2022-07-05 01:27:56 206

原创 HTTPS 加密、证书、签名与握手

如果你对HTTPS了解不深,可能会觉得上了HTTPS就是把 http://变成 https://,然后有把小锁头在浏览器地址栏上。这看起来似乎可有可无。但是我们在申请 HTTPS 证书的时候却比较麻烦,除了要定时续签之外,有的证书还需要支付一定的费用。那么,我们到底加上 HTTPS 有什么作用呢?我总结了两点:加密传输数据,确保客户端和服务器之间传输的数据不被中间人窃取、篡改。验证你访问的网站确实是该网站的控制人所发布的。第一点我相信比较好理解,我们电脑连接服务器的过程中,可能会受到很多中间人的监控,比如你

2022-07-05 01:26:06 855

原创 作为高级开发,你懂这些 JVM 参数吗?

大家好,我是磊哥。大家都知道,jvm在启动的时候,会执行默认的一些参数。一般情况下,这些设置的默认参数应对一些平常的项目也够用了。但是如果项目特别大了,需要增加一下堆内存的大小、或者是系统老是莫明的挂掉,想查看下gc日志来排查一下错误的原因,都需要咱们手动设置这些参数。表示,启动jvm的时候,输出jvm里面的gc信息。格式如下:解读 :Full GC 就表示执行了一次Full GC的操作,178K 和99K 就表示执行GC前内存容量和执行GC后的内存容量。1984K就表示内存总容量。后面那个是执行本次

2022-07-05 01:19:57 88

原创 [精选] 大文件断点续传,怎么搞

在现代网站应用中,上传文件是非常常见的。在任何语言中,通过使用一些工具,都可以实现文件上传的功能。但是,如果处理大文件上传的需求,还是有点麻烦的。假如你此时正在上传一个很大的文件,大约一个小时过去了,进度是 90%。突然断网了或者浏览器崩溃了,上传的程序退出,你要再全部重新来过。真的很不爽,对不对?还有更让人郁闷的是,如果你的网速很慢,那么,无论你重来多少次,你都不可能上传成功。在 PHP 中,我们可以尝试利用 tus 协议的断点续传功能来解决这个问题。什么是 tus?Tus 是一个基于 HTTP 的 文件

2022-07-05 01:18:59 262

原创 Spring 事务失效的 8 大场景,看看你都遇到过几个?

用 Spring 的 @Transactional 注解控制事务有哪些不生效的场景?不知道小伙伴们有没有这样的经历,在自己开心的编写业务代码时候,突然某一个方法里的事务好像失效了。然后 debug 跟踪代码时发现,自己第一步的 insert 或者 update 的数据在语句执行完毕后,数据库中并没有立即出现更改或保存完的新数据。所以一度怀疑spring 的事务失效了。那么这篇文章就来总结一下,大家给大家造成 “spring事务失效”错觉的 几个常见场景,然后对症下药。以本人的经历中遇到的问题,大概分有以下几

2022-07-05 01:18:07 307

原创 [精选] 万一你的Redis主从库宕机了,你就不会恢复了?

Redis主从库宕机,也是可以恢复数据的,这个主要就是你在Redis设置的哨兵模式了。下面我们具体来看看。哨兵是对Redis的系统的运行情况的监控,它是一个独立进程,功能有二个:监控主数据库和从数据库是否运行正常;主数据出现故障后自动将从数据库转化为主数据库;单个哨兵的架构:多个哨兵的架构:正在上传…重新上传取消多个哨兵,不仅同时监控主从数据库,而且哨兵之间互为监控。多个哨兵,防止哨兵单点故障。当前处于一主多从的环境中:启动哨兵进程首先需要创建哨兵配置文件:输入内容:说明:taotaoMaste

2022-07-05 01:16:58 388

原创 Redis实现消息队列

今天和大家来聊一聊Redis的Stream类型,Redis从5.0开始引入了一种新的数据类型Stream类型,它是专门为消息队列设计的数据类型。程序员学长关注推荐系统、计算广告、大数据技术领域,专注个人能力提升54篇原创内容公众号 首先,我们先来看一下消息队列存取消息的过程。在分布式系统中,当两个组件要基于消息队列进行通信时,一个组件把消息发送到消息队列,我们称之为生产者,另一个组件消费消息,然后处理,我们称之为消费者。如下图所示: 消息队列主要是解决生产者和消费者处理能力不一致的问题。也经常是大厂

2022-07-05 01:14:59 159

原创 面试官:你用过Docker,能说说容器和镜像的区别吗?

大家好,我是磊哥。这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别。当我对Docker技术还是一知半解的时候,我发现理解Docker的命令非常困难。于是,我花了几周的时间来学习Docker的工作原理,更确 切地说,是关于Docker统一文件系统(the union file system)的知识,然后回过头来再看Docker的命令,一切变得顺理成章,简单极了。注 意 文末有:7701页互联网大厂面试题 题

2022-07-05 01:13:34 94

原创 服务端如何防止订单重复支付?

如图是一个简化的下单流程,首先是提交订单,然后是支付。支付的话,一般是走支付网关(支付中心),然后支付中心与第三方支付渠道(微信、支付宝、银联)交互,支付成功以后,异步通知支付中心,支付中心更新自身支付订单状态,再通知业务应用,各业务再更新各自订单状态。这个过程中经常可能遇到的问题是掉单,无论是超时未收到回调通知也好,还是程序自身报错也好,总之由于各种各样的原因,没有如期收到通知并正确的处理后续逻辑等等,都会造成用户支付成功了,但是服务端这边订单状态没更新,这个时候有可能产生投诉,或者用户重复支付。由于③⑤

2022-07-05 01:11:34 423

原创 [精选] 万一你的Redis主从库宕机了,你就不会恢复了?

Redis主从库宕机,也是可以恢复数据的,这个主要就是你在Redis设置的哨兵模式了。下面我们具体来看看。哨兵是对Redis的系统的运行情况的监控,它是一个独立进程,功能有二个:监控主数据库和从数据库是否运行正常;主数据出现故障后自动将从数据库转化为主数据库;单个哨兵的架构:多个哨兵的架构:多个哨兵,不仅同时监控主从数据库,而且哨兵之间互为监控。多个哨兵,防止哨兵单点故障。当前处于一主多从的环境中:启动哨兵进程首先需要创建哨兵配置文件:输入内容:说明:taotaoMaster:监控主数据的名称,

2022-07-03 12:45:06 94

原创 面试限流、熔断、高可用,好多人一脸懵

日常生活中,有哪些需要限流的地方?像我旁边有一个国家景区,平时可能根本没什么人前往,但是一到五一或者春节就人满为患,这时候景区管理人员就会实行一系列的政策来限制进入人流量, 为什么要限流呢?假如景区能容纳一万人,现在进去了三万人,势必摩肩接踵,整不好还会有事故发生,这样的结果就是所有人的体验都不好,如果发生了事故景区可能还要关闭,导致对外不可用,这样的后果就是所有人都觉得体验糟糕透了。限流的思想就是,在保证可用的情况下尽可能多增加进入的人数,其余的人在外面排队等待,保证里面的一万人可以正常游玩。回到网络上,

2022-07-03 12:43:02 102

原创 分布式事务最经典的七种解决方案

随着业务的快速发展、业务复杂度越来越高,几乎每个公司的系统都会从单体走向分布式,特别是转向微服务架构。随之而来就必然遇到分布式事务这个难题,这篇文章总结了分布式事务最经典的解决方案,分享给大家。在讲解具体方案之前,我们先了解一下分布式事务所涉及到的基础理论知识。我们拿转账作为例子,A需要转100元给B,那么需要给A的余额-100元,给B的余额+100元,整个转账要保证,A-100和B+100同时成功,或者同时失败。看看在各种场景下,是如何解决这个问题的。把多条语句作为一个整体进行操作的功能,被称为数据库事务

2022-07-03 12:41:03 95

原创 消息幂等(去重)通用解决方案

消息中间件是分布式系统常用的组件,无论是异步化、解耦、削峰等都有广泛的应用价值。我们通常会认为,消息中间件是一个可靠的组件——这里所谓的可靠是指,只要我把消息成功投递到了消息中间件,消息就不会丢失,即消息肯定会至少保证消息能被消费者成功消费一次,这是消息中间件最基本的特性之一,也就是我们常说的“AT LEAST ONCE”,即消息至少会被“成功消费一遍”。举个例子,一个消息M发送到了消息中间件,消息投递到了消费程序A,A接受到了消息,然后进行消费,但在消费到一半的时候程序重启了,这时候这个消息并没有标记为消

2022-07-03 12:39:12 119

原创 全网最详细的 Maven 教程,安排

前言:目前所有的项目都在使用maven,可是一直没有时间去整理学习,这两天正好有时间,好好的整理一下。① 一个项目就是一个工程如果项目非常庞大,就不适合使用package来划分模块,最好是每一个模块对应一个工程,利于分工协作。借助于maven就可以将一个项目拆分成多个工程② 项目中使用jar包,需要“复制”、“粘贴”项目的lib中同样的jar包重复的出现在不同的项目工程中,你需要做不停的复制粘贴的重复工作。借助于maven,可以将jar包保存在“仓库”中,不管在哪个项目只要使用引用即可就行。③ jar包需要

2022-07-03 12:36:57 72

原创 Spring Cloud架构的各个组件的原理分析

大家好,我是鸭哥。我们先认识一下SpringCloud的各个组件,然后知其所以然。原理讲解前,先看一个最经典的业务场景,如开发一个电商网站,要实现支付订单的功能,流程如下:创建一个订单之后,如果用户立刻支付了这个订单,我们需要将订单状态更新为“已支付”扣减相应的商品库存通知仓储中心,进行发货给用户的这次购物增加相应的积分如上,微服务的应用场景和核心竞争力:降低耦合:每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌控,易于保持高可维

2022-07-03 12:31:30 81

原创 RedisTemplate 分布式锁演变,Redission 分布式锁实现

基本原理阶段一阶段二阶段三阶段四阶段五-最终形态4) Redisson我们可以同时去一个地方“占坑”,如果占到,就执行逻辑。否则就必须等待,直到释放锁。“占坑”可以去redis,可以去数据库,可以去任何大家都能访问的地方。等待可以自旋的方式。问题:1、setnx占好了位,业务代码异常或者程序在页面过程中宕机。没有执行删除锁逻辑,这就造成了死锁解决:设置锁的自动过期,即使没有删除,会自动删除问题:1、setnx设置好,正要去设置过期时间,宕机。又死锁了。解决:设置过期时间和占位必须是原子的。red

2022-07-03 12:29:28 147

原创 Java 内存泄漏排查,新技能Get

大家好,我是鸭哥。背景前些日子小组内安排值班,轮流看顾我们的服务,主要做一些报警邮件处理、Bug 排查、运营 issue 处理的事。工作日还好,无论干什么都要上班的,若是轮到周末,那这一天算是毁了。不知道是公司网络广了就这样还是网络运维组不给力,网络总有问题,不是这边交换机脱网了就是那边路由器坏了,还偶发地各种超时,而我们灵敏地服务探测服务总能准确地抓住偶现的小问题,给美好的工作加点料。好几次值班组的小伙伴们一起吐槽,商量着怎么避过服务保活机制,偷偷停了探测服务而不让人发现(虽然也并不敢)。前些天我就在周末

2022-07-03 12:28:31 74

原创 19 张图秒懂 Spring Cloud 全家桶

大家好,我是后端架构师。本文用 19 张思维导图描述微服务相关的概念和架构,建议收藏。包括什么是微服务、架构演进、微服务架构、微服务解决方案、SpringCloud概览、Eureka、Ribbon、Feign、Hystrix、Zuul、Gateway、Config、Bus、OAuth2、Sleuth、什么是SpringCloud、SpringCloud主要组件。1.1、架构演进架构的发展历程是从单体式架构,到分布式架构,到SOA架构,再到微服务架构。图1:架构演进单体架构:未做任何拆分的Java W

2022-07-03 12:24:57 1513

原创 Springboot 解决跨域的四种姿势

实现 WebMvcConfigurer#addCorsMappings 的方法姿势二姿势三姿势四可以使用在单个方法上也可以使用在类上以上四种姿势都学会了么?学会了三连哦

2022-07-03 12:14:58 331

空空如也

空空如也

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

TA关注的人

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