Dledger快速搭建
前言
该文档主要介绍如何快速构建和部署基于 DLedger 的可以自动容灾切换的
RocketMQ 集群。
详细的新集群部署和旧集群升级指南请参考 部署指南。
1. 源码构建
构建分为两个部分,需要先构建 DLedger,然后 构建 RocketMQ
1.1 构建 DLedger
12345git clone https://github.com/openmessaging/openmessaging-storage-dledger.gitcd openmessaging-storage-dledgermvn clean install -DskipTests
1.2 构建 RocketMQ
1234567git clone https://github.com/apache/rocketmq.gitcd rocketmqgit checkout -b store_with_dledger origin/store_with_dledgermvn -Prelease-all -DskipTests clean install -U
2. 快速部署
在构建成功 ...
1. 订阅与发布
消息的发布是指某个生产者向某个topic发送消息;消息的订阅是指某个消费者关注了某个topic中带有某些tag的消息,进而从该topic消费数据。
2. 消息顺序
消息有序指的是一类消息消费时,能按照发送的顺序来消费。例如:一个订单产生了三条消息分别是订单创建、订单付款、订单完成。消费时要按照这个顺序消费才能有意义,但是同时订单之间是可以并行消费的。RocketMQ可以严格的保证消息有序。
顺序消息分为全局顺序消息与分区顺序消息,全局顺序是指某个Topic下的所有消息都要保证顺序;部分顺序消息只要保证每一组消息被顺序消费即可。
全局顺序 对于指定的一个
Topic,所有消息按照严格的先入先出(FIFO)的顺序进行发布和消费。
适用场景:性能要求不高,所有的消息严格按照 FIFO
原则进行消息发布和消费的场景
分区顺序 对于指定的一个 Topic,所有消息根据 sharding key
进行区块分区。 同一个分区内的消息按照严格的 FIFO 顺序进行发布和消费。
Sharding key 是顺序消息中用来区分不同分区的关键字段,和普通消息的 Key
是完全不同的概念。 ...
1. 消息模型(Message Model)
RocketMQ主要由 Producer、Broker、Consumer 三部分组成,其中Producer
负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker
在实际部署过程中对应一台服务器,每个 Broker
可以存储多个Topic的消息,每个Topic的消息也可以分片存储于不同的
Broker。Message Queue
用于存储消息的物理地址,每个Topic中的消息地址存储于多个 Message Queue
中。ConsumerGroup 由多个Consumer 实例构成。
2. 消息生产者(Producer)
负责生产消息,一般由业务系统负责生产消息。一个消息生产者会把业务应用系统里产生的消息发送到broker服务器。RocketMQ提供多种发送方式,同步发送、异步发送、顺序发送、单向发送。同步和异步方式均需要Broker返回确认信息,单向发送不需要。
3. 消息消费者(Consumer)
负责消费消息,一般是后台系统负责异步消费。一个消息消费者会从Broker服务器拉取消息、并将其提供给应用程 ...
前言
该文档主要介绍如何部署自动容灾切换的 RocketMQ-on-DLedger Group。
RocketMQ-on-DLedger Group 是指一组相同名称的 Broker,至少需要 3
个节点,通过 Raft 自动选举出一个 Leader,其余节点 作为 Follower,并在
Leader 和 Follower 之间复制数据以保证高可用。 RocketMQ-on-DLedger Group
能自动容灾切换,并保证数据一致。 RocketMQ-on-DLedger Group
是可以水平扩展的,也即可以部署任意多个 RocketMQ-on-DLedger Group
同时对外提供服务。
1. 新集群部署
1.1 编写配置
每个 RocketMQ-on-DLedger Group 至少准备三台机器(本文假设为 3)。
编写 3 个配置文件,建议参考 conf/dledger 目录下的配置文件样例。
关键配置介绍: |name|含义|举例| |-|:–:|-|
|enableDLegerCommitLog|是否启动DLedger|true| |dLegerGroup|DLed ...
SpringCloud官方,对SpringCloud Gateway
特征介绍如下:
基于 Spring Framework 5,Project Reactor 和 Spring Boot 2.0
集成 Hystrix断路器
集成 Spring Cloud DiscoveryClient
Predicates 和 Filters 作用于特定路由,易于编写的 Predicates 和
Filters
具备一些网关的高级功能:动态路由、限流、路径重写
从以上的特征来说,和Zuul的特征差别不大。SpringCloud
Gateway和Zuul主要的区别,还是在底层的通信框架上。
简单说明一下上文中的三个术语:
Filter(过滤器):
Filter和Zuul的过滤器在概念上类似,可以使用它拦截和修改请求,并且对上游的响应,进行二次处理。过滤器为org.springframework.cloud.gateway.filter.GatewayFilter类的实例。
Route(路由):
网关配置的基本组成模块,和Zuul的路由配置模块类似。一个Route模块由一个
ID,一个目标
UR ...
SpringCloud Gateway 是 Spring Cloud
的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和
Project Reactor
等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的
API 路由管理方式。
SpringCloud Gateway 作为
Spring Cloud生态系统中的网关,目标是替代
Zuul,在Spring Cloud 2.0以上版本中,没有对新版本的Zuul 2.0以上最新高性能版本进行集成,仍然还是使用的Zuul 2.0之前的非Reactor模式的老版本。而为了提升网关的性能,SpringCloud Gateway是基于WebFlux框架实现的,而WebFlux框架底层则使用了高性能的Reactor模式通信框架Netty。
Spring Cloud Gateway
的目标,不仅提供统一的路由方式,并且基于
Filter链的方式提供了网关基本的功能,例如:安全,监控/指标,和限流。
提前声明:Spring Cloud Gateway
底层使用了高性能的通信框架Netty。
Twitter 终于推出了 Twitter
Blue——一项为用户提供额外功能的订阅服务。目前,该服务仅在加拿大和澳大利亚开放。
Twitter Blue
带来了哪些吸引人的功能?
关于 Twitter 可能推出订阅服务的传闻已经流传数月,Twitter 在 5
月中旬确认了这一可能性。而现在,这项服务终于变成了现实!
Twitter Blue
为用户带来了更丰富的功能,其中许多都是用户长期呼吁推出的。根据
Twitter
官方博客 的介绍,Twitter Blue 订阅者可以享受以下功能:
📌 1.
书签文件夹(Bookmark Folders)
让你可以整理和分类已保存的推文。这样,你不必再从杂乱的书签列表中翻找推文,而是可以轻松存储和查找你感兴趣的内容。
📌 2. 阅读模式(Reader
Mode)
Twitter Blue
还提供更简洁的阅读体验,特别适用于阅读长推文(Threads)。
开启该模式后,长推文会像新闻文章一样整合在一起,使阅读更加流畅,避免了传统推文的分散排布问题。
📌 3. 撤销推文(Undo
Tweet)
Twitter Blue 最具吸引力 ...
Elasticsearch
的集群监控信息中包含了许多的统计数据,其中最为重要的一项就是 集群健康 ,
它在 status 字段中展示为 green 、 yellow 或者 red 。
curl -X GET “localhost:9200/_cluster/health?pretty”
在一个不包含任何索引的空集群中,它将会有一个类似于如下所示的返回内容:
{ “cluster_name”: “elasticsearch”, “status”: “green”, “timed_out”:
false, “number_of_nodes”: 1, “number_of_data_nodes”: 1,
“active_primary_shards”: 0, “active_shards”: 0, “relocating_shards”: 0,
“initializing_shards”: 0, “unassigned_shards”: 0 }
status 字段是最需要最关心的。 status
字段指示着当前集群在总体上是否工作正常。它的三种颜色含义如下:
green所有的主分片和副本 ...
介绍ElasticSearch
Elasticsearch
是一个实时的分布式搜索分析引擎,它能让你以前所未有的速度和规模,去探索你的数据。
它被用作全文检索、结构化搜索、分析以及这三个功能的组合:
Wikipedia 使用 Elasticsearch 提供带有高亮片段的全文搜索,还有
search-as-you-type 和 did-you-mean 的建议。
卫报 使用 Elasticsearch
将网络社交数据结合到访客日志中,为它的编辑们提供公众对于新文章的实时反馈。
Stack Overflow 将地理位置查询融入全文检索中去,并且使用
more-like-this 接口去查找相关的问题和回答。
GitHub 使用 Elasticsearch 对1300亿行代码进行查询。
Elasticsearch 不仅仅为巨头公司服务。它也帮助了很多初创公司,比如
Datadog 和 Klout, Elasticsearch
帮助他们将想法用原型实现,并转化为可扩展的解决方案。Elasticsearch
能运行在你的笔记本电脑上,或者扩展到数百台服务器上来处理PB级数据。
Elast ...
TiDB 简介
TiDB 是 PingCAP
公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理
(Hybrid Transactional and Analytical Processing,
HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时
HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL
生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional
Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB
适合高可用、强一致要求较高、数据规模较大等各种应用场景。
五大核心特性
一键水平扩容或者缩容 得益于 TiDB
存储计算分离的架构的设计,可按需对计算、存储分别进行在线扩容或者缩容,扩容或者缩容过程中对应用运维人员透明。*
金融级高可用 数据采用多副本存储,数据副本通过 Multi-Raft
协议同步事务日志,多数派写入成功事务才能提交,确保数据强一致性且少数副本发生故障时不影响数据的可 ...
