随笔分类 -  分布式

摘要:HSF其实是一个RPC框架,RPC是Remote Procedure Call,就是远程服务调用.这个功能为什么要写个框架而不是十几行代码呢,因为在分布式场景下并不是这种点对点通讯的模式。rpc要素:where how地址:注册中心ConfigServer,... 阅读全文
posted @ 2018-10-12 19:57 john8169 阅读(969) 评论(1) 推荐(0)
摘要:单机数据库分布式数据库TDDL原理与最佳实践1. 数据库的结构1.1. KV存储(id是K)1.2. B+树与红黑树B+树的特点是叶子节点是块状,一个叶子里面有多个数据,相邻数据是存在一起的,123,456起等,而磁盘也是按块的,B+树的数据是按块存储的正好... 阅读全文
posted @ 2018-10-12 19:56 john8169 阅读(1537) 评论(1) 推荐(1)
摘要:0.背景随着服务框架和服务治理体系的逐步成熟,服务化已成为系统设计的趋势。随着业务复杂度的增加,依赖的服务也逐步增加,出现了不少由于服务调用出现异常问题而导致的重大事故,如:1)系统依赖的某个服务发生延迟或者故障,数秒内导致所有应用资源(线程,队列等)被耗尽... 阅读全文
posted @ 2018-08-05 17:33 john8169 阅读(211) 评论(0) 推荐(0)
摘要:0. 前言常见的限流算法有:令牌桶、漏桶。计数器也可以进行粗暴限流实现。1. 算法介绍1.1 令牌桶算法令牌桶算法是一个存放固定容量令牌的桶,按照固定速率往桶里添加令牌。令牌桶算法的描述如下:假设限制2r/s,则按照500毫秒的固定速率往桶中添加令牌;桶中最... 阅读全文
posted @ 2018-07-20 08:40 john8169 阅读(1011) 评论(0) 推荐(0)
摘要:1 如何调用他人的远程服务?由于各服务部署在不同机器,服务间的调用免不了网络通信过程,服务消费方每调用一个服务都要写一坨网络通信相关的代码,不仅复杂而且极易出错。 如果有一种方式能让我们像调用本地服务一样调用远程服务,而让调用者对网络通信这些细节透明,那么... 阅读全文
posted @ 2018-07-04 22:53 john8169 阅读(278) 评论(0) 推荐(0)
摘要:1. Java序列化工具技术原理比较Binary Formats & language-specific ones JavaBuiltIn(java原生)、JavaManual(根据成员变量类型,手工写)、FstSerliazation、KryoBinary... 阅读全文
posted @ 2018-07-04 08:17 john8169 阅读(2814) 评论(0) 推荐(1)
摘要:1. 引子在高并发系统开发时有时候需要进行接口保护,防止高并发的情况把系统搞崩,因此需要对一个查询接口进行限流,主要的目的就是限制单位时间内请求此查询的次数,例如 1000 次,来保护接口。2. 计数器 AtomicLong可以使用Java中的AtomicL... 阅读全文
posted @ 2018-06-27 23:43 john8169 阅读(4375) 评论(0) 推荐(0)
摘要:一、为什么要使用分布式锁为了保证一个方法或属性在高并发情况下的同一时间只能被同一个线程执行,在传统单体应用单机部署的情况下,可以使用Java并发处理相关的API(如ReentrantLock或Synchronized)进行互斥控制。但是,随着业务发展的需要,... 阅读全文
posted @ 2018-06-17 12:30 john8169 阅读(263) 评论(0) 推荐(0)
摘要:一. 何为session用户使用网站的服务,基本上需要浏览器和web服务器进行多次交互,web服务器如何知道哪些请求是来自哪个会话的?具体方式为:在会话开始时,分配一个唯一的会话标识(sessionId),通过cookie把这个标识告诉浏览器,以后每次请求的时候,浏览... 阅读全文
posted @ 2017-02-18 12:22 john8169 阅读(222) 评论(0) 推荐(0)