服务框架的几种服务调用形式

1. 同步调用

同步服务调用是最常用的一种服务调用方式,它的工作原理和使用都非常简单,分布式服务框架默认都需要支持这种调用形式。

它的工作原理如下:客户端发起远程服务调用请求,用户线程完成消息序列化之后,将消息投递到通信框架,然后同步阻塞,等待通信线程发送请求并接收到应答之后,唤醒同步等待的用户线程,用户线程获取到应答之后返回。

它的工作原理图如图:

消费者调用服务端发布的接......

mysql存储过程生成随机测试数据

1. 介绍

有时候我们需要一些模拟数据来进行测试,今天简单记录下如何用存储过程生成一些随机数据。

2. 建表

我们新建一张学生表和教师表如下:

CREATE TABLE student(

id INT NOT NULL AUTO_INCREMENT,

first_name VARCHAR(10) NOT NULL,

last_name VARCHAR(10) NOT NULL,

sex VARCHAR(5) NOT NULL,

score INT NOT NULL,

PRIMARY KEY (`id`)

);

CREATE TABLE teacher(

id INT NOT......

分布式基础知识文章索引

1. 介绍

最近看到一些文章不错,这里推荐下。下面每个标题都对应一片文章,我都对其内容做了简单几句话的总结。大家可以点击查看原文。

2. 分布式系统理论基础 - 选举、多数派和租约

原文地址: 分布式系统理论基础 - 选举、多数派和租约

该文主要理解以下的选举算法:

bully选举算法:最基本的选举算法,序号最大的作为leader。缺点是网络分区的时候可能导致有多个leader。

多数派方法:弥补bully选举算法的缺点,网络分化的时候只有具备多数派节点的部分才可能选出leader,这避免了多leader的产生。

租约:就是判断leader是否挂了的时候,设定......

时钟与分布式系统

1. 逻辑时钟和物理时钟

在分布式场景中,我们需要时间来判断不同节点上事件发生的先后顺序。

物理时钟可以用严格的绝对时间来表明事件的发生顺序,但是在分布式环境中,各个节点由于网络等因素无法做到完全一致的时间。即使使用NTP时间同步,也会有纳秒的误差。在这个误差时间内,可能会发生很多事件,那么这些事件的先后顺序就很难判断了。

Time, Clocks and the Ordering of Events in a Distributed System这篇论文的作者Leslie Lamport 在1978年提出逻辑时钟的概念。在分布式环境中,通过一系列规则来定义逻辑时钟的变化。......

IDEA中自定义外部工具external tool

1. javap工具使用说明

我们会使用javap工具来反汇编class字节码文件,查看编译后的字节码命令。其用法如下:

2. 将javap工具集成到IDEA中

为了方便我们分析反汇编的内容,我们可以把该功能集成到IDEA中。打开IDEA的设置,选择external tools。然后创建两个外部工具,称为show byte code和compile java code,分别......