云上kafka和自建kafka对比
说起Kafka,许多使用者对它是又爱又恨。Kafka是一种分布式的、基于发布/订阅的消息系统,其极致体验让人欲罢不能,但操心的运维、复杂的安全策略、可靠性易用性的缺失、算不上极致的性能发挥、并不丰富的消息服务功能,仍需要使用者付出诸多的背后工作。即使你是Kafka老手,也难免会有上述同样的烦恼。
与其整日操心Kafka的部署,不如试试云上Kafka带给你的惊喜?目前国内主流的云服务厂商均提供了云上的Kafka服务,为应用系统提供异步的消息队列服务。通过高可用的消息缓冲队列,实现应用解耦、突发流量处理及与第三方的互通和集成,具有大规模、高可靠、高并发访问、可扩展且完全托管的特点。比如分布式消息服务DMS,帮助云端的应用程序组件去耦合,具有很高的成本效益。DMS拥抱开源,提供支持兼容开源Kafka接口,用户可无缝迁移,按需使用。
DMS优势
全面兼容Kafka 提升效率
- 兼容开源
业务系统基于开源的Kafka进行开发,只需加入少量认证安全配置,即可使用DMS的Kafka队列,做到无缝迁移。
- 消息互通
支持消息多通道,DMS接口可对Kafka队列进行消息收发,也可用开源Kafka client进行消息收发。
- 安全保证
独有的安全加固体系,提供业务操作可回溯,消息存储加密及租户间有效隔离等有效安全措施。
高可靠及可用无忧运维
- 数据高可靠
消息持久化,多副本存储。
- 服务高可用
后台多集群部署,支持故障自动迁移和容错,保证用户关键业务的可靠运行。
- 无忧运维
提供一整套完整的监控告警等运维服务,故障自动发现和告警,避免7*24小时人工值守。
核心特性
- 细粒度灵活控制
DMS支持RBAC(基于角色访问控制)和PBAC(基于策略访问控制)两种访问控制模式,从而提供更加安全灵活的访问策略。可以实现消息队列粒度和API调用动作的安全策略访问控制,结合华为云的IAM服务,可以满足用户几乎所有对消息服务使用的安全要求。
- 多协议的访问
DMS提供多种协议接入方式,包括1)HTTP 符合REST规范标准的接入,支持多种语言接入使用,并支持云内及云外访问。2)基于TCP的简单SDK方式,提供更加高性能的访问接口;另外,还提供兼容开源Kafka的开放接口,能够更好地帮助用户把使用Kafka的应用快速上云。
- 分布式可靠集群和海量队列能力
内建的分布式集群技术,使得服务具有高度扩展性;无限扩展的队列数量和可扩展的高性能机制,保证在高并发、高性能和大规模场景下的访问能力,轻松实现百亿级消息的堆积和访问能力。内建消息冗余存储,保证消息存储的可靠性,有效避免服务节点故障。
- 死信管理
死信是在消费环节为用户提供一种不能正常处理消息时的可选方案,防止因个别消息不正常导致后续消息都不能被消费,造成业务阻塞。DMS为用户提供可视化死信开关和参数配置,并提供API接口。在不开启死信队列功能时,对于确认失败或超时的消息,系统会进行回滚并重投递。无论是否开启死信功能,DMS服务都会保证消息不丢失。
- 自定义消息功能
DMS除提供消息队列的核心功能外,还提供额外的增强能力,为用户提供高收益、低成本的极具性价比的消息服务。消息消费重置允许用户设置任一可消费的时间点控制向前或向后消费进度,提高消费的灵活性;基于消息标签的消息过滤可实现选择性地消费包含指定标签的消息;支持消息属性,每条消息上都可以设置不同的属性。
- 无忧运维
消息服务是云原生服务,整个消息服务的运维对用户透明。用户无需关心后台运维情况,只需关注自身涉及的消息队列指标,支持对入队消息数、请求数、已经消费的消息数、消息堆积数量等情况的监控,并支持配置告警规则,用户可以在第一时间通过短信、邮件等获得业务消息队列的运行使用和负载状态。
适用场景
- 业务解耦
将业务中依赖其他系统同时属于非核心或不重要的部分使用消息服务,无需同步等待其他系统的处理结果。如电商网站获取用户订单后,信息放入消息队列,会从队列里读取出库、发货任务信息然后执行。
- 最终一致性
用于两个系统的状态最终保持一致,或都成功或都失败。如用于交易系统的高可靠数据传递,实现跨系统的事务最终一致,降低实现难度和成本;如预定门票及软件打车。
- 错峰流控
上下游系统处理能力有差异时,可以使用消息服务转储系统之间的通信数据,提供消息堆积缓冲能力,在下游系统有能力处理消息的时候再处理,减少拥塞、系统崩溃等问题,提高系统的可用性,降低复杂性。如高峰时段的注册、抢购、预约等。
- 日志同步
应用通过可靠异步方式将日志消息同步到消息服务,再通过其他组件对日志做实时或离线分析,也可用于关键日志信息收集,进行应用监控。如注册时用户填写的个人信息等。
云上kafka和自建kafka对比的更多相关文章
- 云计算之路-阿里云上-容器难容:自建docker swarm集群遭遇无法解决的问题
我们从今年6月开始在生产环境进行 docker 容器化部署,将已经迁移至 ASP.NET Core 的站点部署到 docker swarm 集群上.开始我们选用的阿里云容器服务,但是在使用过程中我们遭 ...
- Storm实战:在云上搭建大规模实时数据流处理系统(Storm+Kafka)
在大数据时代,数据规模变得越来越大.由于数据的增长速度和非结构化的特性,常用的软硬件工具已无法在用户可容忍的时间内对数据进行采集.管理和处理.本文主要介绍如何在阿里云上使用Kafka和Storm搭建大 ...
- Tencent Cloud 腾讯云上部署 EMR Cluster + Kafka + Confluent (Schema-Registry)
腾讯云上有些操作比起 Amazon AWS 还是很方便的, 尤其部署EMR Cluster,下面详细介绍步骤:
- kafka与传统的消息中间件对比
RabbitMQ和kafka从几个角度简单的对比 业界对于消息的传递有多种方案和产品,本文就比较有代表性的两个MQ(rabbitMQ,kafka)进行阐述和做简单的对比, 在应用场景方面, Rabbi ...
- scribe、chukwa、kafka、flume日志系统对比
scribe.chukwa.kafka.flume日志系统对比 1. 背景介绍许多公司的平台每天会产生大量的日志(一般为流式数据,如,搜索引擎的pv,查询等),处理 这些日志需要特定的日志系统,一 ...
- 从运维的角度分析使用阿里云数据库RDS的必要性--你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库
开宗明义,你不应该在阿里云上使用自建的MySQL or SQL Server数据库,对了,还有Oracle or PostgreSQL数据库. 云数据库 RDS(Relational Database ...
- 云计算之路-阿里云上-容器难容:容器服务故障以及自建 docker swarm 集群故障
3月21日,由于使用阿里云服务器自建 docker swarm 集群的不稳定,我们将自建 docker swarm 集群上的所有应用切换阿里云容器服务 swarm 版(非swarm mode). 3月 ...
- 云上建站快速入门:博客、论坛、CMS、电子商务网站统统搞定
现在制作一个网站已经越来越容易了,只要知道清晰的流程之后都是可以很快的建好一个企业或者个人网站的!免费的建站程序很多,下面听哥给你亮出来,建站一般来说分主要有这四步:申请域名.申请虚拟主机.制作网页, ...
- Kafka学习笔记之Kafka High Availability(上)
0x00 摘要 Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务.若该Broker永 ...
随机推荐
- Android学习笔记(四) JAVA基础知识回顾
一.接口 1)接口中定义的方法都是public权限,并且默认为public,而不是default. 2)接口的实现(implements)是特殊的继承,类似于父类子类的关系,可以向上转型(非常重要). ...
- spark web ui
spark UI 界面:http://www.cnblogs.com/xing901022/p/6445254.html 几个概念的解释:http://blog.csdn.net/jiangwlee/ ...
- MySQL——基本安装与使用
基本安装 下载地址:https://dev.mysql.com/downloads/mysql/ 选择解压版本:mysql-5.7.21-winx64.zip 以管理员身份打开cmd(除了安装服务不要 ...
- 扩增子分析解读2提取barcode 质控及样品拆分 切除扩增引物
本节课程,需要完成扩增子分析解读1质控 实验设计 双端序列合并 先看一下扩增子分析的整体流程,从下向上逐层分析 分析前准备 # 进入工作目录 cd example_PE250 上一节回顾:我们拿到了双 ...
- Nuxt.js使用详解
首先来讲一下服务端渲染 直白的说就是在服务端拿数据进行解析渲染,直接生成html片段返回给前端.具体用法也有很多种比如: 传统的服务端模板引擎渲染整个页面 服务渲染生成htmll代码块, 前端 AJA ...
- nodejs连接数据库
var express = require("express");var query = require("querystring");var mysql = ...
- 【原】Python学习
1.常用模块介绍 #python -m SimpleHTTPServer 执行上面的命令就会在服务器当前目录下启动一个文件下载服务器,默认打开8000端口.这个时候,你只需要将IP和端口告诉客户端,即 ...
- java中的数学函数Math方法记录
1,三角函数与属性Math.sin() -- 返回数字的正弦值Math.cos() -- 返回数字的余弦值Math.tan() -- 返回数字的正切值Math.asin() -- 返回数字的反正弦值M ...
- 【搜索、bfs】Find The Multiple
Problem Given a positive integer n, write a program to find out a nonzero multiple m of n whose de ...
- Python学习笔记(3)动态类型
is运算符 ==是值相等而is必须是相同的引用才可以 l=[1,2,3] m=[1,2,3] print(l==m) # True print(l is m) # False sys模块 getref ...