mq问题收集-编程思维

MQ问题收集 MQ的优缺点 优点: 异步处理:例如短信通知、终端状态推送、App推送、用户注册等 数据同步:业务数据推送同步 重试补偿:记账失败重试 系统解耦:通讯上下行、终端异常监控、分布式事件中心 流量消峰:秒杀场景下的下单处理 发布订阅:HSF的服务状态变化通知、分布式事件中心 高并发缓冲:日志服务、监控上报 使用消息队列比较核心的作用就是:解耦、异步、削峰。 缺点: 系统可用性降低

【转载】zookeeper架构及fastleaderelection机制-编程思维

【转载】Zookeeper架构及FastLeaderElection机制 本文介绍了Zookeeper的架构,并组合实例分析了原子广播(ZAB)协议的原理,包括但不限于Zookeeper的读写流程,FastLeaderElection算法的原理,ZAB如何保证Leader Failover过程中的数据一致性。 原创文章,转载请务必将下面这段话置于文章开头处。 本文转发自技术世界,原文链接 ht

面试杂谈:面试程序员时都应该考察些什么?<转>-编程思维

    一般来说,一线成熟企业技术岗位的典型招聘流程分为以下几个步骤: 初筛:一般由直接领导的技术经理或HR进行,重点考察教育和工作经历 一面:一般由可能直接与之共事的工程师进行,重点考察基础和工作能力 二面:一般由直接领导的技术经理进行,重点考察技术深度、广度和发展潜力 HR面:由人力资源部门进行,重点考察入职时间、职业规划、薪资要求等 当然,各个公司情况是不同的,有的公司可能会在面试前

java 双亲委派与类加载器-编程思维

JAVA 双亲委派与类加载器 双亲委派 虚拟机在加载类的过程中需要使用类加载器进行加载,而在Java中,类加载器有很多,那么当JVM想要加载一个.class文件的时候,到底应该由哪个类加载器加载呢? 这就不得不提到”双亲委派机制”。 首先,我们需要知道的是,Java语言系统中支持以下4种类加载器: Bootstrap ClassLoader 启动类加载器 Extention ClassLoad

秒杀商品设计-编程思维

