![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
中间件
文章平均质量分 90
各种中间件原理:sql、mq、register、cache等
~一叶、
java、golang, devops, docker,
中间件、架构、系统设计、
方法论、思维模型
展开
-
各中间件的文件存储结构分析/mq/db/es
前言 说明 本文主要介绍几个高性能中间件的磁盘文件存储结构、存储逻辑等,从而学习它们的设计思路。 linux磁盘文件硬盘的最小存储单位是扇区(Sector,512B),块(block)由多个连续的扇区组成,块的最常见的大小是4kb(8个连续的扇区组成)。 磁盘读取的基本单位是扇区(物理层),而操作系统(文件管理系统)读写的基本单位是块(逻辑层)。 block:文件数据存储在块中,一个文件可能会占用多个块,但是一个块只能存放一个文件。 inode:linux/unix文件系统的基...原创 2022-05-15 19:32:12 · 1066 阅读 · 0 评论 -
Kafka原理解析
Kafka 是一个分布式流式处理平台。LinkedIn 最早开发 Kafka 用于处理海量的日志有很大关系,最开始就不是为了作为消息队列的,由于高性能,以及随着发展很多短板都被逐步修复完善,后面才在消息队列领域占据了一席之地。主要有两大应用场景:消息队列:建立实时流数据管道,以可靠地在系统或应用程序之间获取数据。 数据处理:构建实时的流数据处理程序来转换或处理数据流。Kafka架构基础结构Broker(代理): 可以看作是一个独立的 Kafka 实例。多个 Kafka ...原创 2022-05-12 22:42:31 · 672 阅读 · 0 评论 -
分布式协调(配置/注册)
算法paxos、zab、raft服务注册与配置ZooKeeper、Eureka、Nacos、Consul、Etcd关于CP还是AP的选择:选择 AP,因为可用性高于一致性,所以更倾向 Eureka 和 Nacos;关于Eureka、Nacos如何选择,哪个让我做的事少,我就选择哪个,显然 Nacos 帮我们做了更多的事。【针对cp如果恢复很快,则也可以考虑cp】 技术体系:Etcd 和 Consul 都是Go开发的,Eureka、Nacos、Zookeeper 都是Java开发..原创 2022-05-08 19:52:14 · 1014 阅读 · 0 评论 -
负载均衡LB
dns、lvs、haproxy、keepalived、nginx负载均衡系统,通常用于将任务(比如用户请求)分配到多个服务器处理,以提高网站、应用或者数据库的性能和可靠性。负载均衡(即任务分配器)分类dns负载均衡:按地域负载均衡到不同的数据中心 或 同机房多ip入口 硬件负载均衡:同一中心负载均衡到各个集群 F5(2-800w/s 特贵) A10(...) 软件负载均衡:集群内负载均衡到不同节点 lvs(4层 80w/s) nginx(7层 5w/s 虽然nginx现在支持4层但用..原创 2022-05-08 19:08:55 · 175 阅读 · 0 评论 -
PostgreSQL基础和原理
丰富的数据类型数字 字符 数组类型int[] / text[] / int[][] json/jsonb类型 xml类型 货币类型money 日期date/time/timestamp 布尔boolean 空间几何类型point/line/box/path/circle等 网络地址类型inet/macaddr 位串bit uuid类型 复合类型CREATE TYPE complex AS(a int, b int) 范围类型int4range/numrange/datera..原创 2022-05-08 19:05:13 · 2730 阅读 · 0 评论 -
RocketMQ基础及原理
前言消息队列带来的好处 通过异步处理提高系统性能(减少响应所需时间) 削峰/限流 降低系统耦合性 消息队列带来的问题 系统可用性降低:在加入 MQ 之前,你不用考虑消息丢失或者说 MQ 挂掉等等的情况,但是,引入 MQ 之后你就需要去考虑了! 系统复杂性提高:加入 MQ 之后,你需要保证消息没有被重复消费、处理消息丢失的情况、保证消息传递的顺序性等等问题! 一致性问题:(消费失败、重复消费、顺序消费)消息队列是异步的,当消息没有被...原创 2022-05-05 23:27:59 · 909 阅读 · 0 评论 -
Redis基础及原理
简介使用场景 数据缓存 分布式锁(setnx) 全局ID(incr) 计数器/限流(incr) 位统计(bitmap) 时间线timeline(list) 消息队列:List提供了两个阻塞的弹出操作:blpop/brpop,可以设置超时时间 抽奖:自带一个随机获得值:spop myset 点赞、签到、打卡(set) 商品标签(set) 商品筛选:获取差集:sdiff set1 set2;获取..原创 2022-05-05 23:16:30 · 226 阅读 · 0 评论 -
MySQL基础和原理
字符编码MySQL 字符编码集中有两套 UTF-8 编码实现: utf8:utf8编码只支持1-3个字节 。 在utf8编码中,中文是占 3 个字节,其他数字、英文、符号占一个字节。但 emoji 符号占 4 个字节,一些较复杂的文字、繁体字也是 4 个字节。【mysql4.1时支持utf8,当时utf8还是草案,要求最多3个字节】 utf8mb4: UTF-8 的完整实现,正版!最多支持使用 4 个字节表示字符,因此,可以用来存储 emoji 符号。 一、索引...原创 2022-05-05 23:01:31 · 211 阅读 · 0 评论 -
ElasticSearch基础和原理
简介Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Lucene是apache软件基金会 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西原创 2022-05-05 22:49:15 · 1505 阅读 · 0 评论