自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis缓存雪崩,击穿,穿透,到底是什么?

在今天的互联网里,高并发、大数据量、大流量已经成为了代言词,那么我们的系统也承受着巨大的压力,首当其冲的解决方案就是redis。 那么redis使用不当就会产生雪崩、穿透、击穿等问题,这也是考验一个程序员技术能力的时刻。 当然面试的时候,这也是高频面试题,几乎大厂都会问到。下面跟着贴心老哥一起来看看这些技术吧。 缓存雪崩 举例 双十一期间,所有用户一打开淘宝就是进入首页,首页的压力非常大,为了提高并发,将网站首页数据都缓存到redis里,所有的redis key失效时间都是3小时。 双十一当天大量用户剁手狂

2021-12-01 01:13:11 377

原创 《RabbitMQ》如何保证消息不被重复消费

《RabbitMQ》如何保证消息不被重复消费 一 重复消息 为什么会出现消息重复?消息重复的原因有两个:1.生产时消息重复,2.消费时消息重复。 1.1 生产时消息重复 由于生产者发送消息给MQ,在MQ确认的时候出现了网络波动,生产者没有收到确认,实际上MQ已经接收到了消息。这时候生产者就会重新发送一遍这条消息。 生产者中如果消息未被确认,或确认失败,我们可以使用定时任务+(redis/db)来进行消息重试。 @Component @Slf4J public class SendMessage {

2021-11-30 23:25:35 247

原创 Spring Cloud核心组件详解

文章目录一、Spring Cloud核心组件:Eureka(1)Netflix Eureka(2)Eureka详解二、Spring Cloud核心组件:Ribbon三、Spring Cloud核心组件:Fegin四、Spring Cloud核心组件:Hystrix五、Spring Cloud核心组件:Zuul六、小结 一、Spring Cloud核心组件:Eureka (1)Netflix Eureka 1)、Eureka服务端:也称服务注册中心,同其他服务注册中心一样,支持高可用配置。如果Eureka以集

2021-11-30 21:56:01 162

原创 服务下线四种方式

服务下线四种方式 这里指已经在 Eureka 注册中心注册的服务,如果需要停用,有四种方式进行停用。 1.直接关闭 最粗暴。 写这个是因为,直接关闭,如果 Eureka 开了保护模式,会导至服务已关闭,但是未下线,还是会重试调用。如果不需强稳定性的话可以这么干。 2.客户端主动通知注册中心下线 安全。 Eureka注册中心在收到某个客户端下线后不会马上通知所有的注册的客户端,而是等到客户端进行心跳的时候(心跳(续约)频率,默认30秒 )再将下的数据返回。通过这种方式下线的话,可以在某个服务下线后防止其他服务

2021-11-30 21:47:21 878

原创 如何设计微服务以及设计原则之AKF拆分原则

在设计微服务的时候,我们一般会遵循以下4个原则: 1)AKF拆分原则 2)前后端分离原则 3)无状态服务 4)restful的通信风格 下面我们来详细了解以下AKF拆分原则。 1 AKF拆分原则 业界对可扩展系统架构设计有一个朴素的概念,就是:通过加机器可以解决容量和可用性问题(如果一台不行就两台) 用个段子描述就是:(世界上没有什么事是一顿烧烤解决不了的,如果有,那就两顿) 这一理念在“云计算”概念疯狂流行的今天。得到了广泛的认可。对于一个规模迅速增长的系统而言。容量和性能问题当然是首当其冲的。但是随着时

2021-11-27 15:42:41 365

原创 Docker入门

Docker是什么 Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。 Docker 使用 Google 公司推出的 Go 语言 进行开发实现。 docker是linux容器的一种封装,提供简单易用的容器使用接口。它是最流行的Linux容器解决方案。 docker的接口相当简单,用户可以方便的创建、销毁容器。 docker将应用程序与程序的

2021-11-17 18:41:33 117

原创 从零开始入门 K8s|K8s 的应用编排与管理

文章目录一、资源元信息1. Kubernete 资源对象2. labels3. Selector4. Annotations5. Ownereference二、操作演示三、控制器模式1、控制循环2、Sensor3、控制循环例子-扩容四、控制器模式总结1、两种 API 设计方法2、命令式 API 的问题命令 API 最大的一个问题在于错误处理;实际上许多命令式的交互系统后台往往还会做一个巡检的系统,用来修正命令处理超时、重试等一些场景造成数据不一致的问题;最后,命令式 API 在处理多并发访问时,也很容易出现

2021-11-17 18:14:21 288

原创 为什么需要Elasticsearch

Elasticsearch是什么? Elasticsearch is the distributed search and analytics engine at the heart of the Elastic Stack. 简单说,Elasticsearch 就是一个分布式的搜索与分析引擎。 为什么需要 Elasticsearch? 用数据库,也可以实现搜索的功能,为什么还需要搜索引擎呢? 就像 Stackoverflow 的网友说的: A relational database can stor

2021-11-17 18:03:14 2154

原创 影响一个系统性能的方方面面

文章目录影响一个系统性能的方方面面常用的性能评价/测试指标响应时间并发数吞吐量关系常用的性能优化手段避免过早优化进行系统性能测试寻找系统瓶颈,分而治之,逐步优化前端优化常用手段浏览器/AppCDN 加速反向代理缓存WEB 组件分离应用服务性能优化缓存缓存的基本原理和本质分布式缓存与一致性哈希异步同步和异步,阻塞和非阻塞常见异步的手段集群程序选择更优的算法并发编程JVM与 JIT 编译器相关的优化热点编译的概念选择编译器类型代码缓存相关GC 调优存储性能优化总结: 影响一个系统性能的方方面面 一个 web 应

2021-11-17 17:40:16 676

原创 JAVA常用设计模式

文章目录JAVA常用设计模式一、⼯⼚⽅法模式(利⽤创建同⼀接⼝的不同实例):二、抽象⼯⼚模式(多个⼯⼚):三、单例模式(保证对象只有⼀个实例):1、适⽤场景:2、代码:3、分类:3.1、饿汉式:3.2、懒汉式:3.3、双重检验锁:3.4、静态内部类⽅式:3.5、枚举:四、原型模式(对⼀个原型对象进⾏复制、克隆产⽣类似新对象): JAVA常用设计模式 一、⼯⼚⽅法模式(利⽤创建同⼀接⼝的不同实例): 1、普通⼯⼚模式:建⽴⼀个⼯⼚类,对实现了同⼀接⼝的⼀些类进⾏实例的创建; public class Send

2021-11-17 17:12:13 191

原创 Redis 实现限流的三种方式

推荐下自己做的 Spring Cloud 的实战项目: https://github.com/YunaiV/onemall

2021-11-17 16:39:44 203

原创 乐观锁与悲观锁

乐观锁与悲观锁何谓悲观锁与乐观锁悲观锁乐观锁两种锁的使用场景乐观锁常见的两种实现方式1. 版本号机制2. CAS 算法乐观锁的缺点1 ABA 问题2 循环时间长开销大3 只能保证一个共享变量的原子操作CAS 与 synchronized 的使用情景 何谓悲观锁与乐观锁 乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。 悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次

2021-11-17 16:26:06 71

空空如也

空空如也

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

TA关注的人

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