当前位置:首页 » 操作系统 » kafka数据库

kafka数据库

发布时间: 2023-05-09 18:22:07

Ⅰ 大数据开发这么学习

分享大数据学习路线:

第一阶段为JAVASE+MYsql+JDBC

主要学习一些Java语言的概念,如字符、流程控制、面向对象、进程线程、枚举反射等,学习MySQL数据库的安装卸载及相关操作,学习JDBC的实现原理以及Linux基础知识,是大数据刚入门阶段。

第二阶段为分布式理论简介

主要讲解CAP理论、数据分布方式、一致性、2PC和3PC、大数据集成架构。涉及的知识点有Consistency一致性、Availability可用性、Partition
tolerance分区容忍性、数据量分布、2PC流程、3PC流程、哈希方式、一致性哈希等。

第三阶段为数据存储与计算(离线场景)

主要讲解协调服务ZK(1T)、数据存储hdfs(2T)、数据存储alluxio(1T)、数据采集flume、数据采集logstash、数据同步Sqoop(0.5T)、数据同步datax(0.5T)、数据同步mysql-binlog(1T)、计算模型MR与DAG(1T)、hive(5T)、Impala(1T)、任务调度Azkaban、任务调度airflow等。

第四部分为数仓建设

主要讲解数仓仓库的历史背景、离线数仓项目-伴我汽车(5T)架构技术解析、多维数据模型处理kylin(3.5T)部署安装、离线数仓项目-伴我汽车升级后加入kylin进行多维分析等;

第五阶段为分布式计算引擎

主要讲解计算引擎、scala语言、spark、数据存储hbase、redis、ku,并通过某p2p平台项目实现spark多数据源读写。

第六阶段为数据存储与计算(实时场景)

主要讲解数据通道Kafka、实时数仓druid、流式数据处理flink、SparkStreaming,并通过讲解某交通大数让你可以将知识点融会贯通。

第七阶段为数据搜索

主要讲解elasticsearch,包括全文搜索技术、ES安装操作、index、创建索引、增删改查、索引、映射、过滤等。

第八阶段为数据治理

主要讲解数据标准、数据分类、数据建模、图存储与查询、元数据、血缘与数据质量、Hive Hook、Spark Listener等。

第九阶段为BI系统

主要讲解Superset、Graphna两大技术,包括基本简介、安装、数据源创建、表操作以及数据探索分析。

第十阶段为数据挖掘

主要讲解机器学习中的数学体系、Spark Mlib机器学习算法库、Python scikit-learn机器学习算法库、机器学习结合大数据项目。

对大数据分析有兴趣的小伙伴们,不妨先从看看大数据分析书籍开始入门!B站上有很多的大数据教学视频,从基础到高级的都有,还挺不错的,知识点讲的很细致,还有完整版的学习路线图。也可以自己去看看,下载学习试试。

Ⅱ AWS正式发布Kafka云服务,不用再为配置复杂操心了

AWS在re:Invent 2018大会上首先发布了托管Apache Kafka消息队列服务(Amazon Managed Streaming for Apache Kafka,MSK)的消息,现在已经从预览成为正式服务。

Apache Kafka是一个分布式的消息队列系统,其使用发布以及订阅的架构,将产生的流数据的应用与利用流数据的角色分离。Apache Kafka让使用者可以捕捉如消息队列事件、交易、物联网等事件,或是应用与日志等流数据,还能实时进行分析,连续不间断地转换数据,并再将收到的数据经过处理后,分发到其他的数据湖和数据库中。

AWS提到,用户在生产环境中要配置Apache Kafka,需要克服一些障碍,特别是在后续的管理以及规模扩展工作上,而现在AWS正式推出的MSK服务,则由AWS负责管理任务,让用户可以简单地配置使用,而皮告谨且由于近几个版本的Kafka,都需要与节点协调程序Zookeeper共同使用,因此MSK服务也只要简单地设定,就能让Kafka与ZooKeeper一同运行。

