摘要:
1、 互斥锁 当有一个线程要访问共享资源(临界资源)之前,会对线程访问的这段代码(临界区)进行加锁。如果在加锁之后没释放锁之前其他线程要对临界资源进行访问,则这些线程会被阻塞睡眠,直到解锁,如果解锁时有一个或者多个线程阻塞,那么这些锁上的线程就会变成就绪状态,然后第一个变为就绪状态的线程就会获取资源 阅读全文
摘要:
一、数据库4大隔离级别 为了解决并发事务存在的脏读(读到了其他事务已修改还未提交的数据)、不可重复读(一个事务里两次读同一个数据,但数据不一样,因为这个数据在两次读的间隔里,有其他事务修改了这个数据并提交了)、幻读(a事务读取表的记录数为x,然后有其他事务对这个表进行了新增或删除行,a事务再读取该表 阅读全文
摘要:
1、 跨域请求、源、同源 同源策略是浏览器的的安全策略,为了保护浏览器。 源:协议(http、https)+ip(域名)+端口 同源:协议(http、https)+ip(域名)+端口都相同 如果不同源,发起的请求可以到服务器,服务器也会正常响应,但是浏览器不允许使用响应的结果。 解决方法 A、 后台 阅读全文
摘要:
1、 强一致性:2pc提交,会锁定涉及到事务的资源,造成堵塞。 TransactionScope(.net framework有,core没有,限制在windows)是其中一种实现方法 2、 弱一致性: tcc(try-confirm-cancel):一个接口变三个接口,try接口、提交接口、取消接 阅读全文
摘要:
1、 数据库自增id 1)不同数据库语法和实现不同,数据库迁移的时候或多数据库版本支持的时候需要处理。 2)在单个数据库或读写分离或一主多从的情况下,只有一个主库可以生成。有单点故障的风险。 3)在性能达不到要求的情况下,比较难于扩展。 4)如果遇见多个系统需要合并或者涉及到数据迁移会相当痛苦。 5 阅读全文
摘要:
1、 redis阻塞锁:stackexchange客户端有实现AcquireLock(key,timeout)方法,key就是标识,timeout表示拿到锁之后可以占用多久,或者没拿到锁等待多久。 缺点是timeout参数不好把握 2、 redis非阻塞锁:如果没有拿到锁,给用户返回失败,代码不自动 阅读全文
摘要:
1、 分布式关系型数据库,newsql,结合了关系型数据库和nosql数据库的优点,高并发、支持在线扩容缩容、可以关联查找。 2、 三大模块 A、 Tidb集群:相当于客户端连接池,负责接待客户端连接,分析sql语句,与PD集群通信,找出相关数据保存的kv键值对在哪个tikv集群的节点里,然后再去t 阅读全文
摘要:
一、 Elasticsearch(数据库) 需要全文检索时,需要模糊搜索时,需要分布式海量日志时使用 1、 基本结构:索引(数据库),类型(表),文档(行),字段(列) 2、 Text和keyword都是字符串类型,但是text会被分词(拆开),keyword不会被分词 3、 Es非常吃内存,并且有 阅读全文
摘要:
1、 Producer: 生产者,生产数据,就是我们客户端代码,写数据的 2、 Consumer:消费者:负责处理kafka服务里面消息 3、 Consumer Group/Consumers:消费者组:就是kafka独特处理轮询还是广播。 轮询:消费者每一个处理一条,轮排 广播:一条信息,多个消费 阅读全文
摘要:
1、 简单队列模式simple:最简单的工作队列,其中一个消息生产者,一个消息消费者,一个队列。也称为点对点模式。一条消息只能一个消费者消费。 2、 工作队列work:一个消息生产者,一个交换器,一个消息队列,多个消费者。同样也称为点对点模式。一条消息只能一个消费者消费。 3、 发布订阅publis 阅读全文