在分布式环境中,是有CAP理论的,也就是一致性,可用性和分区容错性,很多分布式服务只能满足其中的两个。 对于zookeeper来说,是满足一致性和分区容错性的也就是CP,zookeeper是有leader 和 follower的概念的,leader挂掉会导致整个zookeeper集群不可用,知道集群重新选取leader,集群才恢复可用,这个漫长的选举时间对于某些系统是不能容忍的。 Eureka满足的是可用性和分区容错性,也就是AP,Eureka是没有leader这个概念的,当一个服务挂了,客户端会连接其他的Eure…
内存溢出:申请不到足够的内存。 内存泄漏:无法释放已申请的内存。 内存泄漏会造成内存不够,从而使得申请不到足够的内存导致内存溢出。
什么是threadlocal?为每个线程提供一个独立变量副本来解决共享变量并发访问安全的问题。 threadlocal 的实现原理? 结构是这样的:每一个Thread 维护一个ThreadLocalMap映射表,key是ThreadLocal, value 就是真正存储的Object,ThreadLocal本身并不存储值,而是作为一个key来让线程从ThreadLocalMap获取值,并且key是弱引用,弱引用在GC时会被回收。 你在项目中是如何使用的?在使用SimpleDateFormat会用到,因为Simple…
zookeeper 的应用场景 发布订阅 master 选举 分布式锁 Zookeeper 怎么实现分布式锁 多个请求过来,在zk上创建临时节点,如果创建成功即可说明获得了锁,否则创建失败。另外当很多请求来获得锁时,可那么创建多个临时节点,并且每一个节点去监听前一个节点的状态。 Zookeeper 怎么保证数据的一致性 zk保证的是一致性和分区容错性,主要是通过ZAB(原子广播协议)来做的,基于此实现了主备模式下开保持集群中各个副本的数据一致性 ZAB协议包含两个部分 消息广播, Leader接收消息,同步到各个…
Get 请求和 Post请求的区别 Get 方法参数长度有限制,Post方法参数没限制 Get 方法参数是暴露在url上的,而Post 方法是放在requestBody中的 Get 请求会被缓存,而Post请求不会被缓存 Get 请求是幂等的,而Post则不一定 get 方法可以拥有requestbody吗,post请求可以带上url参数吗? 是可以在技术上实现的,可以把请求类比为汽车,get 请求汽车的标签为get ,把url放在车顶上,而Post请求则贴上post标签,把数据放在车里面,当然,在get 汽车上可…
mvn clean 清空产生的项目,例如 target 目录 mvn compile 对项目进行编译 mvn package 对项目进行打包 mvn install 对项目进行安装(包含 mvn compile 和 mvn package 生成jar,放到本地仓库) mvn deploy 对项目进行2,3,4 操作,并生成jar包到私服