使用MSK服务,用户可以在几分钟内创建集群,并使用AWS身分管理与访问控制IAM管理集群操作,也能通过ACM(AWS Certificate Manager)完全托管的TLS私密凭证颁发机构授权客户端,以TLS加密数据,并燃基使用KMS(AWS Key Management Service)中的密钥加密其他数据。当服务器发生故障时,MSK还会替换故障机器,自动执行修补,用户可以从Amazon CloudWatch中,监控服务的状态指标。

AWS表示,MSK与Kafka 1.1.1和2.1.0版本完全兼容,因此用户可以在AWS直接执行原本的Kafka应用以及工具,而不需要修改任何的代码,用户能使用开源工具MirrorMaker,将数据从现有的Kafka集群直接迁移到MSK上。

MSK的计价友帆方式是以Kafka Broker以及配置存储每小时计价,MSK的数据传输费用与原本的AWS数据传输相同,而集群所使用的Zookeeper节点,还有区域集群的Broker和Zookeeper节点互传数据是不额外收费的。现在用户已经可以在大部分的AWS区域使用到MSK服务,包括北美、亚洲与欧洲。

Ⅲ kafka数据 存在zookeeper哪个目录

在Zookeeper的官 网上有这么一句话:ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.
这大概描述了Zookeeper主要可轿岩以干哪些事情:配置管理,名字服务,提供分布式同步以及集群管理。那这些服务又到底是什么呢?我们为什么需要这样的服务?我早信们又为什么要使用Zookeeper来实现呢,使用Zookeeper有什么优势?接下来我会挨个介绍这些到底是什么,以及有哪些开源系统中使用了。
配置管理
在我们的应用中除了代码外,还有一些就是各种配置。比如数据库连接等。一般我们都是使用配置文件的方式,在代码中引入这些配置文件。但是当我们只有一种配置,只有一台服务器,并且不经常修改的时候,使用配置文件是一个很好的做法,但是如果我们配置非常多,有很多服务器都需要这个配置,而且还可能是动态的话使用配置文件就不是个好主意了。这个时候往往需要寻找一种集中管理配置的方法,我们在这个集中的地方修改了配置,所有对这个配置感兴趣陆帆轮的都可以获得变更。比如我们可以把配置放在数据库里,然后所有需要配置的服务都去这个数据库读取配置。但是,因为很多服务的正常运行都非常依赖这个配置,所以需要这个集中提供配置服务的服务具备很高的可靠性。一般我们可以用一个集群来提供这个配置服务,但是用集群提升可靠性,那如何保证配置在集群中的一致性呢? 这个时候就需要使用一种实现了一致性协议的服务了。Zookeeper就是这种服务,它使用Zab这种一致性协议来提供一致性。现在有很多开源项目使用Zookeeper来维护配置,比如在HBase中,客户端就是连接一个Zookeeper,获得必要的HBase集群的配置信息,然后才可以进一步操作。还有在开源的消息队列Kafka中,也使用Zookeeper来维护broker的信息。在Alibaba开源的SOA框架Dubbo中也广泛的使用Zookeeper管理一些配置来实现服务治理。
名字服务
名字服务这个就很好理解了。比如为了通过网络访问一个系统,我们得知道对方的IP地址,但是IP地址对人非常不友好,这个时候我们就需要使用域名来访问。但是计算机是不能是别域名的。怎么办呢?如果我们每台机器里都备有一份域名到IP地址的映射,这个倒是能解决一部分问题,但是如果域名对应的IP发生变化了又该怎么办呢?于是我们有了DNS这个东西。我们只需要访问一个大家熟知的(known)的点,它就会告诉你这个域名对应的IP是什么。在我们的应用中也会存在很多这类问题,特别是在我们的服务特别多的时候,如果我们在本地保存服务的地址的时候将非常不方便,但是如果我们只需要访问一个大家都熟知的访问点,这里提供统一的入口,那么维护起来将方便得多了。
分布式锁
其实在第一篇文章中已经介绍了Zookeeper是一个分布式协调服务。这样我们就可以利用Zookeeper来协调多个分布式进程之间的活动。比如在一个分布式环境中,为了提高可靠性,我们的集群的每台服务器上都部署着同样的服务。但是,一件事情如果集群中的每个服务器都进行的话,那相互之间就要协调,编程起来将非常复杂。而如果我们只让一个服务进行操作,那又存在单点。通常还有一种做法就是使用分布式锁,在某个时刻只让一个服务去干活,当这台服务出问题的时候锁释放,立即fail over到另外的服务。这在很多分布式系统中都是这么做,这种设计有一个更好听的名字叫Leader Election(leader选举)。比如HBase的Master就是采用这种机制。但要注意的是分布式锁跟同一个进程的锁还是有区别的,所以使用的时候要比同一个进程里的锁更谨慎的使用。
集群管理
在分布式的集群中,经常会由于各种原因,比如硬件故障,软件故障,网络问题,有些节点会进进出出。有新的节点加入进来,也有老的节点退出集群。这个时候,集群中其他机器需要感知到这种变化,然后根据这种变化做出对应的决策。比如我们是一个分布式存储系统,有一个中央控制节点负责存储的分配,当有新的存储进来的时候我们要根据现在集群目前的状态来分配存储节点。这个时候我们就需要动态感知到集群目前的状态。还有,比如一个分布式的SOA架构中,服务是一个集群提供的,当消费者访问某个服务时,就需要采用某种机制发现现在有哪些节点可以提供该服务(这也称之为服务发现,比如Alibaba开源的SOA框架Dubbo就采用了Zookeeper作为服务发现的底层机制)。还有开源的Kafka队列就采用了Zookeeper作为Cosnumer的上下线管理。
后记
在这篇文章中,列出了一些Zookeeper可以提供的服务,并给出了一些开源系统里面的实例。后面我们从Zookeeper的安装配置开始,并用示例进一步介绍Zookeeper如何使用。
(转载)

