如何制作一个母婴类网站并整合到微信小程序中?
摘要:建设母婴网站的总结,dede网站怎么做微信小程序,哪里培训网站开发好,健康私人定制网站怎么做kafka 一、简介1.1、场景选择,与其他mq相比1.2、应用场景1.2.1、流量消峰1.2.2、解耦1.2.3、异
建设母婴网站的总结,dede网站怎么做微信小程序,哪里培训网站开发好,健康私人定制网站怎么做kafka 一、简介1.1、场景选择#xff0c;与其他mq相比1.2、应用场景1.2.1、流量消峰1.2.2、解耦1.2.3、异步通讯 1.3、消息队列的两种模式1.3.1、点对点模式1.3.2、发布/订阅模式 1.4、Kafka 基础架构 二、安装部署2.1、安装包方式2.2、docker安装方式2.3、docker安装kafka-ma… kafka 一、简介1.1、场景选择与其他mq相比1.2、应用场景1.2.1、流量消峰1.2.2、解耦1.2.3、异步通讯 1.3、消息队列的两种模式1.3.1、点对点模式1.3.2、发布/订阅模式 1.4、Kafka 基础架构 二、安装部署2.1、安装包方式2.2、docker安装方式2.3、docker安装kafka-map图形化管理工具 三、Kafka 命令行操作3.1、主题命令行操作3.2、生产者命令行操作3.3、消费者命令行操作 四、Springboot整合Kafka4.1、依赖配置4.2、代码示例4.2.1、简单的生产、消费4.2.2、指定分区生产、消费4.2.3、消息确认 一、简介
1.1、场景选择与其他mq相比
1、目前企业中比较常见的消息队列产品主 要有 Kafka、ActiveMQ 、RabbitMQ 、RocketMQ 等。
在大数据场景主要采用 Kafka 作为消息队列。在 JavaEE 开发中主要采用 ActiveMQ、RabbitMQ、RocketMQ。 2、Kafka与其他消息队列MQ如ActiveMQ、RabbitMQ等相比有以下几个区别 磁盘存储Kafka将所有消息都保存在磁盘上并使用内存映射文件进行读写。这种存储方式可以支持大量的消息数据而且数据还可以保留很长时间比如几个月甚至几年。而其他MQ的存储方式多是基于内存不适合存储大量的数据。 分布式设计Kafka是作为分布式系统设计的可以在多个节点之间实现消息的高效传输和处理。其他MQ也支持分布式部署但Kafka在这方面更加优秀。 发布/订阅模式Kafka采用发布/订阅模式允许多个消费者同时订阅同一个主题而且Kafka消费者可以自定义从哪个位置开始消费消息。其他MQ中消费者一般需要通过消费者组来进行负载均衡而且其他MQ消费者只能从当前位置开始消费。 大数据处理Kafka最初是为大数据处理而设计的它可以非常高效地处理海量数据适合用于数据仓库、日志处理、统计分析等场景。其他MQ则更多用于异步通信、任务调度、实时通知等领域。 生态系统Kafka拥有非常丰富的生态系统包括Kafka Connect、Kafka Streams等工具和框架可以方便地与大数据处理平台如Hadoop、Spark、Flink等进行集成。其他MQ的生态系统相对较小。
1.2、应用场景
1.2.1、流量消峰
如双十一秒杀期间参与用户10亿人/s但是我们的系统只能支持处理能力1千万人/s为了避免服务挂掉或者请求超时等等问题我们可以将10亿的请求都写入到消息队列中我们系统再去取消息队列上的消息消费达到流量消峰的效果。 1.2.2、解耦
我们的数据源来源可能非常多不可能都全部去集成。例如场景我们要去买东西不用去知道他是在哪里进货的我们只需要去超市买就可以消息队列也是如此那么多的数据让他们全部写入到kafka消息队列中即可我们再去消息队列中获取我们的数据。 1.2.3、异步通讯
通常我们写代码如注册完要发短信如果同步处理等到发短信成功后再返回结果给用户这样请求时间太久了。 消息队列的方式可以再注册的时候发送给队列我们这时候就可以返回给用户注册成功了然后消费者再去消费发送短信的队列达到异步的效果。 很多人可能会问多线程的方式不是也能实现到底选择多线程还是消息队列呢 当需要进行任务处理并且任务处理之间没有明显的依赖关系时使用消息队列更适合。将任务发送到消息队列中由消费者进行消费这样可以实现解耦、提高可靠性和系统的扩展性。例如一个网站需要生成大量的报告将报告生成请求通过消息队列进行异步处理是一个不错的选择。 当需要对任务进行精细控制并且任务处理之间存在明显的依赖关系时使用多线程更适合。多线程可以实现更加细粒度的任务处理可以控制任务的执行顺序、进行资源的共享等。例如一个电商网站需要实时监控库存的变化需要在某个商品的库存下降到一定数量时进行补货在这种情况下使用多线程处理更加合适。
总之消息队列和多线程都有自己的优势和劣势要根据具体的场景选择合适的方式才能更好地提高系统效率和可靠性。
