原文 https://www.cnblogs.com/richaaaard/p/6351705.html Raft 实现日志复制同步 本篇文章以 John Ousterhout(斯坦福大学教授) 和 Diego Ongaro(斯坦福大学获得博士学位,Raft算法发明人) 在 Youtube 上的讲解 ...
分类:
其他好文 时间:
2020-07-21 22:57:52
阅读次数:
64
线程的同步 线程的安全问题 多个线程执行的不确定性引起执行的结果的不稳定性 多个线程对数据的共享,会造成操作的不完整性、会破坏数据(例如窗口买票问题,多个窗口对票数进行共享,会出现两个窗口卖号码相同的票给不同的人) 通过同步机制解决线程安全问题 方法一:同步代码块 格式 synchronized(同 ...
分类:
编程语言 时间:
2020-07-21 22:55:58
阅读次数:
74
线程的常用方法 start() 启动当前线程 调用当前线程的run()方法 run() 通常需要重写Thread类中的此方法 将创建的线程执行的操作声明在此方法中 currentThread() 静态方法 返回执行当前代码的线程 getName() 获取当前线程的名字 setName() 设置当前线 ...
分类:
编程语言 时间:
2020-07-21 22:52:32
阅读次数:
83
APR包 链接:https://pan.baidu.com/s/1lEP2YlqP7cJDG0ofRwRyog 提取码:nng4 一、三种运行模式介绍 Tomcat 有三种(bio,nio.apr) 运行模式,首先来简单介绍下 bio bio(blocking I/O),顾名思义,即阻塞式I/O操作 ...
分类:
其他好文 时间:
2020-07-21 14:02:42
阅读次数:
82
方案一:(同步操作,代码侵入性比较高) 在往数据库中增加一条数据的同时,向es中也插入一条 Books.objects.create() 向es中插入一条数据 方案二:使用celery起一个定时任务 在用户低峰的时候,执行定时任务(比如每天晚上00:00),把当天新增的数据查询出来并处理成Json格 ...
分类:
数据库 时间:
2020-07-21 11:35:01
阅读次数:
120
公平和非公平锁 公平锁:是指多个线程按照申请锁的顺序来获取锁,类似排队,先来后到。 非公平锁:是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁在高并发的情况下,有可能会造成优先级反转或者饥饿现象。 两者区别: 并发包中ReentrantLock的创建可以指定 ...
分类:
其他好文 时间:
2020-07-21 09:46:12
阅读次数:
82
Memcached主主复制+Keepalived高可用: Memcached主主复制是指在任意一台Memcached服务器修改数据都会被同步到另外一台。 Memcached的复制功能支持多个Memcached之间进行互相复制(双向复制,主备都是可读可写的),可以解决Memcached的容灾问题 因为 ...
分类:
系统相关 时间:
2020-07-21 09:27:39
阅读次数:
91
依赖 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> </dependency> 代码 package com.perfect.kafka; import org.apac ...
分类:
其他好文 时间:
2020-07-21 01:09:32
阅读次数:
114
思考: 1,消息丢失是什么造成的,从生产端和消费端两个角度来考虑? 2,消息重复是什么造成的,从生产端和消费端两个角度来考虑? 3,如何保证消息有序? 4,如果保证消息不重不漏,损失的是什么? 1.为什么会发生消息丢失和消息重复?消息发送Kafka消息发送有两种方式:同步(sync)和异步(asyn ...
分类:
其他好文 时间:
2020-07-21 00:57:57
阅读次数:
177
ThreadLocal 概述 threadlocal是一个线程内部的存储类,可以在指定线程内存储数据,数据存储以后,只有指定线程可以得到存储数据 ThreadLocal提供了线程内存储变量的能力,这些变量不同之处在于每一个线程读取的变量是对应的互相独立的。通过get和set方法就可以得到当前线程对应 ...
分类:
其他好文 时间:
2020-07-20 22:51:42
阅读次数:
83