Ⅳ kafka 获取的数据怎么写进数据库

string str;
if (radioButton1.Checked == true)
{
str = radioButton1.Text;
}
写入数据御岩库的时候 就镇凯御写 radioButton1的Text 就好孙数 。。

Ⅳ 软件开发中的Kafka和数据库的关系是什么呢

首先明确说明Kafka不是数据库,它没有schema,也没有表,更没有索引。

1.它仅仅是生产消息流、消费消息流而已。从这个角度来说Kafka的确不像数据库,至少不像我们熟知的关系型数据库。

那么到底什么是数据库呢?或者说什么特性使得一个系统可以被称为数据库?经典的教科书是这么说的:数据库是提供 ACID 特性的,我们依次讨论下ACID。
1、持久性(rability)
我们先从最容易的持久性开始说起,因为持久性最容易理解。在80年代持久性指的是把数据写入到磁带中,这是一种很古老的存储设备,现在应该已经绝迹了。目前实现持久性更常见的做法是将数据写入到物理磁盘上,而这也只能实现单机的持久性。当演进到分布式系统时代后,持久性指的是将数据通过备份机制拷贝到多台机器的磁盘上。很多数据库厂商都有自己的分布式系统解决方案,如GreenPlum和Oracle RAC。它们都提供了这种多机备份的持久性。和它们类似,Apache Kafka天然也是支持这种持久性的,它提供的副本机制在实现原理上几乎和数据库厂商的方案是一样的。
2、原子性(atomicity)
数据库中的原子性和多线程领域内的原子性不是一回事。我们知道在Java中有AtomicInteger这样的类能够提供线程安全的整数操作服务,这里的atomicity关心的是在多个线程并发的情况下如何保证正确性的问题。而在数据库领域,原子性关心的是如何应对错误或异常情况,特别是对于事务的处理。如果服务发生故障,之前提交的事务要保证已经持久化,而当前运行的事务要终止(abort),它执行的所有操作都要回滚,最终的状态就好像该事务从未运行过那样。举个实际的例子,
第三个方法是采用基于日志结构的消息队列来实现,比如使用Kafka来做,如下图所示:
在这个架构中app仅仅是向Kafka写入消息,而下面的数据库、cache和index作为独立的consumer消费这个日志——Kafka分区的顺序性保证了app端更新操作的顺序性。如果某个consumer消费速度慢于其他consumer也没关系,毕竟消息依然在Kafka中保存着。总而言之,有了Kafka所有的异质系统都能以相同的顺序应用app端的更新操作,

