05 2021 档案

摘要:整体上看,Client 向 ES 发送写请求,es 接收数据,写入磁盘文件,返回响应给 Client 写入成功,这样就完成了。 然后拉近看一下,看看内部都做了什么工作。 2. ES 整体结构 ES 集群里面有多个 Server 节点,一个 ES Index 有多个 shard 分片,每个 shard 阅读全文
posted @ 2021-05-18 09:59 AI科技界面 阅读(155) 评论(0) 推荐(0)
摘要:1. 为什么产生消息堆积? 大多是因为 Consumer 出问题了,没有及时发现,或者故障恢复需要较长的时间,导致大量消息积压在 MQ 中。 2. 消息堆积会有什么后果呢? 2.1 消息被丢弃 例如 RabbitMQ 有一个消息过期时间 TTL,过期的消息会被扔掉,这样消息就彻底没有了。 2.2 磁 阅读全文
posted @ 2021-05-17 09:23 AI科技界面 阅读(1653) 评论(0) 推荐(0)
摘要:要想实现消息有序,需要从 Producer 和 Consumer 两方面来考虑。 首先,Producer 生产消息的时候就必须要有序。 然后,Consumer 消费的时候,也要按顺序来,不能乱。 Producer 有序 像 RabbitMQ 这类普通的消息系统,队列结构简单,Producer 向队列 阅读全文
posted @ 2021-05-15 09:34 AI科技界面 阅读(908) 评论(0) 推荐(0)
摘要:本文我们聊聊 CQRS 这种架构模式。 CQRS 是用来解决什么问题的? 我们先看一个场景。 系统中的数据模型是按照实体以及关系进行设计的是吧。 例如电商系统,包含订单、用户、商品等等数据。 数据的变更操作、查询操作,都是基于这一套数据模型的。 但是,实际场景下的查询需求是多种多样。 例如这3类人群 阅读全文
posted @ 2021-05-14 09:02 AI科技界面 阅读(3263) 评论(0) 推荐(0)
摘要:消息队列会丢失消息吗? 答案是肯定的,所以对于业务严谨的数据,我们要确保其在消息队列中的安全,不能丢。 要想解决不丢的问题,首先要弄清楚 消息是怎么丢的呢? 丢消息的关键点有3个: Producer 发送消息的过程 消息队列的消息存储 Consumer 消费消息的过程 下面挨个看看都是怎么丢的,以及 阅读全文
posted @ 2021-05-13 09:26 AI科技界面 阅读(378) 评论(0) 推荐(0)
摘要:本文我们简单聊聊当下主流的 3 个 Java 微服务框架,看看各自的特点。 1. Spring and Spring Boot Spring Boot 在 Java 微服务领域绝对是一哥,毫无争议,据说已经占据 57% 的市场份额。 Spring Boot 这么牛是有道理的,它太成熟了,功能特性极其 阅读全文
posted @ 2021-05-11 10:23 AI科技界面 阅读(1761) 评论(0) 推荐(0)
摘要:本文从高可用的角度观察一下 RabbitMQ、Kafka、RocketMQ,看看它们各自的实现思路。 1. RabbitMQ RabbitMQ 有 3 种部署模式: 单机模式 普通集群模式 镜像集群模式 单机模式与高可用完全没关系,咱就不说了,直接看看这2种集群模式。 1.1 普通集群模式 某一个 阅读全文
posted @ 2021-05-10 12:16 AI科技界面 阅读(249) 评论(0) 推荐(0)
摘要:Kafka 是主流的消息流系统,其中的概念还是比较多的,下面通过图示的方式来梳理一下 Kafka 的核心概念,以便在我们的头脑中有一个清晰的认识。 基础 Kafka 是一套流处理系统,可以让后端服务轻松的相互沟通,是微服务架构中常用的组件。 生产者消费者 生产者服务 Producer 向 Kafka 阅读全文
posted @ 2021-05-09 22:58 AI科技界面 阅读(193) 评论(0) 推荐(0)
摘要:Kafka 2.8.0 出炉了,此版本有一项重大改进: 实现了 Raft 分布式一致性机制,意味着可以脱离 ZooKeeper 独立运行了。 ZooKeeper 在 Kafka 中扮演着重要的角色,用来存储 Kafka 的元数据。 ZooKeeper 存储着 Partition 和 Broker 的 阅读全文
posted @ 2021-05-09 22:56 AI科技界面 阅读(6355) 评论(0) 推荐(0)
摘要:良好的微服务设计可以使后期的升级维护更加轻松,否则将会令人非常头疼。 下面几个设计原则强烈建议采用: 单一职责 高内聚 低耦合 隐藏内部实现 避免代码库共享 避免数据过度暴露 避免数据库共享 最小化同步调用 最小化硬件共享 避免使用平台独特性技术 这三大原则是面向对象设计中的核心,同样适用于微服务设 阅读全文
posted @ 2021-05-09 22:52 AI科技界面 阅读(449) 评论(0) 推荐(0)