03 2018 档案
摘要:一 TCP三次握手 (右图为简化版的) 起初服务器和客户端都为CLOSED状态。在通信开始前,双方都得创建各自的传输控制块(TCB)。 服务器创建完TCB后遍进入LISTEN状态,此时准备接收客户端发来的连接请求。 第一次握手 客户端向服务端发送连接请求报文段。该报文段的头部中SYN=1,ACK=0
阅读全文
摘要:一 什么是dubbo 下面从Dubbo官网直接拿来,看一下基于RPC层,服务提供方和服务消费方之间的调用关系,如图所示: 上述节点简单介绍以及他们之间的关系: Container: 服务运行容器,负责加载、运行服务提供者。必须。 Provider: 暴露服务的服务提供方,会向注册中心注册自己提供的服
阅读全文
摘要:一 分布式中的CAP怎么理解 1 CAP定义 C(Consistency)一致性 指的是所有节点在同一时间的数据完全一致 A(Availability)可用性 指服务一直可用,而且是正常响应时间 P(Partition Tolerance)分区容忍性 指在遇到某节点或网络分区故障的时候,仍然能够对外
阅读全文
摘要:一 进程和线程 什么是进程 进程是程序的一次执行过程,是系统运行程序的基本单位。系统运行一个程序即是一个进程从创建, 运行到消亡的过程。 在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程。 如下图所示,
阅读全文
摘要:一 mq简介(message queue) 我们可以把消息队列看作是一个存放消息的容器,当我们需要使用消息的时候,直接从容器中取出消息供自己使用即可。由于队列 Queue 是一种先进先出的数据结构,所以消费消息时也是按照顺序来消费的。 通过消息队列,应用程序可独立地执行-它们不需要知道彼此的位置,或
阅读全文
摘要:一 引言 当前memcached,redis这类分布式kv缓存已经非常普遍。我们知道memcached的分布式其实是一种"伪分布式",也就是它的服务器节点之间其实是无关联的,之间没有网络拓扑关系,由客户端来决定一个key要存放在哪台机器。 具体来讲,假设我们有多台memcached服务器,编号分别为
阅读全文
摘要:1 synchronized底层原理 我们先通过反编译下面的代码来说明问题。 public class SynchronizedDemo { public void method() { synchronized (this) { System.out.println("Method 1 start
阅读全文
摘要:一 mysql的悲观锁 - 以行锁做示例 每次拿数据的时候都认为别的线程会修改数据,所以每次拿数据的时候都会给数据上锁。上锁之后,当别的线程想要拿数据时,就会阻塞。直到给数据上锁的线程将事务提交或者回滚。传统的关系数据库里面很多用了这种锁机制,比如行锁,表锁,共享锁,排他锁等,都是在做操作之前先上锁
阅读全文