3、隔离性(isolation)
在传统的关系型数据库中最强的隔离级别通常是指serializability,国内一般翻译成可串行化或串行化。表达的思想就是连接数据库的每个客户端在执行各自的事务时数据库会给它们一个假象:仿佛每个客户端的事务都顺序执行的,即执行完一个事务之后再开始执行下一个事务。其实数据库端同时会处理多个事务,但serializability保证了它们就像单独执行一样。举个例子,在一个论坛系统中,每个新用户都需要注册一个唯一的用户名。一个简单的app实现逻辑大概是这样的:
4、一致性(consistency)
最后说说一致性。按照Kelppmann大神的原话,这是一个很奇怪的属性:在所有ACID特性中,其他三项特性的确属于数据库层面需要实现或保证的,但只有一致性是由用户来保证的。严格来说,它不属于数据库的特性,而应该属于使用数据库的一种方式。坦率说第一次听到这句话时我本人还是有点震惊的,因为从没有往这个方面考虑过,但仔细想想还真是这么回事。比如刚才的注册用户名的例子中我们要求每个用户名是唯一的。这种一致性约束是由我们用户做出的,而不是数据库本身。数据库本身并不关心或并不知道用户名是否应该是唯一的。针对Kafka而言,这种一致性又意味着什么呢?Kelppmann没有具体展开,

希望能帮到你,谢谢!

Ⅵ canal+Kafka实现mysql与redis数据同步

前言

上篇文章简单介绍canal概念,本文结合常见的缓存业务去讲解canal使用。在实际开发过程中,通常都会把数据往redis缓存中保存一份,做下简单的查询优化。如果这时候数据库数据发生变更操作,就不得不在业务代码中写一段同步更新redis的代码,但是这种 数据同步的代码和业务代码糅合在一起 看起来不是很优雅,而且还会出现数据不一致问题。那能不能把这部分同步代码从中抽离出来,形成独立模块呢?答案是肯定的,下面通过canal结合Kafka来实现mysql与redis之间的数据同步。

架构设计

通过上述结构设计图可以很清晰的知道用到的组件:MySQL、Canal、Kafka、ZooKeeper、Redis。


Kafka&Zookeeper搭建

首先在 官网 下载Kafka:

下载后解压文件夹,可以看到以下几个文件:

Kafka内部自带了zookeeper,所以暂不需要去下载搭建zookeeper集群,本文就使用Kafka自带zookeeper来实现。

通过上述zookeeper启动命令以及Kafka启动命令把服务启动,可以通过以下简单实现下是否成功:

Canal搭建

canal搭建具体可以参考上文,这里只讲解具体的参数配置:

找到/conf目录下的canal.properties配置文件:

然后配置instance,找到/conf/example/instance.properties配置文件:

经过上述配置后,就可以启动canal了。

测试

环境搭建完成后,就可以编写代码进行测试。

1、引入pom依赖

2、封装Redis工具类

在application.yml文件增加以下配置:

封装一个操作Redis的工具类:

3、创建MQ消费者进行同步

创建一个CanalBean对象进行接收:

最后就可以创建一个消费者CanalConsumer进行消费:

测试Mysql与Redis同步

mysql对应的表结构如下:

启动项目后,新增一条数据:

可以在控制台看到以下输出:

