TBKK Blog

There is only one me in this world.

跟我一起写RPC-注册中心(二)

RPC

为什么要有注册中心 注册中心很多时候都有听过,如何理解注册中心?在分布式系统中,倘若要找到一个服务的是哪里提供的是一件不容易的事情。在上千个节点中找到他光靠配置文件并不是一件靠谱的事情,假设是配置文件,某个节点异常挂掉了怎么办,这时候就需要用到注册中心了。 注册中心可以说是微服务架构中的”通讯录“,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务...

跟我一起写RPC-概述(一)

RPC

什么是RPC RPC 是一种技术思想而非一种规范或协议。 Remote Procedure Call,远程过程调用。也就是说,调用过程代码并不是在调用者本地运行,而是要实现调用者与被调用者二地之间的连接与通信。 通俗的说:老婆坐在沙发上不想动,想吃橘子,于是乎说:“TBKK,我要吃橘子”,我收到指令,下楼->到水果店->买橘子->上楼->剥橘子->递给老婆...

大数据组件之HBASE-应用场景

HBase

HBASE的应用场景 HBase并非只有在大数据场景才会用到。个人觉得大数据只是一个知识体系,至于用这套体系去做什么业务才是我们应该关注的。 HBASE在物联网中的应用 多年前本人亲自设计的一套,整体框架,鉴于各种原因,细节的就不说了,说个大体框架。 场景: 百万车载终端,百TB级数据不间断写入,数十亿级数据量下分页查询和车辆历史轨迹查询要求毫秒级响应 痛点: 车...

大数据组件之HBASE-检索增强

HBase

为什么要检索增强 大量业务数据迁移到HBase存储,开始查询设计符合业务需求的Rowkey,比如从关系数据库迁移过来,有些数据关系通过反规范化设计,使得整体查询在HBase中能符合Rowkey高效查询⽅方式. HBase 无法满足的查询 模糊查询。 任意条件的And/Or组合查询 空值查询 分组查询 分词检索 等等。。。。 HBase既然有这么多缺陷,我...

大数据组件之HBASE-Rowkey设计

HBase

什么是Rowkey 类似于 MySQL、Oracle中的主键,用于标识唯一的行 完全是由用户指定的一串不重复的字符串; HBase 中的数据永远是根据 Rowkey 的字典排序来排序的。 Rowkey的作用 读写数据时通过 RowKey 找到对应的 Region; MemStore 中的数据按 RowKey 字典顺序排序; HFile 中的数据按 RowK...

大数据组件之HBASE-架构

HBase

HBase整体架构 这张架构图,在各大网站均可看到,下面我们分析一下核心组件,虚线一下其实属于HDFS范围了,属于底层支撑了。这种关系举个例子,相当于Mysql之于文件系统,我们只需要看虚线以上的就行了。 HBase核心组件 Client: 使用HBase RPC机制与HMaster和HRegionServer进行通信 Client与HMaster进行通信进行管理类操作 ...

大数据组件之HBASE-快速入门

HBase

什么是HBase 分布式、多版本、面向列的开源KV数据库 支持PB级、百万列的数据存储 强一致性、高扩展、高可用。 HBase核心概念 RowKey:表中每条记录的主键 Column Family:列族,将表进行横向切割,后面简称CF Column:属于某一个列族,可动态添加列; Version Number:类型为Long,默认值是系统时间戳,可由用...

深入理解Netty

Netty

Netty基础 TCP/IP TCP是一个传输层协议,我们熟知的HTTP则是应用层协议,是基于TCP上再做封装。 很多东西都是基于TCP做的,比如RPC调用。 基于 TCP 的协议实现的 RPC 调用,由于 TCP 协议处于协议栈的下层, 能够更加灵活地对协议字段进行定制,减少网络开销,提高性能,实现更大的吞吐量和并发数。 HTTP 协议是上层协议,发送包含同等内容的信息, 使用 HTTP...

分布式事务类型和适用场景

java基础

事务和分布式事务 单机事务我们经常看到,分布式事务,通俗点将,就是需要在各个机器上跑的事务,但是事务的每一步都不知道其他步是否成功,但是在业务上又要保证,所有的步骤,要么都成功,要么都不成功。 分布式事务实现的方式(干货) 基于消息实现的分布式事务 基于补偿实现的分布式事务(gts/fescar自动补偿的形式) 基于TCC实现的分布式事务 基于SAGA实现的分布式事务...

一致性Hash算法(转)

java基础

一致性Hash 第一:简单介绍 一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将对象存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,N是机器节点数。 1、考虑到比如一个服务器down掉,服务器结点N变为N-1,映射公式必须变为key%(N-1) 2、访问量加重,需要添加服务器结点,N变为N+1,映射公式变为hash(obje...