3 world6

尚未进行身份认证

暂无相关简介

等级
TA的排名 4w+

数据结构与算法之美——链表

如何优雅的写出链表代码?6大学习技巧一、理解指针或引用的含义1.含义:将某个变量(对象)赋值给指针(引用),实际上就是就是将这个变量(对象)的地址赋值给指针(引用)。2.示例:p—>next=q;表示p节点的后继指针存储了q节点的内存地址。p—>next=p—>next—>next;表示p节点的后继指针存储了p节点的下下个节点的内存地址。二、警惕指针丢失和内存泄漏(单链表)1.插入...

2019-10-12 15:01:08

学习链表

1.如何分别用链表和数组实现LRU缓冲淘汰策略?1)什么是缓存?缓存是一种提高数据读取性能的技术,在硬件设计、软件开发中都有着非广泛的应用,比如常见的CPU缓存、数据库缓存、浏览器缓存等等。2)为什么使用缓存?即缓存的特点缓存的大小是有限的,当缓存被用满时,哪些数据应该被清理出去,哪些数据应该被保留?就需要用到缓存淘汰策略。3)什么是缓存淘汰策略?指的是当缓存被用满时清理数据的优先顺序。4)有哪些...

2019-10-10 16:55:44

秒杀系统的设计五大原则

最近订阅了极客时间|如何设计一个秒杀系统,这里是每章的学习笔记。链接:如何设计一个秒杀系统架构原则:4要1不要!1、数据要尽量少。2、请求数要尽量少。3、请求路径要短。4、依赖要尽量少。5、不要有单点。 数据要尽量少:1.是指用户请求的数据能少就少,请求包括给系统发的request及response。因为这些request和r...

2018-11-21 21:32:53

mysql uftb8mb4 储存 emoji 表情失败

记一次生产事故踩坑。血淋淋的惨痛教训众所周知mysql存emoji表情要用utf8mb4这个字符集OK没问题,设置 nick_name为utf8mb4varchar(50)测试的结果:   emoji表情储存成功没有问题 完全oj8k 发生产! 微信公众号做了推送,为了抗住流量,还准备了100台服务器。晚上监控流量,服务器各项指标正常。但...

2018-10-22 15:06:57

Java 编码代码规范

1、HttpServletRequest等常用参数要放到参数列表的最前面,自定义的参数实体靠后放2、变量名要符合规范,通俗易懂,例如:记录日志的字符串就叫logMessage,不要叫或者加什么str了。3、凡是出现数字或者字符串的地方,考虑这些数字和字符串能否放到一个接口实体里去,这样代码检测的时候不会报一下魔法数字之类的错误。4、把一个实体的值传到另一个实体的...

2018-07-24 17:41:21

前后端配合小结

后台返回的json数据字段最好只有三种,status,message,data.具体情况如下:如果请求的结果是success的,不论调用的接口返回何种报错都是 success,结果的报错直接透传到前端,让前端的同学去处理,后端不要做任何处理。此时返回status、 message 、data。 如果请求的结果的fail的,比如调用接口时返回异常了...

2018-07-24 17:25:11

分布式环境下的解决方案——分布式锁

分布式锁,也就是在多进程情况下的锁。 多进程的锁跟多线程的锁有什么相同的地方呢? 需要有存储锁的空间,并且锁的空间是可以访问到的。 锁需要被唯一标识。 锁要有至少两种状态。 储存空间:锁是一个抽象的概念,锁的实现,需要依存于一个可以存储锁的空间。在多线程中是内存,在多进程中是内存或者磁盘。更重要的是,这个空间是可以被访问到的。多线程中,不同的线程都可以访问到堆...

2018-07-23 21:56:23

深入理解 CAS 及 ABA问题

CAS,CompareAndSwap,即比较并交换。CAS是Atomic包的核心,更是整个J.U.C包的基石。 本文将通过AtomicInteger这个类,来分析是如何通过CAS来保证Atomic的原子性的。直接进入 AtomicInteger这个类,可以看到AtomicInteger中定义了一个变量value并且用valatile来修饰的,还有个静态...

2018-07-23 21:56:16

JUC之 底层核心AQS

