小小默:进无止境

QQ:1274654983 欢迎交流~~

聊聊分布式应用中的分布式锁

分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要通过一些互斥手段来防止彼此之间的干扰,以保证一致性,在这种情况下,就需要使用分布式锁了。 简而言之,分布式锁就是指在分布式的部署环境下,通过锁机制...

2019-01-27 22:37:18

阅读数 458

评论数 0

聊聊分布式高并发应用中请求幂等处理

【1】幂等概念和场景 幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。 在编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状...

2019-01-23 11:21:19

阅读数 571

评论数 0

聊聊分布式应用中的缓存方案(二)

本篇是聊聊分布式应用中的缓存方案(一)的姊妹篇。 【1】什么是静态数据 这里静态数据是指不经常发生变化或者变化频率比较低的数据,比如车型库、用户基本信息、车辆基本信息等。车型库这种可能每个月会更新一次,用户和车辆基本信息的变化来源于用户注册、修改,这个操作的频率相对也是比较低的。 另外这类数据的另...

2019-01-22 14:12:57

阅读数 108

评论数 1

一文详解MySQL调优那些事

【1】单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量。 ① 字段 ...

2019-01-21 18:20:58

阅读数 137

评论数 0

聊聊分布式高并发应用中的高可用性

面试题:高并发场景/接口被刷怎么办? 【1】架构和细节 首先参考上篇博文:聊聊高并发应用中秒杀场景的方案实现,其中限流,缓存等思想是一致的。 这里需要注意的是,如果在现有集群环境下,负载压力仍然很大怎么办?观察上图最后一步—容器化技术。使用Docker+K8s(Kubernetes)构建Dock...

2019-01-20 18:21:38

阅读数 105

评论数 0

聊聊高并发应用中电商秒杀场景的方案实现

秒杀场景需要考虑这些关键词:高并发、响应时效性、流程削峰、恶意流量攻击、秒杀原子操作与数据安全、服务高可用(应对雪崩)等。 【1】秒杀业务场景分析 ① 秒杀/抢购业务场景 比如商品秒杀、商品抢购、群红包、抢优惠券、抽奖等等。 ② 秒杀/抢购业务特点 秒杀商品价格低廉、抢购商品很好|抢手、 ...

2019-01-18 19:49:08

阅读数 730

评论数 0

聊聊分布式应用的分布式事务之消息最终一致性事务

聊聊分布式应用的分布式事务2PC/3PC 聊聊分布式应用的分布式事务TCC 聊聊分布式应用的分布式事务之最大努力通知型事务 本文我们将学习到另一种常见的柔性事务解决方案:消息一致性事务方案。 对于TCC型事务,跨系统的调用均是基于服务间的直接调用,即很大程度上是同步调用。基于TCC方案能够保证主子...

2019-01-18 17:32:54

阅读数 142

评论数 0

聊聊分布式应用的分布式事务之最大努力通知型事务

TCC适用于公司内部对一致性、实时性要求较高的业务场景,而本文我们讲解的“最大努力通知型事务”是为解决跨网络、跨服务之间的柔性事务的另一种解决方案。 首先看一下最大努力通知型的流程图,如下图: ...

2019-01-18 16:42:08

阅读数 77

评论数 0

聊聊分布式应用的分布式事务TCC

TCC是try-confirm-cancel的单词首字母缩写,是一个类2PC的柔性事务解决方案,由支付宝提出后得到广泛的实践。 补偿事务(TCC)有三个阶段: Try 阶段,对业务系统做检测和资源预留 Confirm 阶段对业务系统做确认提交,默认:Try执行成功,Confirm一定成功 Can...

2019-01-18 16:34:17

阅读数 121

评论数 0

聊聊分布式应用的分布式事务2PC/3PC

几个关键词:ACID,XA,2PC,3PC,CAP,BASE,TCC及消息队列实现最终一致性。 【1】基础概念 数据库事务的特性:原子性(Atomicity )、一致性( Consistency )、隔离性或独立性( Isolation)和持久性(Durabilily),简称就是ACID。具体知...

2019-01-18 12:58:58

阅读数 135

