小白爬坑之旅


  • Home

  • Categories

  • Archives

  • Tags

Zookeeper Session机制

Posted on 2019-01-12 | In Zookeeper

Session 指的是 ZooKeeper 服务器与客户端会话。在 ZooKeeper 中,一个客户端连接是指客户端和服务器之间的一个 TCP 长连接。客户端启动的时候,首先会与服务器建立一个 TCP 连接,从第一次连接建立开始,客户端会话的生命周期也开始了。通过这个连接,客户端能够通过心跳检测与服务器保持有效的会话,也能够向Zookeeper服务器发送请求并接受响应,同时还能够通过该连接接收来自服务器的Watch事件通知。

Read more »

Zookeeper Watcher 机制

Posted on 2019-01-12 | In Zookeeper

Watcher(事件监听器),是Zookeeper中的一个很重要的特性。Zookeeper允许用户在指定节点上注册一些Watcher,并且在一些特定事件触发的时候,ZooKeeper服务端会将事件通知到感兴趣的客户端上去,该机制是Zookeeper实现分布式协调服务的重要特性。

Read more »

Zookeeper ZAB 协议

Posted on 2019-01-12 | In Zookeeper

ZAB(ZooKeeper Atomic Broadcast 原子广播) 协议是为分布式协调服务 ZooKeeper 专门设计的一种支持崩溃恢复的原子广播协议。 在 ZooKeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性,基于该协议,ZooKeeper 实现了一种主备模式的系统架构来保持集群中各个副本之间的数据一致性。

Read more »

SkyWalking Collector源码浅析

Posted on 2018-11-27 | In SkyWalking

SkyWalking Collector 入口

SkyWalking Collector 入口是 org.apache.skywalking.oap.server.starter.OAPServerStartUp 的 main() 方法。

Read more »

SkyWalking Agent源码浅析

Posted on 2018-11-26 | In SkyWalking

SkyWalking Agent 入口

SkyWalking Agent 采用 JavaAgent 机制,其相关原理可自行 google。
SkyWalking Agent 入口在 org.apache.skywalking.apm.agent.SkyWalkingAgent 的 premain() 方法。主要看以下三行代码:

Read more »

Apache SkyWalking 使用指南

Posted on 2018-11-21 | In 工具使用

简介

SkyWalking 是针对分布式系统的APM(应用性能监控)系统,特别针对微服务、cloud native 和容器化(Docker, Kubernetes, Mesos)架构, 其核心是个分布式追踪系统。主要提供以下功能:

Read more »

SpringBoot源码解析二

Posted on 2018-10-27 | In SpringBoot

前言

要说 SpringBoot 有什么优点的话,比较核心的就是简化配置和自动配置了。前面我们分析了 SpringBoot 的启动流程还有一些监听器相关的源码,今天来分析下 SpringBoot 的自动配置具体怎么实现的,以便日后遇到相关错误知道从哪里入手。

Read more »

常量池及字符串对象的创建

Posted on 2018-10-26 | In JAVASE

简介

java 中说到常量池,一般有下面三种:

  1. class文件常量池
  2. 运行时常量池
  3. 字符串常量池
    Read more »

SpringBoot源码解析一

Posted on 2018-10-09 | In SpringBoot

启动流程

1
2
3
4
5
6
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

首先从启动类开始看起,main() 方法很简单,调用 SpringApplication 的静态方法run()。

Read more »

ThreadPoolExecutor

Posted on 2018-04-27 | In JAVASE

简介

  • 对象的创建和销毁需要一定的开销,线程亦是对象,创建线程和销毁线程必然也需要同样的开销。
  • 在某些情况下,线程执行的任务耗时不长,但是任务很多。这样就导致频繁的创建、销毁线程,需要很大的时间开销和资源开销。线程池应运而生。
  • 线程池相当于在这一个池中维护多个线程,需要执行任务时从池中取出一个线程用来执行任务,任务执行完成后将线程放回池中。这样也就减少了开销。
    Read more »
1234
Lollipop

Lollipop

34 posts
13 categories
26 tags
GitHub Email
友情链接
  • YangMao
© 2017 - 2020 Lollipop
Powered by Hexo
Theme - NexT.Mist