如果更新呢?试一下Update语句:

同样可以在控制台看到以下输出:

经过测试完全么有问题。


总结

既然canal这么强大,难道就没缺点嘛?答案当然是存在的啦,比如:canal只能同步增量数据、不是实时同步而是准实时同步、MQ顺序问题等; 尽管有一些缺点,毕竟没有一样技术或者产品是完美的,最重要是合适。比如公司目前有个视图服务提供宽表搜索查询功能就是通过 同步Mysql数据到Es采用Canal+Kafka的方式来实现的。

Ⅶ kafka的原理是什么

在 kafka 中, topic 是一个存储消息的逻辑碰铅概念,可以认为是一个消息集合。每条消息发送到 kafka 集群的消息都有一个topic。物理上来说,不同的 topic 的消息是分开存储的,每个 topic 可以有多个生产者向它发送消息,也可以有多个消费者去消费其中的消息。

partition分区是topic的进一步拆分,每个topic可以拆分为多个partition分区,类似于数据库中表的水平拆分,每条消息都会分到某一个分区当中,分区内部会给消息分配一个offset来表示消息的顺序所在。

多个生产者可以向topic发送消息,消息可以按照一定规则均匀分布在各尘模个partition里面,由于各个partition物理上也是隔离存储的,这点就类似于数据库对于表做水平拆分来提高性能。

(7)kafka数据库扩展阅读

Kafka它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上笑兄好的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。

Ⅷ 大数据Kafka有哪些优势能力呢

Kafka的高吞吐能力、缓存机制能有效的解决高峰流量冲击问题。实践表明,在未将kafka引入系统前,当互联网关发送的数据量较大时,往往会挂起关系数据库,数据常常丢失。在引入kafka后,更新程序能够结合能力自主处理消息,不会引起数据丢失,关系型数据库的压力波动不会发生过于显着的变化,不会出现数据库挂起锁死现象。

依靠kafka的订阅分发机制,实现了一次发布,各分支依据需求自主订阅的功能。避免了各分支机构直接向数据中心请求数据,或者数据中心依次批量向分支机构传输数据以致实时性不足的情况。kafka提高了实时性,减轻了数据中心的压力,提高了效率。为了帮助大家让学习变得轻松、高效,给大家免费分享一大批资料,帮助大家在成为大数据工程师,乃至架构师的路上披荆斩棘。在这里给大家推荐一个大数据学习交流圈:658558542 欢迎大家进群交流讨论,学习交流,共同进步。

当真正开始学习的时候难免不知道从哪入手,导致效率低下影响继续学习的信心。

但最重要的是不知道哪些技术需要重点掌握,学习时频繁踩坑,最终浪费大量时间,所以有有效资源还是很有必要的。

消费者是以consumer group消费者组的方式工作,由一个或者多个消费者组成一个组,共同消费一个topic。每个分区在同一时间只能由group中的一个消费者读取,但是多个group可以同时消费这个partition。在图中,有一个由三个消费者组成的group,有一个消费者读取主题中的两个分区,另外两个分别读取一个分区。某个消费者读取某个分区,也可以叫做某个消费者是某个分区的拥有者。
在这种情况下,消费者可以通过水平扩展的方式同时读取大量的消息。另外,如果一个消费者失败了,那么其他的group成员会自动负载均衡读取之前失败的消费者读取的分区。

  • 消费方式

  • consumer采用pull(拉)模式从broker中读取数据。

  • push(推)模式很难适应消费速率不同的消费者,因为消息发送速率是由broker决定的。它的目标是尽可能以最快速度传递消息,但是这样很容易造成consumer来不及处理消息,典型的表现就是拒绝服务以及网络拥塞。而pull模式则可以根据consumer的消费能力以适当的速率消费消息。

  • 对于Kafka而言,pull模式更合适,它可简化broker的设计,consumer可自主控制消费消息的速率,同时consumer可以自己控制消费方式——即可批量消费也可逐条消费,同时还能选择不同的提交方式从而实现不同的传输语义。

  • pull模式不足之处是,如果kafka没有数据,消费者可能会陷入循环中岩余,一直等待盯粗数据到达。为了避免这种情况,我们在我们的拉请求中有参数,允许消费者请求在等待数据到达的“长轮询”中进行阻塞(并且可选地等待到给定的字节数,以确保大的传输大小)。

  • 消费者组的偏移量等信息存储在zookeeper中的consumers节点中。