评论数 0

聊聊分布式应用中的消息中间件

消息队列已经逐渐成为企业应用系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能。 当前使用较多的 消息队列 有 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ 等,而部分 数据库 如 Redis、MySQL 以及 p...

2019-01-18 12:41:44

阅读数 173

评论数 0

聊聊分布式应用中负载均衡技术和Session一致性

【1】负载均衡技术 F5 HAProxy LVS Nginx/Apache 硬件设备,功能十分强大 工作在第四/七层 Session保持 并发处理极佳 负载均衡算法多 工作第四层 工作稳定 应用范围广 配置简单 不能做动静分离 安装配置简单 占有内存少 并发处理能力强3W+ 优化...

2019-01-16 15:12:28

阅读数 76

评论数 0

聊聊分布式应用中的缓存方案(一)

【1】本地缓存 本地缓存即缓存和应用在同一个进程里,是基于JVM的缓存,应用生则生,应用死则亡。 常见产品有Guava、Caffeine和Ehcache。三者对比如下: 对比项 Guava Caffeine Ehcache 是否开源 Y(Google) Y(apache) Y(Te...

2019-01-15 11:34:38

阅读数 137

评论数 0

MySQL单表膨胀优化之MyCat分库分表

MySQL的单表达到多少量级时性能会下降?宽表在千万量级,窄表要好一点在1200W左右。但是MySQL单表达到1500W时性能开始急剧下降! 这里先抛出一道面试题: Q1:一亿的用户表,怎么做优化? Q2:两个实体,用户和订单,数据量都过亿 要求: 1.从用户角度快速查询订单 2.从订单角度快速查...

2019-01-14 13:37:42

阅读数 438

评论数 0

项目性能参数和概念

并发量、吞吐量、并发用户数据、pv、 uv、平均停留时长、跳出率、 平均响应时间、QPS、RPS、TPS。。。 ① 并发量 即系统同时处理事务的能力,通常我们用QPS(query per second 每秒查询)来表示,也有地方用RPS(request per second 每秒请求),TPS(吞...

2019-01-08 16:51:51

阅读数 98

评论数 0

Dubbo的原理分析

【1】RPC原理 首先看个图: 一次完整的RPC调用流程(同步调用,异步另说)如下: 1)服务消费方(client)调用以本地调用方式调用服务; 2)client stub(可以理解为代理)接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体; 3)client stub找到服务地址,并...

2018-11-14 17:03:10

阅读数 111

评论数 0

Dubbo中高可用的那些概念

【1】Zookeeper宕机与dubbo直连 ① zookeeper注册中心宕机,还可以消费dubbo暴露的服务 注意,这里是注册中心全部宕机(比如做了Zookeeper集群配置)。那么消费者还是可以消费提供者暴露的服务的。因为消费者消费服务,其实就是从注册中心拿到服务地址(URL),这个URL消...

2018-11-14 13:05:41

阅读数 489

评论数 0

SpringBoot与Dubbo整合的几种方式

SpringBoot与Dubbo整合有几种方式,通常需要根据项目实际情况来进行选择。 SpringBoot与dubbo整合的三种方式: 1)导入dubbo-starter,在application.properties配置属性,使用@Service【暴露服务】使用@Reference【引用服务】,...

2018-11-13 18:26:38

阅读数 3850

评论数 1

Dubbo - 配置示例使用详解

查看Dubbo完整配置示例,参考官方文档。 【1】启动时检查 Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,以便上线时,能及早发现问题,默认 check=“true”。 可以通过 check=“false” 关闭检查,比如,测试时,有些服务不...

2018-11-13 14:19:57

阅读数 137

评论数 0

SpringBoot整合Dubbo和Zookeeper升级版

分布式架构与Dubbo基础入门与实践一文中初步介绍了分布式架构并使用xml配置方式进行了Dubbo和Zookeeper实践。分布式应用简单入门及SpringBoot整合Dubbo+Zookeeper一文中使用SpringBoot整合了Dubbo和Zookeeper但是并未抽取公共API项目。本文是...

2018-11-09 17:08:32

阅读数 640

评论数 0

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