随笔分类 -  分布式系统架构

摘要:Kafa简单概括:支持海量消息生产消费的"存储系统"MQ,没有花里胡哨功能,天生为日志流等消息,高并发,高性能,高可用三高均支持。 基于Topic发布订阅模型 Broker持久化存储 数据分片存储 Partition Partition多副本解决高可用,一主多从,Leader负责读写,Followe 阅读全文
posted @ 2022-03-20 15:24 六小扛把子 阅读(356) 评论(0) 推荐(0)
摘要:画了张图,包含了netty的大部分组件,一些说明在图中标出便于理解 在我的理解看来可以将netty大体分为左右两部分 左半部分可以理解为线程池系列 用来执行具体任务,右半部分可以理解为核心组件系列 包括selector,channel,pipeline及handel,后面会逐个介绍 根据Netty官 阅读全文
posted @ 2020-12-26 13:34 六小扛把子 阅读(493) 评论(0) 推荐(0)
摘要:hystrix 作用 做资源隔离,限流,熔断,降级,运维监控. 直白说,hystrix一定程度上能保障了微服务架构系统服务的高可用性,避免了很多服务雪崩,系统彻底瘫痪的情况,提高了系统容错性 补:限流的前置还可以增加截流,被限流调的请求很可能不断地不断地再次请求,服务器也要一遍一遍的返回安抚结果(返 阅读全文
posted @ 2020-12-19 16:56 六小扛把子 阅读(380) 评论(0) 推荐(0)
摘要:推拉模式的时候指的是 Comsumer 和 Broker 之间的交互。 推模式 broker主动推消息给消费者,来一条推一条 优点:来一条推一条,实时性较高 缺点:消费者的消费能力有限,如果一时间大量的消息推过来 消费者并没有能力一下去消费这么多。不同的消费者消费速率可能不同,导致broker维护不 阅读全文
posted @ 2020-12-15 14:57 六小扛把子 阅读(3575) 评论(0) 推荐(0)
摘要:什么是网关? 两个独立的局域网之间通信的桥梁/ 或可以理解为外部所有请求都会打在网关上,网关对请求分发路由等处理,隐藏了内部服务的各种API接口 网关作用及功能 1. 动态路由 根据请求路由到对应的服务上去,如果服务不可用还会有重试机制 2. 负载均衡 多服务器提供同一种服务,网关会从注册中心拉取各 阅读全文
posted @ 2020-09-22 16:12 六小扛把子 阅读(2783) 评论(0) 推荐(0)
摘要:如果是简单的两个服务调用,可以将调用接口尽量写在最后, 如果被调用方接口正常,能保证调用方的其他处理都正常才会执行调用接口 当被调用方接口出现异常,调用方可以通过事务回滚; 方案一;2pc 两阶段提交 <数据库层面> 需要一个事务协调者 第一阶段 询问阶段,事务协调者挨个询问能否成功执行 第二阶段 阅读全文
posted @ 2020-09-17 11:13 六小扛把子 阅读(145) 评论(0) 推荐(0)
摘要:SpringCloud核心组件 Eureka:注册服务中心 Feign: 任务调度,执行http请求 Ribbon: 负载均衡 根据本地注册表选择合适机器,让Feign调用 Zuul / SpringCloud Gatway : 网关 网关内部配置好接口地址,外部用户只需访问网关,对系统内部具体接口 阅读全文
posted @ 2020-09-16 12:01 六小扛把子 阅读(1286) 评论(0) 推荐(0)
摘要:分布式锁:用为了解决分布式服务场景下,多个服务并发操作数据导致并发安全问题 Redis分布式锁实现原理 setnx实现方式: set一个key为 订单id等锁唯一标识,value为一串随机数uuid等,如果key存在则失败返回0,成功返回1,设置超时时间后自动删除(防止死锁) 尝试去获取锁就是尝试去 阅读全文
posted @ 2020-09-15 18:04 六小扛把子 阅读(468) 评论(0) 推荐(0)
摘要:Zookeeper 使用场景: 1. 分布式协调 (用作服务注册中心) 2. 分布式锁 3. 元数据和配置管理 4. Zookeeper HA高可用场景,(通过Zookeeper实现主从自动切换) Zookeeper服务注册中心集群原理 Zookeeper分为leader follower两种角色, 阅读全文
posted @ 2020-09-15 17:26 六小扛把子 阅读(262) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-09-12 16:16 六小扛把子 阅读(580) 评论(0) 推荐(0)
摘要:Dubbo 为分布式系统框架 底层RPC原理 Dubbo分层 Service层: Provider(服务提供者) 和 Consumer(消费者) ,由自己开发的接口 config层: 配置文件 proxy层: 代理,通过代理 负责provider,consumer之间互相通信,(无论consumer 阅读全文
posted @ 2020-08-24 11:57 六小扛把子 阅读(377) 评论(0) 推荐(0)
摘要:Docker 解决的问题: 问题: 在本地能跑的代码 打包交给运维就跑不通了(原因操作系统,环境,配置文件等问题) 解决: 不仅仅打包代码,将整体环境一起打包 镜像技术 ,应用于集群 将原始环境整体打包成一个个镜像发布在集群的每台机器 仓库 镜像 容器 阅读全文
posted @ 2020-08-13 17:33 六小扛把子 阅读(124) 评论(0) 推荐(0)
摘要:Redis 传统数据库事务 ACID 原子性 一致性 隔离性 持久性 NOSQL CAP 强一致性(准确) 可用性(并发) 分区容错性 (一个分布式系统不可能完全满足三个CAP 最多同时满足其二) 传统关系型数据库满足CA Redis满足AP 为甚么要用缓存? 复杂查询结果存入缓存 查询效率大大提高 阅读全文
posted @ 2020-07-09 16:01 六小扛把子 阅读(907) 评论(0) 推荐(0)
摘要:ES是啥? ES就是一个开源的搜索引擎 也是一个分布式文档数据库 可以在极短的时间内存储、搜索和分析大量的数据。 ES基本属性: 字段 ES中,每个文档,其实是以json形式存储的。而一个文档可以被视为多个字段的集合。 映射 每个类型中字段的定义称为映射。例如,name字段映射为String。 索引 阅读全文
posted @ 2020-07-04 17:38 六小扛把子 阅读(2828) 评论(0) 推荐(1)
摘要:消息队列 为什么用? 解耦,削峰,异步 基本模型 生产者 -> MQ -> 消费者 Kafka 十万级/s 适用于大数据领域实时计算,日志采集, ActiveMQ 万/s , RabbitMQ 万/s , RocketMQ 十万/s Kafka为什么性能这么快? Producer设计 1.批量发送消 阅读全文
posted @ 2020-06-24 18:12 六小扛把子 阅读(588) 评论(0) 推荐(0)