6.1 Kafka Procer 压力测试

  • record-size 是一条信息有多大,单位是字节。

  • num-records 是总共发送多少条信息。

  • throughput 是每秒多凯枣镇少条信息,设成-1,表示不限流,可测出生产者最大吞吐量。

Ⅸ “根本就不需要 Kafka 这样的大型分布式系统!”

作者 | Normcore Tech

译者 | 弯月,责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

以下为译文:

可能有人没有听说过Kafka,这是一个非常复杂的分布式软件,可协调多台计算机之间的数据传输。更具体地说,该软件的功能是“展平”数据,然后快速地将数据从一个地方移动到另一个地方。一般来讲,如果你有很多数据需要快速处理并发送到其他地方,那么就可以考虑一下Kafka。Kafka还可以在一定期限内保留数据,比如设置数据保存2天、3天或7天,如果你的下游流程失败,那么你还可以利用存储在Kafka中的数据重新处理。

许多处理汇总数据的公司(比如Facebook和Twitter等社交网络数据,以及每晚需要处理大量星体巧尺运动的天文学家,或需要快速了解车辆周围环境数据的自动驾驶车辆公司等)都在使用Kafka,将任意地方生产的数据(即用户通过键盘输入的数据,通过望远镜读取的数据,通过车辆遥测读取的数据等)移动至下游流程进行处理和分析。

最近,WeWork更为名The We Company,他们在共享工作间领域取得了成功,其官网宣称公司的使命为:

“提升世界的意识。”其核心业务是从房地产出租公司那里租下办公室,然后转租给无法按照传统流程租赁办公室的个人和小公司。

为了“提升世界的意识”,该公司致力于为世界各地的个人和公司的团队打造独特却又不完全相同的办公空间。最近,该公司还开始涉足教育。

最近,因为上市,WeWork曝光了一些财务信息:

从好的方面来看,根据A xi os的数据,2018年WeWork的入住率为90%,且会员总数在不断增加。

有人常常将WeWork视为硅谷地区的公司过高估值的完美例子。作为一家房地产企业,WeWork烧钱的速度非常快,毫无疑问他们必须努力让公众市场投资者相信公司有长远的发展,同时和还要维护其作为 科技 公司的地位。

这家公司再三强调说它不是一家房地产公司(毕竟它在不断烧钱对吧?),那么一家消息中介技术公司究竟能提供什么?WeWork曾宣布,它使用Kafka来实现“内部部署的物联网需求”。这是什么意思?

“我们的产品是物理空间,”WeWork的首席开发负责人David Fano说,他在会议期间穿着一件印有“bldgs = data”字样的T恤。

每个办公室都有10个环境传感器——小巧的壁挂式绿色盒子,这些传感器可跟踪室内温度、湿度、空气质量、气压和环境光线水平。还有20个白色的壁挂式信标孝裤高,呈三角形分布在公共空间(开放式办公区和会议室),用于测量WeWork成员的室内位置(数据是匿名的)。顶部四分之一的传感器通过计算机视觉观察成员的活动。

换句话说,WeWork会跟踪WeWork的多个物理事件并记录所有这些数据。但是......他们真的有必要这样做吗?记录Keith Harring壁画周围开放区域的环境温度能给他们带来怎样的竞争优势?更重要的是,他们能否将这些信息用到重要的项目中?

对于公司而言,重要的是要了解办公室的“单位组合” ——私人办公室、会议空间和开放式办公桌——的比例,我们可以利用这些信息对下一个办公间作出调整。