AQS,AbstractQueuedSynchronizer,即队列同步器。它是构建锁或者其他同步组件的基础框架(如ReentrantLock、ReentrantReadWriteLock、Semaphore等) AQS使用一个int类型的成员变量state来表示同步状态,当state>0时表示已经获取了锁,当state=0时表示释放了锁。它提供了三个方法(getState()、...

2018-07-23 21:56:11

ReentrantLock 的实现原理

AQS的功能可以分为独占和共享,ReentrantLock实现了独占功能。ReentrantLock实现了Lock接口,加锁和解锁都需要显式写出,注意一定要在适当时候unlock。  ReentrantLock对比synchronized和synchronized相比,ReentrantLock用起来会复杂一些。在基本的加锁和解锁上,两者是一样的,所以无特殊情况下,推荐使用sy...

2018-07-23 21:56:03

redis 实现分布式锁的演进

在分布式系统中,常常会遇到一些要使用分布式锁的业务场景。比如说:每分钟要执行关闭未支付订单的定时任务,在集群的环境下,如果不做处理,每台服务器都会去执行这个定时任务,显然每个时间段的定时任务只需要执行一次,并不需要每台服务器都去执行,使用分布式锁来控制让单台服务器来执行这个定时任务势在必行实现分布式锁的方式有很多,zookeeper,数据库,或者是其它手段都可以,本文着重分析使用re...

2018-05-21 11:21:41

集群 跟 分片 有什么区别

我们在谈到 服务器多实例的时候,常常会说到 Tomcat集群 ;但为什么 谈到 多实例redis的时候没有说redis集群呢?是因为类似Tomcat这样的集群 强调的是 机器提供的服务 而redis 这样的“集群”强调的是 数据,(因为redis主要是来存数据的嘛)将数据分为一片一片的区域,就称为分片,是不是很形象?所以redis 集群 一般会...

2018-05-17 20:00:19

zookeeper的zab协议工作原理之 崩溃恢复模式

上篇 zookeeper的zab协议工作原理之 原子广播 介绍了zookeeper广播的原理。下篇来详细的讲解崩溃恢复模式的原理一、什么情况下zab协议会进入崩溃恢复模式?  1、当服务器启动时  2、当leader 服务器出现网络中断,崩溃或者重启的情况  3、当集群中已经不存在过半的服务器与Leader服务器保持正常通信。二、zab协议进入崩溃恢复模式会做什么?  1、...

2018-04-09 22:02:52

zookeeper的zab协议工作原理之原子广播

说zab协议之前必须提一下paxos协议 paxos协议主要就是如何保证在分布式环网络环境下,各个服务器如何达成一致最终保证数据的一致性问题ZAB协议,基于paxos协议的一个改进。zab协议为分布式协调服务zookeeper专门设计的一种支持崩溃恢复的原子广播协议zookeeper并没有完全采用paxos算法,而是采用zab Zookeeperatomicbroadcast zab协议...

2018-04-09 10:41:57

zookeeper的选举机制

一、Zookeeper选举机制Zookeeper虽然在配置文件中并没有指定master和slave但是,zookeeper工作时,会选出一个节点为leader,其他则为follower下面来聊聊是如何选出leader的。leader选举的算法有三种:leaderElection/AuthFastLeaderElection/FastLeaderElection其中FastLeaderElectio...

2018-04-08 21:05:57

如何用zookeeper 实现分布式锁

一、分布式锁介绍       分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。二、分布式锁设计原理图1、基于排它锁:让所有的客户端(ABC)都在指定的Locks节点下创建一个同名的节点lock,利用ZK节点名称的唯一性来做限制,谁创建成功了谁就获取到了锁,否则就是没有获取到。这种设计比较简单2、基于共享锁:1、在当前节点下创建临时...

2018-04-08 20:48:59

详解zookeeper的配置文件

zoo.cfg配置文件分析tickTime=2000 zookeeper中最小的时间单位长度(ms) initLimit=10 follower节点启动后与leader节点完成数据同步的时间 syncLimit=5leader节点和follower节点进行心跳检测的最大延时时间 dataDir=/tmp/zookeeper 表示zookeeper服务器存储快照文件的目录 dataLogD...

2018-03-29 10:16:55

动物园园长 zookeeper

zookeeper是一个开源的分布式协调服务中间件zookeeper能做什么?数据的发布/订阅(配置中心:disconf)、负载均衡(dubbo利用了zookeeper机制实现负载均衡)、命名服务、master选举(kafka、hadoop、hbase)、分布式队列、分布式锁zookeeper的特性:顺序一致性:从同一个客户端发起的事务请求,最终会严格按照顺序被应用到zookeeper中原...

2018-03-27 11:54:51

分布式相关基础理论

分布式环境下面临的问题:网络通信:网络本身的不可靠性,因此会涉及到一些网络通信问题三态:分布式架构里面,除了成功、失败、超时分布式事务:ACID特性中心化和去中心化:冷备或者热备经典的CAP/BASE理论CAPC(一致性Consistency):所有节点上的数据,时刻保持一致A可用性(Availability):每个请求都能够收到一个响应,无论响应成功或者失败...

2018-03-27 11:42:54

什么是Restful

Restful一直都在听,一直都在用,但就是搞不懂什么是restful,因为说不出个所以然出来。为什么说一直都在用呢,我们随便打开一个大型网站的网址,基本都是restful风格的。比如:http://www.imooc.com/course/programdetail/pid/31restful有什么用呢?使用web标准来做一个准则和约束。RESTful的基本概念1.在...

2018-03-22 11:45:02

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。