秒杀商品设计 前端限制 前端控制,不能重复点击 精简sql 典型的一个场景是在进行扣减库存的时候,传统的做法是先查询库存,再去update。 这样的话需要两个sql,而实际上一个sql我们就可以完成的。 可以用这样的做法: update miaosha_goods set stock =stock-1 where goos_id ={#goods_id} and version = #{ve

jvm 逃逸分析 同步缺省 标量替换 栈上分配_hongdada-编程思维

简介 Java 程序运行时,JVM 会将 .class 字节码转换成机器能够识别的指令,指令转换过程会产生耗时,延缓程序的运行速度,为了解决这种问题出现了「JIT(即时编译)」技术。JIT 主要有两个功能: 缓存「Hot Spot Code(热点代码:频繁运行的方法或代码块)」对应的机器指令,方便下次调用。 代码编译优化。 而在 JIT 的代码优化过程中,最重要的就是「逃逸分析(Escape

zookeeper 问题收集_hongdada-编程思维

ZK 明明有了有序的指令队列,为什么还要用 zxid来辅助排序? 没理解这题目 ZAB 协议要求保证事务的顺序,因此必须将每一个事务按照 ZXID 进行先后排序然后处理 ZK的Watcher机制 监听工作原理:ZooKeeper 的 Watcher 机制主要包括客户端线程、客户端 WatcherManager、 Zookeeper 服务器三部分。客户端在向 ZooKeeper 服务器注册的同时,

【转载】详解 seata at 模式事务隔离级别与全局锁设计_hongdada-编程思维

我们知道 Seata 的事务是一个全局事务,它包含了若干个分支本地事务,在全局事务执行过程中(全局事务还没执行完),某个本地事务提交了,如果 Seata 没有采取任务措施,则会导致已提交的本地事务被读取,造成脏读,如果数据在全局事务提交前已提交的本地事务被修改,则会造成脏写。 由此可以看出,传统意义的脏读是读到了未提交的数据,Seata 脏读是读到了全局事务下未提交的数据,全局事务可能包含多个本

【转载】阿里经典面试题:消息队列的消费幂等性如何保证_hongdada-编程思维

消息中间件是分布式系统常用的组件,无论是异步化、解耦、削峰等都有广泛的应用价值。我们通常会认为,消息中间件是一个可靠的组件——这里所谓的可靠是指,只要我把消息成功投递到了消息中间件,消息就不会丢失,即消息肯定会至少保证消息能被消费者成功消费一次,这是消息中间件最基本的特性之一,也就是我们常说的“AT LEAST ONCE”,即消息至少会被“成功消费一遍”。 举个例子,一个消息M发送到了消息中间件

腾讯暑期日常实习前端面试_windrunnermax-编程思维

腾讯暑期日常实习前端面试 我是23届毕业的,想找个暑假的实习,但是今年是21年所以只能走日常实习,看了看没有多少公司要日常实习的,只有腾讯、字节、小米、美团招日常实习,所以我先投了腾讯和美团试试,这次是腾讯的IEG部门捞的我,对没错我就是那个填无意向的憨憨。 一面 一面约的时间是在2021-03-09 15:00,面试面了51 min,本身自我感觉良好的,写了一年博客,基础都学个七七八八,但是!

美团暑期日常实习前端面试_windrunnermax-编程思维

美团暑期日常实习前端面试 这次面的是美团基础研发平台的大数据分析部门,好家伙这个名字一听就很牛逼,其实我早就投递简历了,但是一直没做笔试,所以这个流程就走不下去,上个周六做了做笔试,在此点名表扬美团,0 AC都给面试机会了哈哈。 一面 一面约的时间是在2021-03-29 17:00,面试面了40 min,没想到我笔试0 AC都有面试机会,并且约面试约得这么快,大中午的一个电话就打来了约面试,一

字节跳动暑期日常实习前端面试_windrunnermax-编程思维

字节跳动暑期日常实习前端面试 这次面试的字节跳动的幸福里部门,本来我是不想面字节跳动的,毕竟字节的算法难度是公认的高,而这又是我的薄弱环节哈哈,不过群里加了个老哥非得让我试试,那我就试试吧哈哈哈,不过听说电商和教育部门更简单一些,有点上了贼船的感觉。 一面 一面约的时间是在2021-03-31 18:00,面试面了43 min,这个时间点就很尴尬,我面完肯定就差不多七点了,食堂就没饭了,身为山科

百度实习生前端面试面经_windrunnermax-编程思维

百度实习生前端面试 这次面试的是ACG百度智能云事业群产业创新业务部的前端实习岗位,当时主要是浩泽老哥在群里招呼人了,我就投了个简历,看看寒假可以去实习。 一面 一面是在2020.11.10 15:00,面试小姐姐很漂亮哈哈,不过还是很紧张,毕竟这么久没有和面试官对线了。面试大概是50多分钟,面试小姐姐的电脑没电了,最后一个柯里化的编程题我写了之后发给小姐姐的,好家伙老紧张了,按键盘都按不明白了

interview que_快鸟-编程思维

百度: MySQL InnoDB存储的文件结构 索引树是如何维护的? 数据库自增主键可能的问题 Redis的并发竞争问题如何解决了解Redis事务的CAS操作吗 分析线程池的实现原理和线程的调度过程 动态代理的几种方式 Spring AOP与IOC的实现 为什么CGlib方式可以对接口实现代理? RMI与代理模式 Dubbo的底层实现原理和机制 描述一个服务从发布到被消费的详细过程 算法方面考

inteview que2_快鸟-编程思维

1、spring的缓存,mybatis缓存a、基于注解的方式 三种注解b、mybatis分为一级session和二级缓存mapperc、采用LRU算法(近期最少使用) http://www.iteye.com/topic/1112327/ 对缓存并发同步采用jdk的ReadWriteLock 读写锁源码:mapper调用、代理mapper调用、mapper的方法、sqlsession、缓存(二级

实际经验+沟通表达能力强,协作能力强,这些甚至比专业技能更重要_littlevigra-编程思维

案例三,回答问题时,话很多,但没法说到点子上。     比如我问,你在数据库层面有过哪些实际的优化经验,同时再强调下,是实际经验,而不是理论经验。     这时如果候选人开门见山地说,没项目经验,但看过一些技术文档,随后再说下看到的一些要点,这样最多就是让面试官感觉这部分能力有些欠缺。     我们也知道,候选人不可能十全十美,在某个方面没有实际经验,这很正常,更况且有时候我们问的是加分项,比如

java基础部分二_hongdada-编程思维

1.&与&& &位运算符,&&逻辑与运算符&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式 2.switch语句能否作用在byte上,能否作用在long上,能否作用在String上?  在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量,整数表达式可以是int基本类型或Intege

网路通信问题收集_hongdada-编程思维

1.TCP/IP协议中三次握手机制具体是什么?窗口滑动机制的作用和基本机制是什么? 第一次握手:建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SEND状态,等待服务器的确认;第二次握手:服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(