当前位置: 首页 > news >正文

新华书店网站建设做网站需要具备什么

新华书店网站建设,做网站需要具备什么,建设银行预约纪念钞网站,在线教学视频网站建设文章目录 概述**核心概念****使用场景****快速入门**1. 添加依赖2. 配置 Binder3. 定义消息通道4. 发送和接收消息5. 运行应用 **高级特性****优点****适用场景** 概述 Spring Cloud Stream 是一个用于构建消息驱动微服务的框架,它基于 Spring Boot 和 Spring Inte…

文章目录

    • 概述
      • **核心概念**
      • **使用场景**
      • **快速入门**
        • 1. 添加依赖
        • 2. 配置 Binder
        • 3. 定义消息通道
        • 4. 发送和接收消息
        • 5. 运行应用
      • **高级特性**
      • **优点**
      • **适用场景**

概述

Spring Cloud Stream 是一个用于构建消息驱动微服务的框架,它基于 Spring BootSpring Integration,提供了与消息中间件(如 Kafka、RabbitMQ 等)的集成。通过 Spring Cloud Stream,开发者可以轻松地将消息传递机制引入到微服务架构中,而无需直接与底层消息中间件交互。

核心概念

  1. Binder

    • Binder 是 Spring Cloud Stream 的核心组件,用于与消息中间件(如 Kafka、RabbitMQ)集成。
    • 它抽象了底层消息中间件的细节,开发者只需通过配置即可切换不同的消息中间件。
    • 例如:spring-cloud-starter-stream-kafkaspring-cloud-starter-stream-rabbit
  2. Binding

    • Binding 是消息通道(Channel)与消息中间件之间的桥梁。
    • 分为 输入绑定(Input Binding)输出绑定(Output Binding)
      • 输入绑定:用于接收消息。
      • 输出绑定:用于发送消息。
  3. Message Channel

    • 消息通道是 Spring Cloud Stream 中的抽象概念,用于发送和接收消息。
    • 常用的通道接口:
      • MessageChannel:用于发送消息。
      • SubscribableChannel:用于订阅消息。
  4. Message

    • 消息是 Spring Cloud Stream 中的基本数据单元,包含 Payload(消息体)Headers(消息头)

使用场景

  • 事件驱动架构:通过消息传递实现服务之间的解耦。
  • 数据流处理:实时处理和分析数据流。
  • 异步通信:提高系统的响应速度和吞吐量。

快速入门

1. 添加依赖

pom.xml 中添加 Spring Cloud Stream 和 Binder 的依赖(以 Kafka 为例):

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-stream-kafka</artifactId>
</dependency>
2. 配置 Binder

application.yml 中配置 Kafka Binder:

spring:cloud:stream:bindings:input:destination: myTopicgroup: myGroupoutput:destination: myTopickafka:binder:brokers: localhost:9092
3. 定义消息通道

通过接口定义输入和输出通道:

import org.springframework.cloud.stream.annotation.Input;
import org.springframework.cloud.stream.annotation.Output;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.SubscribableChannel;public interface MyProcessor {String INPUT = "input";String OUTPUT = "output";@Input(INPUT)SubscribableChannel input();@Output(OUTPUT)MessageChannel output();
}
4. 发送和接收消息

编写服务类发送和接收消息:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.annotation.StreamListener;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.stereotype.Service;@EnableBinding(MyProcessor.class)
@Service
public class MyService {@Autowiredprivate MyProcessor processor;// 发送消息public void sendMessage(String message) {processor.output().send(MessageBuilder.withPayload(message).build());}// 接收消息@StreamListener(MyProcessor.INPUT)public void receiveMessage(String message) {System.out.println("Received: " + message);}
}
5. 运行应用

启动 Spring Boot 应用后,消息将通过 Kafka 发送和接收。

高级特性

  1. 消息分区

    • 通过配置分区策略,将消息分发到不同的分区中。
    • 示例配置:
      spring:cloud:stream:bindings:output:destination: myTopicproducer:partition-key-expression: headers['partitionKey']partition-count: 3
      
  2. 消息分组

    • 通过分组确保同一组内的消息只被一个消费者实例处理。
    • 示例配置:
      spring:cloud:stream:bindings:input:destination: myTopicgroup: myGroup
      
  3. 消息重试和错误处理

    • 通过配置重试策略和错误通道处理消息消费失败的情况。
    • 示例配置:
      spring:cloud:stream:bindings:input:destination: myTopicconsumer:max-attempts: 3back-off-initial-interval: 1000
      
  4. 多 Binder 支持

    • 支持同时使用多个消息中间件(如 Kafka 和 RabbitMQ)。
    • 示例配置:
      spring:cloud:stream:binders:kafkaBinder:type: kafkaenvironment:spring:kafka:bootstrap-servers: localhost:9092rabbitBinder:type: rabbitenvironment:spring:rabbitmq:host: localhostport: 5672
      

优点

  • 简化消息中间件集成:通过 Binder 抽象,屏蔽底层消息中间件的差异。
  • 灵活的配置:支持多种消息中间件和高级特性(如分区、分组、重试等)。
  • 与 Spring 生态无缝集成:基于 Spring Boot,易于与其他 Spring 组件(如 Spring Data、Spring Security)集成。

适用场景

  • 需要解耦的微服务架构。
  • 实时数据流处理。
  • 异步任务处理。

通过 Spring Cloud Stream,开发者可以快速构建高效、可靠的消息驱动微服务,同时享受 Spring 生态的强大支持。

http://www.yayakq.cn/news/215171/

相关文章:

  • 网站开发的上市公司有哪些为什么大公司开发网站
  • 郑州网站建设+论坛餐饮企业网站模板
  • 网站目录文件网站用绝对路径好还是相对路径seo
  • 网站建设的人性分析济南微信网站
  • 云南昆明做网站win7 iis 默认网站
  • 重庆网站建设学习搜索引擎优化教材答案
  • 做网站备案要多久建立无上气运皇朝
  • google网站管理员中心宁夏网页制作公司
  • flash素材网站有哪些展示型网站制作
  • 短网址网站用户界面设计模板
  • 在别人网站挂黑链数据分析网站怎么做
  • cms做视频网站松江品划网络做网站
  • 搭建网站 软件wordpress添加微信扫码支付宝
  • 在哪里建网站好设计网站的公司名称
  • 邢台seo一站式国家企业信用信息没有网站怎么做
  • 中国城乡住房和建设部网站首页使用代理服务器后看什么网站
  • 广州域名企业网站建站哪家好广州网站开发哪家公司好
  • 昆山做网站公司哪家好wordpress媒体库的目录错误
  • 彩票网站建设哪里高端建材项目
  • 教育培训网站设计怎么制作自己的二维码
  • 网站建设行业赚钱么上海学校网站建设
  • 深圳建模板网站一个前端页面多少钱
  • 微网站免费模板跨境电商平台有哪些可以加盟
  • 一个考试网站怎么做搜索网站内容
  • 一起做英语作业网站黄石手机网站建设
  • 中信建设有限责任公司官方网站跨境电商erp软件排名
  • seo网站营销分销系统方案
  • 网站开发细节怎么做才能使网站ip增多
  • 网站建设工资一月多少网站备案快速备案
  • 公众电影网站怎么做纯文本网站建设