加入收藏 | 设为首页 | 会员中心 | 我要投稿 唐山站长网 (https://www.0315zz.com.cn/)- 数据安全、数据开发、文字识别、图像处理、媒体智能!
当前位置: 首页 > 站长资讯 > 动态 > 正文

背景介绍,应用场景分析、核心架构分析

发布时间:2021-03-16 13:53:09 所属栏目:动态 来源:互联网
导读:段背景,我们之前介绍RabbitMQ的时候,已经说过了,我们这里讲kakfa的时候,再把这一段给拿出来,再说明下。在讲实战前,我们还是有必要讲解下理论的,理论为辅,实战为主,在实战的基础上,再深入理解理论,底层原理,底层源码。下篇文章或者视频,我们将带

段背景,我们之前介绍RabbitMQ的时候,已经说过了,我们这里讲kakfa的时候,再把这一段给拿出来,再说明下。在讲实战前,我们还是有必要讲解下理论的,理论为辅,实战为主,在实战的基础上,再深入理解理论,底层原理,底层源码。下篇文章或者视频,我们将带你看官网学习kafka环境搭建、kafka基本用法、kafka的容错性测试,在掌握知识的同时,还能顺便学习下英文。

1)问题引入:

假设我们现在需要设计这样一个用户注册系统:用户注册完成后,需要给用户发送激活邮件,开通用户账号,记录用户IP、用户设备、时间等信息。

起初的设计:

存在的问题是:

由于多个系统强耦合在一起,用户注册响应会非常慢,严重影响了用户的体验,当流量大的时候,性能会更差。

3)引入消息中间件:

为了解决上述问题,我们引入消息中间件,来实现系统的解耦,多个系统间通过消息中间件进行异步通信,最终的设计图如下:
 

2、应用场景分析

1)异步通信

在很多时候,为了加快应用系统整体运转速度,并不需要立即响应某些请求,消息中间件提供了异步处理机制,允许将一些请求信息放入消息中间件中,但并不立即处理它,而是慢慢处理。在有限资源下,使用消息中间件能够使系统性能从容倍增!

如:用户注册成功的邮件通知;用户购物下单的信息通知;大数据日志收集处理

2)削峰

以防突发剧增流量瞬间冲垮系统,使用消息中间件可以支撑突发访问压力

3)业务系统解耦

系统间的耦合关系太强,会对系统的设计产生束缚,也会增加系统的复杂性,通过消息中间件可以更好的设计系统,是一个系统完成指定的功能,而不是将所有的功能融合在同一个系统中。

二、kafka简介

Kafka作为一种消息中间件,是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下:

以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能

高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输

支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输

同时支持离线数据处理和实时数据处理

1、kafka架构

(编辑:唐山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读