我觉得这家新闻报道机构需要建立一种思考技术的心理模型。Ben Thompson为Stratechery提供了出色的服务,他建立了聚合理论(https://stratechery .com /concepts/),我在努力为这些理论建立一个网站,如果必须从中选择一个的话,那便是:

大多数创业公司(以及大公司)现有的技术栈都没有必要。

在此,我想挑战一下那些自认为可以在一个周末期间独自建立Facebook的Hacker News上的开发人员,我认为WeWork的实际业务和架构问题在于:

WeWork需要的只不过是清点进出的人数,然后对容量规划做优化而已,追踪“气压”有什么用?只要你有WeWork的ID,那你肯定是个人或公司。那么,在大堂里安装一个登记系统,并要求会议系统发放名牌,不是更简单吗?

第一项要求根本就不需要Kafka:

目前WeWork有280个办公间。纯仔假设每个办公间平均每天有1000个(有这么多吗?)成员出入。那么每天会产生280,000个事务。我们假设每个人在早餐时间进来一次,在午餐时间出入各一次,然后离开。那么每个人会产生4个事务。那么每天大约是100万个事务,这点数据量存储在最常用的开源关系数据库Postgres中就可以了。保守地说,Postgres每秒可以提供10,000次写入(如果设置得当,其写入次数会更高)。每天100万个事件,也就是每秒11次。根本就不是问题。

至于第二项要求,受预订会议室人数的影响,产生的数据量可能更高,但你不需要实时传输数据。你完全可以等到一天结束时批量处理或收集,这同样可以利用司空见惯的关系数据库。

与大型Postgres(或者是BigQuery,或选择其他关系数据库连接到接收JSON传感器数据的Web服务)相比,Kafka的日常开销要高出很多,因为分布式系统非常非常复杂,比传统的系统复杂得多。

Kafka是一个非常优秀的强大的工具,但各个公司在采用该软件时,需要三思而后行。杀鸡焉用牛刀,WeWork用Kafka来记录开放办公间的气压,实属大材小用。

虽然很多时候我们都不需要Kafka,但开发人员很喜欢推荐这个工具,因为他们可以借机积攒经验和谈资。开发人员喜欢用最尖端的技术来完成工作,有时甚至他们自己都没意识到这一点。

过度架构真实存在。 Nemil在一篇文章中说:

在职业生涯的早期,你遇到的大量设计不良的软件系统都要归咎于那些传播错误观点的工程媒体。

在大学和培训班中,你对工程的了解主要来自工程媒体,例如 Hacker News、聚会、会议、Free Code Camp和Hacker Noon等。这些网站广泛讨论的技术(比如微服务、前端框架或区块链)自然会现在你的技术栈中,虽然不是很必要。

使用这些技术栈会导致各个公司承担不必要的债务,导致他们不得不在风险投资周期中寻求更多的资金,无法迈向精益或从别人的资金中解脱出来。

这种不幸的趋势只会持续下去,我们唯一能做的就是公之于众。

原文:https://vicki.substack .com /p/you-dont-need-kafka

【END】

热点内容
如何退出登录的服务器界面 发布:2025-05-16 07:41:58 浏览:69
机斗勇者2勇者证密码多少 发布:2025-05-16 07:40:18 浏览:46
sql字符串包含字符串 发布:2025-05-16 07:37:29 浏览:993
java制作教程视频 发布:2025-05-16 07:35:55 浏览:250
搞笑解压舞 发布:2025-05-16 07:25:44 浏览:265
c封装源码 发布:2025-05-16 07:18:34 浏览:795
百度java下载 发布:2025-05-16 07:13:25 浏览:186
如何用c语言解方程 发布:2025-05-16 07:12:51 浏览:791
phpjson转对象 发布:2025-05-16 07:07:42 浏览:55
static变量初始化java 发布:2025-05-16 07:05:20 浏览:249