
中间件
文章平均质量分 93
yue_hu
成长源于积累
展开
-
【Java核心知识】spring boot整合Mybatis plus + Phoenix 访问Hbase与使用注意
为了Phoenix能让开发者通过SQL访问Hbase而不必使用原生的方式?引用Phoenix官网上的一句话:SQL is just a way of expressingnot. 即SQL不是一种数据操作技术,而是一种特殊的表达方式。只是表示你需要什么而不是你如何获得。原创 2023-03-03 09:35:41 · 2872 阅读 · 1 评论 -
【JAVA核心知识】46:什么是零拷贝Zero-copy
零拷贝相较于传统的IO流程拥有更高的数据发送效率,无论是RocketMq,Kafka还是Netty等都用到了零拷贝技术,那究竟什么是零拷贝呢,零拷贝又是通过什么方式提升数据发送效率呢?首先我们要明白,一次数据发送过程就是将磁盘中的目标数据交给网卡传输出去的流程。磁盘以及网卡都属于硬件层。而应用程序是不能直接操作硬件的。如果要操作硬件,需要进行上下文切换从用户态切换到内核态由操作系统来完成硬件交互。关于用户态,内核态,上下文切换这些这里不再赘述。原创 2023-01-30 18:58:34 · 759 阅读 · 0 评论 -
raft协议原理 ---【JAVA核心知识】
Raft协议是工程上使用较为广泛的强一致性、去中心化、高可用的分布式协议。目前 etcd,consul都是基于Raft协议进行数据同步。Raft协议和Zookeeper的一样脱胎于Paxos协议。以此可以看出来Paxos协议在分布式协议学术理论届方面的地位。为什么是说是学术理论届呢?这是因为Paxos协议的出了名的难懂,这使得他的应用受到限制。不同于Paxos协议的难以理解。Raft协议的主要特点就是易于理解。原创 2022-10-17 15:52:15 · 1172 阅读 · 0 评论 -
【JAVA核心知识】23-F.1 Redis数据底层存储原理
Redis具有五种数据类型:String,List,Hash,Set,ZSet,底层使用了多种数据结构,同种数据类型在不同的状态也会使用不同的数据结构。RedisObjectRedis中的值都是一个个键值对,其中键总是字符串对象,值则可以是字符串,整数,列表,集合等。Redis的值对象都通过RedisObject来表示。typedef struct redisObject{ //表示类型:string,list,hash,set,zset unsigned type:4;原创 2022-03-14 13:38:14 · 1431 阅读 · 0 评论 -
【JAVA核心知识】39:一文看懂RocketMQ,轻松应对面试
1.RocketMQ的角色划分生产者Producer: 消息的生产者,也称为发布者消费者Consumer:消息的消费者,也称为订阅者Broker:可以简单的理解为就是RocketMQ的应用实例NameServer:RocketMQ的注册中心,RocketMQ需要启动时要先启动NameServer再启动Broker,Broker启动时需要向所有NameServer注册,生产发送消息之前需要从NameServer获取Broker服务列表,然后根据负载均衡算法从列表中选择一台进行消息发送。Broker需原创 2022-01-15 16:17:47 · 1903 阅读 · 0 评论 -
【JAVA核心知识】38:Zookeeper的使用与典型应用场景 ---- 《从Paxos到Zookeeper》读书笔记
数据发布/订阅通过Zookeeper的Watcher通知可以完成数据的发布和订阅,Zookeeper的Watcher通知,具有以下特性:一次性:无论是客户端还是服务端,一旦一个Watcher被触发,Zookeeper都会将其从对应的存储中移除,因此开发人员在Watcher的使用上要记住的一点是需要反复注册,这样的设计有效的减轻了服务端的压力。避免Watcher一直有效而节点更新有非常频繁的情况下,服务端需要不停的对客户端发送通知,对网络和服务端性能的影响都很大。客户端串行执行:客户端Watcher回原创 2022-01-07 17:59:33 · 916 阅读 · 0 评论 -
【JAVA核心知识】36:ZooKeeper的ZAB协议 ---- 《从Paxos到Zookeeper》读书笔记
ZooKeeper并不是Paxos算法的实现,ZooKeeper并没有完全采用Paxos算法,而是专门设计的崩溃可恢复的原子消息广播算法ZAB(ZooKeeper Atomic Broadcast)。ZooKeeper使用了一个单一的主线程来接收并处理客户端的所有事物请求,并采用ZAB协议,将服务器状态变更以事务Proposal的形式广播到所有的副本进程上去。ZAB保证同一时刻一个集群只有一个主线程来广播服务器的状态变更。且ZAB协议保证一个全局的变更序列被顺序应用。ZAB协议保证当主线程出现崩溃或者重启原创 2021-12-14 09:46:12 · 1928 阅读 · 0 评论 -
【JAVA核心知识】37:ZooKeeper基础 ---- 《从Paxos到Zookeeper》读书笔记
顺序一致性:从同一个客户端发起的事务请求,最终会严格的按照发起顺序应用到原创 2021-12-12 15:44:24 · 269 阅读 · 0 评论