摘要: 福哥答案2020-08-06: 参考答案:A.借助消息中间件,通过发布者订阅者模式来进行任务分配B.master-slave 部署,由master 来分配任务C.不借助任何中间件,且所有节点均等。通过数据库的 update returning,从而实现节点之间任务的互斥 [知乎答案:](https: 阅读全文
posted @ 2020-08-06 20:51 福大大架构师每日一题 阅读(166) 评论(0) 推荐(0)
摘要: 福哥答案2020-08-05: A.获取微博通过 pull 方式还是push 方式。B.发布微博的频率要远小于阅读微博。C.流量明星的发微博,和普通博主要区分对待,比如在 sharding的时候,也要考虑这个因素。 访问流量超过了系统阈值,导致一大堆请求在内存里面排队;并且前端可能已经超时,用户不断 阅读全文
posted @ 2020-08-06 16:48 福大大架构师每日一题 阅读(256) 评论(0) 推荐(0)
摘要: 福哥答案2020-08-04: 简单工厂 -- 不暴露创建对象的细节,并提供一个创建对象的通用接口。工厂方法 -- 定义一个创建对象的接口,但由工厂子类决定要创建哪个类的对象。抽象工厂-- 定义多种创建对象的接口。符合开闭原则,新增产品需要修改接口。 简单工厂:一个工厂对应一个接口。工厂方法:多个具 阅读全文
posted @ 2020-08-06 16:47 福大大架构师每日一题 阅读(119) 评论(0) 推荐(0)
摘要: 福哥答案2020-08-03: 此答案是根据mysql数据库生成某种语言的代码。 1.mysql涉及到的数据库的表INFORMATION_SCHEMA.TablesINFORMATION_SCHEMA.Columns 2.读数据库的相关信息。数据库信息:属性:【连接字符串】,【数据库类型】(mysq 阅读全文
posted @ 2020-08-06 16:45 福大大架构师每日一题 阅读(166) 评论(0) 推荐(0)
摘要: 福哥答案2020-08-02: 首先根据目的IP和路由表决定走哪个网卡,再根据网卡的子网掩码地址判断目的IP是否在子网内。如果不在则会通过arp缓存查询IP的网卡地址,不存在的话会通过广播询问目的IP的mac地址,得到后就开始发包了,同时mac地址也会被arp缓存起来。 知乎答案:大体上思路差不多, 阅读全文
posted @ 2020-08-06 16:44 福大大架构师每日一题 阅读(219) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-31: BST 的中序遍历是升序序列。1.递归法。时间复杂度:O(N),遍历了整个树。空间复杂度:O(N),用了一个数组存储中序序列。2.迭代法。时间复杂度:O(H+k),其中 H 指的是树的高度,由于我们开始遍历之前,要先向下达到叶,当树是一个平衡树时:复杂度为 O(log 阅读全文
posted @ 2020-08-06 16:43 福大大架构师每日一题 阅读(312) 评论(0) 推荐(0)
摘要: 福哥答案2020-08-01: 恢复到任意时间点以定时的做全量备份,以及备份增量的 binlog 日志为前提。恢复到任意时间点首先将全量备份恢复之后,再此基础上回放增加的 binlog 直至指定的时间点。 阅读全文
posted @ 2020-08-06 16:37 福大大架构师每日一题 阅读(389) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-30: 可以从代码开发、测试保障、线上质量三个方面来保障。 在代码开发阶段,有单元测试、代码Review、静态代码扫描等;测试保障阶段,有功能测试、性能测试、高可用测试、稳定性测试、兼容性测试等;在线上质量方面,有灰度发布、紧急回滚、故障演练、线上监控和巡检等。 阅读全文
posted @ 2020-08-06 16:29 福大大架构师每日一题 阅读(125) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-18: 假设数组是[3,5,3,5],目标值是8。答案是否可重复,题里没说,所以分3种情况。如下: 1.重复。答案是【0,1】【0,3】【1,2】【2,3】,序号组合,共4种组合。解法如下:1.1.嵌套遍历。时间复杂度:O(n^2)。1.2.哈希法。键存数组元素值,值存出现次 阅读全文
posted @ 2020-08-06 16:25 福大大架构师每日一题 阅读(706) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-19: 1.内置map。单条数据量不大时,可以用内置map,一条一条插入2000万数据,耗费至少5秒时间。单条数据量过大,这种方法用不了。2.内存数据库,比如redis。单条数据量不大时,比如一条数据1k,总共20g,单个redis就行。单条数据量大,用分布式。3.布隆过滤器 阅读全文
posted @ 2020-08-06 16:23 福大大架构师每日一题 阅读(301) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-17: 声明:该总结为网友朋友总结,本人是归纳成文,方便各网友学习交流。 在一个高并发系统中 如果突然出现一个应用或者说一个服务突然变得很慢,应该怎么排查? 这个是考线上排查问题能力,没有标准答案,作为开发,假设这种情景出现你怎么诊断问题? 首先:想知道,在实际情况下,怎么知 阅读全文
posted @ 2020-08-06 16:13 福大大架构师每日一题 阅读(184) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-16: 1.快慢指针。快指针先走n步,然后快慢指针同时走,直到快指针走到尾。2.两次遍历。第一次遍历获取链表长度,然后计算出序号,然后遍历获取序号下的元素。3.数组保存。遍历一次保存到数组,然后计算序号,这样就能获取到元素。4.栈保存。遍历一次链表,遍历的过程中将元素放到一个 阅读全文
posted @ 2020-08-06 16:11 福大大架构师每日一题 阅读(270) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-15: 死锁:是指两个或两个以上的进程(或线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。产生死锁的必要条件:1、互斥条件:所谓互斥就是进程在某一时间内独占资源。2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不 阅读全文
posted @ 2020-08-06 15:50 福大大架构师每日一题 阅读(151) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-14: 热变冷: 有x台机器tag设置为hot。 有y台机器tag设置为cool。 hot集群中只存最近两天的。 有一个定时任务每天将前一天的索引标记为cool。 es看到有新的标记就会将这个索引迁移到冷集群中, 这都是es自动完成的。 冷变热:缓存预热。 阅读全文
posted @ 2020-08-06 15:40 福大大架构师每日一题 阅读(128) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-28: 1.二分法。2.手算法。3.牛顿迭代法。基础是泰勒级数展开法。4.泰勒级数法。5.平方根倒数速算法,卡马克反转。基础是牛顿迭代法。 golang代码如下: package test28_sqrt import ( "fmt" "math" "strconv" "tes 阅读全文
posted @ 2020-08-06 15:35 福大大架构师每日一题 阅读(377) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-29: key 太长会导致一个页当中能够存放的 key 的数目变少,间接导致索引树的页数目变多,索引层次增加,从而影响整体查询变更的效率。 索引字段大小限制关于innodb_large_prefix这个配置的限制:对于MySQL5.7.7之前,这个值默认是False,之后(包 阅读全文
posted @ 2020-08-06 15:08 福大大架构师每日一题 阅读(302) 评论(0) 推荐(0)
摘要: 此答案来自群成员:使用一致性hash实现添加节点,并进行数据迁移.数据迁移完成之前保留原有的节点路由信息.每次添加节点重新计算key值所在hash,hash到新节点的key可以先复制一份到新的节点,并标记旧节点的key待删除.直到所有的key都计算好迁移完毕,切换新旧节点信息,删除掉所有旧节点多余的 阅读全文
posted @ 2020-08-06 14:58 福大大架构师每日一题 阅读(202) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-26: 功能用户输入user username、pass password注册,注册后输入dir查看服务器文件列表,输入get filename path下载文件到指定路径。 思路①客户端建立连接,打开输入输出流,开循环支持多次数据交换,直到用户输入退出命令,再关闭流和连接。 阅读全文
posted @ 2020-08-06 14:53 福大大架构师每日一题 阅读(216) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-25: 1.链表反转。反转,输出,反转。2.递归。3.数组。遍历存数组,然后反向遍历数组。4.栈。遍历存栈,然后pop栈输出。 golang代码采用第2种方法。代码如下: package test27_reverseprint import ( "fmt" "testing" 阅读全文
posted @ 2020-08-06 14:51 福大大架构师每日一题 阅读(206) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-24: 同步算法基于 ZAB 协议,一种快速 Paxos 算法。 快速Paxos算法Paxos算法可能出现死循环,就是在两个Proposer总是在交替prepare。并且,Paxos算法在出现竞争的情况下,其收敛速度很慢,甚至可能出现活锁的情况,例如当有三个及三个以上的pro 阅读全文
posted @ 2020-08-06 14:34 福大大架构师每日一题 阅读(161) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-22: 1.主从同步缓冲区设定大小,如果进行全量复制耗时太长,进行部分复制时发现数据已经存在丢失的情况,必须进行第二次全量复制,致使slave陷入死循环状态。在全量复制的时候,最好做好监控。2.有时候,redis存储过多,全量同步变得不可接受。这时考虑如果增量复制时,发生阻塞 阅读全文
posted @ 2020-08-06 14:21 福大大架构师每日一题 阅读(96) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-23: Redis 在完成初始化全局服务器配置,加载配置文件,初始化服务器,开始加载持久化的数据到内存中。如果启用了 appendonly 了,则Redis从 appendfile 加载数据,否则就是开启了rdb,从dbfile 加载数据。appendfile 中保存的是re 阅读全文
posted @ 2020-08-06 14:16 福大大架构师每日一题 阅读(114) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-20: 1.由于 Redis 是内存数据库,短时间内大量增加数据,可能导致内存不够用。2.redis是单线程的,单台服务器无法充分利用多核服务器的CPU。3.遇到大量查询时容易阻塞。4.缓存和数据库双写一致性问题。5.缓存雪崩问题。6.缓存击穿问题。7.缓存的并发竞争问题。8 阅读全文
posted @ 2020-08-06 14:10 福大大架构师每日一题 阅读(152) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-21: 1.从服务发送一个sync同步命令给主服务要求全量同步。2.主服务接收到从服务的sync同步命令时,会fork一个子进程后台执行bgsave命令(非阻塞)快照保存,生成RDB文件,并将RDB文件发送给从服务。3.从服务再将接收到的RDB文件载入自己的redis内存。4 阅读全文
posted @ 2020-08-06 13:53 福大大架构师每日一题 阅读(217) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-09: 1.参数说明 slow_query_log 慢查询开启状态slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)long_query_time 查询超过多少秒才记录 查看慢查询相关 阅读全文
posted @ 2020-08-06 13:50 福大大架构师每日一题 阅读(121) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-11: 1.保存位置:session服务端。cookie客户端。2.安全性:session相对安全,cookie相对不安全。3.存储类型:session能够存储任意的对象,cookie只能存储String类型的对象。4.大小限制:session没有大小限制。cookie有大小 阅读全文
posted @ 2020-08-06 13:48 福大大架构师每日一题 阅读(173) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-10:此答案来自群成员: SQL提高查询效率的几点建议 1.如果要用子查询,那就用EXISTS替代IN、用NOT EXISTS替代NOT IN。因为EXISTS引入的子查询只是测试是否存在符合子查询中指定条件的行,效率较高。无论在哪种情况下,NOT IN都是最低效的。因为它对 阅读全文
posted @ 2020-08-06 13:43 福大大架构师每日一题 阅读(153) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-13: 有人觉得第一种方法好,也有人觉得第二种方法好。如果搜索字段远小于显示字段,比如搜索字段为3个,显示字段有20个,这个时候用第一种方法好。es+hbase,一般这样搭配。如果搜索字段跟显示字段接近,或者一条【行记录】的数据量并不大,这个时候用第二种方法好。 回答1:ES 阅读全文
posted @ 2020-08-06 13:37 福大大架构师每日一题 阅读(490) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-12: 回表:先定位【主键值】,再定位【行记录】,扫描了两次B+树,这就是回表。 避免方法:用覆盖索引可以避免回表。将被查询的字段,建立到联合索引里去。explain的输出结果Extra字段为Using index时,能够触发覆盖索引。 阅读全文
posted @ 2020-08-06 13:31 福大大架构师每日一题 阅读(251) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-07: 1.同服务跨库。表名称带上库名。SELECT * FROM 数据库名称1.表名称 JOIN 数据库名称2.表名称 ON 数据库名称1.表名称.tid = 数据库名称2.表名称.tid 2.不同服务跨库。使用federated引擎。在机器A上的数据库A中建一个表B。建表 阅读全文
posted @ 2020-08-06 13:27 福大大架构师每日一题 阅读(291) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-08: 表锁是不会出现死锁的,但锁等待现象是有可能的。行锁是行级别的,有可能出现死锁。环形等待死锁和唯一键死锁 很常见。 避免死锁方法:1.减少事务操作的记录数。2.约定按相同顺序访问记录。3.对事务中要操作的记录进行排序。4.避免使用唯一键约束。5.用表锁,不用行锁。6.在 阅读全文
posted @ 2020-08-06 13:25 福大大架构师每日一题 阅读(228) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-05: 区别:1.可靠性:tcp可靠。udp不可靠。2.连接性:tcp面向连接。udp无连接。3.报文:tcp字节流。udp面向报文。4.传输效率:tcp低。udp高。5.多点通信:tcp一对一通信。udp一对一、一对多、多对一,多对多通信。 应用场景:tcp:(1)文件传输 阅读全文
posted @ 2020-08-06 11:31 福大大架构师每日一题 阅读(280) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-06:表a和表b的字段都是id和tid,数据类型都是int。查询结果顺序上以 表a 为准。1.JOIN。SELECT * FROM a JOIN b ON a.tid = b.tid LIMIT 200 OFFSET 500002.子查询。SELECT * FROM (SEL 阅读全文
posted @ 2020-08-06 11:15 福大大架构师每日一题 阅读(438) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-04:三次握手如下:1.SYN j2.ACK j+1,SYN k3.ACK k+1 time_wait出现在断开连接第四次挥手的时候出现。TIME_WAIT状态存在有两个原因。<1>可靠终止TCP连接。如果最后一个ACK报文因为网络原因被丢弃,此时server因为没有收到AC 阅读全文
posted @ 2020-08-06 10:39 福大大架构师每日一题 阅读(153) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-02: 简单回答: 域名解析。 建立TCP连接。 请求。 处理。 响应。 释放TCP连接。 页面渲染。 中级回答: 域名解析 浏览器DNS缓存。 操作系统DNS缓存。 路由器缓存。 ISP 服务商缓存。 根服务器递归查询。 建立TCP连接。三次握手。 请求。请求报文格式: 请 阅读全文
posted @ 2020-08-06 10:27 福大大架构师每日一题 阅读(98) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-03: 1.双重遍历。时间复杂度是O(N^2)。 2.排序。采用外部排序。时间复杂度是O(NlogN)。 3.遍历加哈希存储。空间换时间,时间复杂度是O(N),空间复杂度是O(N)。这种方法适用于小数据量,在这里用明显不合适。 4.布隆过滤器。根据公式计算,万分之一的失误率需 阅读全文
posted @ 2020-08-06 09:55 福大大架构师每日一题 阅读(1395) 评论(0) 推荐(0)
摘要: 福哥答案2020-07-01: 此答案来自群成员,感谢群员支持。 阅读全文
posted @ 2020-08-06 07:03 福大大架构师每日一题 阅读(297) 评论(0) 推荐(0)