1. 需求起因高并发场景下,需要使用redis做缓存,让请求先访问到redis,而不是直接访问MySQL等数据库。 2. 谁先谁后 3.可行方案 3.1 延迟双删+过期策略 3.2 缓存异步更新 (1) 应用直接写数据到数据库中。(2) 数据库更新binlog日志。(3) 利用Canal中间件读取b ...
分类:
数据库 时间:
2020-06-07 11:13:38
阅读次数:
83
分布式一致性分布式场景下,多个服务同时对服务一个流程,比如电商下单场景,需要支付服务进行支付、库存服务扣减库存、订单服务进行订单生成、物流服务更新物流信息等。如果某一个服务执行失败,或者网络不通引起的请求丢失,那么整个系统可能出现数据不一致的原因。上述场景就是分布式一致性问题,追根到底,分布式一致性的根本原因在于数据的分布式操作,引起的本地事务无法保障数据的原子性引起。分布式一致性问题的解决思路有
分类:
其他好文 时间:
2020-06-06 09:16:57
阅读次数:
59
一些很小的项目一般不会特意使用或注意数据锁,其实在事务操作修改与删除时就已经有隐式加锁。一般所有涉及到共享数据都会考虑下数据的原始性问题,保证数据在使用或修改时原始性没有被破坏就需要锁定数据所有权;除非任何时刻同一时间只有一个进程在运行,但这种业务非常少。锁会增加性能开销,使用不合理容易影响项目性能甚至会造成死锁。Mysql数据库锁受引擎影响,不同的引擎锁的方式不一样。常用的引擎:MyISAM引擎
分类:
数据库 时间:
2020-06-03 09:30:57
阅读次数:
150
面试题:高并发场景下,如何保证缓存与数据库一致性? 问题分析 我们日常开发中,对于缓存用的最多的场景就像下图一样,可能仅仅是对数据进行缓存,减轻数据库压力,缩短接口响应时间。 这种方案在不需要考虑高并发得去写缓存,高并发得读写缓存时,是不会有问题,但是如果是在高并发场景下,要保证缓存和数据库的一致性 ...
分类:
数据库 时间:
2020-06-02 11:23:03
阅读次数:
81
什么是分布式系统 分布式这一概念,一直都是后端工程师绕不过去的一个坎,今天,我们就一起来看看到底什么是分布式系统,又有哪些分布式技术世我们需要学习的。 分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络 ...
分类:
其他好文 时间:
2020-06-02 11:00:15
阅读次数:
200
1jdk中线程是协作式的;os中线程是抢占式的 2hashcode可以看作对象在内存中的值,但并不是,system.identityhashcode是对象的原值 3i++造成线程不安全是因为 重新声明了对象,导致锁住的不是同一个对象 4volatile只是保证了可见性问题,static是让以这个类对 ...
分类:
编程语言 时间:
2020-06-01 23:40:21
阅读次数:
71
#兼容性问题 e.stopPorpagation() (方法) 或者e.cancelbubble=ture(属性、 ie兼容性用) ...
分类:
其他好文 时间:
2020-06-01 20:54:30
阅读次数:
61
HTTP的缺点 HTTP 协议设计的初衷就是简单方便,但是随着 Web 的发展和交互的复杂,也引入了一些安全性问题: 通信使用明文,内容可能会被窃听:HTTP 协议本身不具备加密功能,所以无法对通信整体(请求和响应的内容)进行加密,即 HTTP 报文使用明文方式发送。按照 TCP/IP 协议族的工作 ...
分类:
Web程序 时间:
2020-06-01 00:47:08
阅读次数:
95
3行李货物再按一1 再按3 各种面向对象编程语言相互有别,但都能看到他们对面向对象三大机制的支持,即:”封装、继承、多态“ -封装,隐藏内部实现 -继承,复用现有代码 -多态,改写对象行为 继承是以封装为基础的,多态是以继承为基础的。 封装,侧重于对象的描述。 继承和多态,侧重于对象之间关系的描述。 ...
分类:
其他好文 时间:
2020-05-31 19:49:15
阅读次数:
73
一、适配器模式的应用场景 我们在现实生活见识到的电源插头转换器、手机充电转换头、显示器转接头等都是适配器模式的体现。适配器模式(Adapter Pattern)是指一个类的接口转换成客户期望的另一个接口,使原本的接口不兼容的类可以一起工作。 适配器模式适用于以下几种应用场景: 已经存在的类,它的方法 ...
分类:
其他好文 时间:
2020-05-30 19:44:53
阅读次数:
119