网站开发 例子网站的页面布局

news/2025/9/27 22:44:14/文章来源:
网站开发 例子,网站的页面布局,阿勒泰地区网站,一个服务器可以做多个网站吗简介#xff1a; RocketMQ作为业务消息的首选#xff0c;在消息和流处理领域被广泛应用。而微服务生态Spring框架也是业务开发中最受欢迎的框架#xff0c;两者的完美契合使得RocketMQ成为Spring Messaging实现中最受欢迎的消息实现。本文展示了5种在Spring生态中文玩转Rock…简介 RocketMQ作为业务消息的首选在消息和流处理领域被广泛应用。而微服务生态Spring框架也是业务开发中最受欢迎的框架两者的完美契合使得RocketMQ成为Spring Messaging实现中最受欢迎的消息实现。本文展示了5种在Spring生态中文玩转RocketMQ的方式并描述了每个项目的特点和使用场景。文末可以直达在线体验。 RocketMQ作为业务消息的首选在消息和流处理领域被广泛应用。而微服务生态Spring框架也是业务开发中最受欢迎的框架两者的完美契合使得RocketMQ成为Spring Messaging实现中最受欢迎的消息实现。本文展示了5种在Spring生态中文玩转RocketMQ的方式并描述了每个项目的特点和使用场景。文末可以直达在线体验。 一 前言 上世纪90年代末随着Java EE(Enterprise Edition)的出现特别是Enterprise Java Beans的使用需要复杂的描述符配置和死板复杂的代码实现增加了广大开发者的学习曲线和开发成本由此基于简单的XML配置和普通Java对象(Plain Old Java Objects)的Spring技术应运而生依赖注入(Dependency Injection), 控制反转(Inversion of Control)和面向切面编程(AOP)的技术更加敏捷地解决了传统Java企业及版本的不足。随着Spring的持续演进基于注解(Annotation)的配置逐渐取代了XML文件配置。除了依赖注入、控制翻转、AOP这些技术Spring后续衍生出AMQP、Transactional、Security、Batch、Data Access等模块涉及开发的各个领域。 2014年4月1日Spring Boot 1.0.0正式发布。它基于“约定大于配置”Convention over configuration)这一理念来快速地开发测试运行和部署Spring应用并能通过简单地与各种启动器(如spring-boot-web-starter)结合让应用直接以命令行的方式运行不需再部署到独立容器中。Spring Boot的出现可以说是Spring框架的第二春它不但简化了开发的流程目前更是事实标准。下面这幅图可以看出相同功能的Spring和Spring Boot的代码实现对比。 Apache RocketMQ是一款是业界知名的分布式消息和流处理中间件它主要功能是消息分发、异步解耦、削峰填谷等。RocketMQ是一款金融级消息及流数据平台RocketMQ在交易、支付链路上用的很多主要是对消息链路质量要求非常高的场景能够支持万亿级消息洪峰。RocketMQ在业务消息中被广泛应用并衍生出顺序消息、事务消息、延迟消息等匹配各类业务场景的特殊消息。 本文的主角就是Spring和RocketMQ那几乎每个Java程序员都会使用Spring框架与支持丰富业务场景的RocketMQ会碰撞出怎么样的火花 二 RocketMQ与Spring的碰撞 在介绍RocketMQ与Spring故事之前不得不提到Spring中的两个关于消息的框架Spring Messaging和Spring Cloud Stream。它们都能够与Spring Boot整合并提供了一些参考的实现。和所有的实现框架一样消息框架的目的是实现轻量级的消息驱动的微服务可以有效地简化开发人员对消息中间件的使用复杂度让系统开发人员可以有更多的精力关注于核心业务逻辑的处理。 1 Spring Messaging Spring Messaging是Spring Framework 4中添加的模块是Spring与消息系统集成的一个扩展性的支持。它实现了从基于JmsTemplate的简单的使用JMS接口到异步接收消息的一整套完整的基础架构Spring AMQP提供了该协议所要求的类似的功能集。在与Spring Boot的集成后它拥有了自动配置能力能够在测试和运行时与相应的消息传递系统进行集成。 单纯对于客户端而言Spring Messaging提供了一套抽象的API或者说是约定的标准对消息发送端和消息接收端的模式进行规定比如消息Messaging对应的模型就包括一个消息体Payload和消息头Header。不同的消息中间件提供商可以在这个模式下提供自己的Spring实现在消息发送端需要实现的是一个XXXTemplate形式的Java Bean结合Spring Boot的自动化配置选项提供多个不同的发送消息方法在消息的消费端是一个XXXMessageListener接口实现方式通常会使用一个注解来声明一个消息驱动的POJO提供回调方法来监听和消费消息这个接口同样可以使用Spring Boot的自动化选项和一些定制化的属性。 在Apache RocketMQ生态中RocketMQ-Spring-Boot-Starter下文简称RocketMQ-Spring就是一个支持Spring Messaging API标准的项目。该项目把RocketMQ的客户端使用Spring Boot的方式进行了封装可以让用户通过简单的annotation和标准的Spring Messaging API编写代码来进行消息的发送和消费也支持扩展出RocketMQ原生API来支持更加丰富的消息类型。在RocketMQ-Spring毕业初期RocketMQ社区同学请Spring社区的同学对RocketMQ-Spring代码进行review引出一段罗美琪RocketMQ和春波特Spring Boot故事的佳话[1]著名Spring布道师Josh Long向国外同学介绍如何使用RocketMQ-Spring收发消息[2]。RocketMQ-Spring也在短短两年时间超越Spring-Kafka和Spring-AMQP注:两者均由Spring社区维护成为Spring Messaging生态中最活跃的消息项目。 2 Spring Cloud Stream Spring Cloud Stream结合了Spring Integration的注解和功能它的应用模型如下 Spring Cloud Stream框架中提供一个独立的应用内核它通过输入(Input)和输出(Output)通道与外部世界进行通信消息源端(Source)通过输入通道发送消息消费目标端(Sink)通过监听输出通道来获取消费的消息。这些通道通过专用的Binder实现与外部代理连接。开发人员的代码只需要针对应用内核提供的固定的接口和注解方式进行编程而不需要关心运行时具体的Binder绑定的消息中间件。 在运行时Spring Cloud Stream能够自动探测并使用在classpath下找到的Binder。这样开发人员可以轻松地在相同的代码中使用不同类型的中间件仅仅需要在构建时包含进不同的Binder。在更加复杂的使用场景中也可以在应用中打包多个Binder并让它自己选择Binder甚至在运行时为不同的通道使用不同的Binder。 Binder抽象使得Spring Cloud Stream应用可以灵活的连接到中间件加之Spring Cloud Stream使用利用了Spring Boot的灵活配置配置能力这样的配置可以通过外部配置的属性和Spring Boot支持的任何形式来提供包括应用启动参数、环境变量和application.yml或者application.properties文件部署人员可以在运行时动态选择通道连接destination例如RocketMQ的topic或者RabbitMQ的exchange。 Spring Cloud Stream屏蔽了底层消息中间件的实现细节希望以统一的一套 API 来进行消息的发送/消费底层消息中间件的实现细节由各消息中间件的 Binder 完成。Spring官方实现了Rabbit binder和Kafka Binder。Spring Cloud Alibaba实现了RocketMQ Binder[3]其主要实现原理是把发送消息最终代理给了RocketMQ-Spring的RocketMQTemplate在消费端则内部会启动RocketMQ-Spring Consumer Container来接收消息。以此为基础Spring Cloud Alibaba还实现了Spring Cloud Bus RocketMQ 用户可以使用RocketMQ作为Spring Cloud体系内的消息总线来连接分布式系统的所有节点。通过Spring Cloud Stream RocketMQ BinderRocketMQ可以与Spring Cloud生态更好的结合。比如与Spring Cloud Data Flow、Spring Cloud Funtion结合让RocketMQ可以在Spring流计算生态、Serverless(FaaS)项目中被使用。 如今Spring Cloud Stream RocketMQ Binder和Spring Cloud Bus RocketMQ做为Spring Cloud Alibaba的实现已登陆Spring的官网[4]Spring Cloud Alibaba也成为Spring Cloud最活跃的实现。 三 如何在Spring生态中选择RocketMQ实现 通过介绍Spring中的消息框架介绍了以RocketMQ为基础与Spring消息框架结合的几个项目主要是RocketMQ-Spring、Spring Cloud Stream RocketMQ Binder、Spring Cloud Bus RocketMQ、Spring Data Flow和Spring Cloud Function。它们之间的关系可以如下图表示。 如何在实际业务开发中选择相应项目进行使用下面分别列出每个项目的特点和使用场景。 RocketMQ-Spring 特点 作为起步依赖简单引入一个包就能在Spring生态用到RocketMQ客户端的所有功能。利用了大量自动配置和注解简化了编程模型并且支持Spring Messaging API。与RocketMQ 原生Java SDK的功能完全对齐。 使用场景 适合在Spring Boot中使用RocketMQ的用户希望能用到RocketMQ原生java客户端的所有功能并通过Spring注解和自动配置简化编程模型。 Spring Cloud Stream RocketMQ Binder 特点 屏蔽底层MQ实现细节上层Spring Cloud Stream的API是统一的。如果想从 Kafka切到RocketMQ直接改个配置即可。与 Spring Cloud 生态整合更加方便。比如Spring Cloud Data Flow这上面的流计算都是基于Spring Cloud StreamSpring Cloud Bus消息总线内部也是用的Spring Cloud Stream。Spring Cloud Stream提供的注解编程体验都是非常棒。 使用场景 在代码层面能完全屏蔽底层消息中间件的用户并且希望能项目能更好的接入Spring Cloud生态Spring Cloud Data Flow、Spring Cloud Funtcion等。 Spring Cloud Bus RocketMQ 特点 将RocketMQ作为事件的“传输器”通过发送事件消息到消息队列上从而广播到订阅该事件消息的所有节点上完成事件的分发和通知。 使用场景 在Spring生态中希望用RocketMQ做消息总线的用户可以用在应用间事件的通信配置中心客户端刷新等场景。 Spring Cloud Data Flow 特点 以Source/Processor/Sink组件进行流式任务处理。RocketMQ作为流处理过程中的中间存储组件。 使用场景 流处理大数据处理场景。 Spring Cloud Function 特点 消息的消费/生产/处理都是一次函数调用融合Java生态的Function模型。 使用场景 Serverless场景。 本文整体介绍了在Spring生态中接入RockeMQ的5种方法让各位开发者对几种经典场景有宏观的了解。后续会有专栏详细介绍上述各个项目的具体使用方法和应用场景真正地在Spring生态中玩转RocketMQ点击“阅读原文”直达知行动手实验室直接上手体验3个最常用的在Spring生态中接入RocketMQ的方式。 原文链接 本文为阿里云原创内容未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win11 安装 Python

https://www.python.org/downloads/

IP新定义下的商业新范式:基于定制开发开源AI智能名片S2B2C商城小应用的IP价值变现研究

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

mysql的单表多大要考虑分库分表

一、问题背景 第一个问题,mysql的话,一般单表行数达到多少性能会开始明显下降,然后一般推荐单表行数到多少建议做分库分表呢;第二个问题,mysql的单库最大可支持的qps是多少,一般qps到了多少之后,会推荐进行分库…

深入解析:修电脑日志--电脑卡顿,需重装系统

深入解析:修电脑日志--电脑卡顿,需重装系统2025-09-27 22:41 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: b…

广州市网站建设分站价格网站统计

本文是参考了Joey的博客后整理的。 先从一个简单扩展jQuery对象的demo开始说起: //sample:扩展jquery对象的方法,redTextColor()用于改变字体颜色。(function ($) {$.fn.extend({"redTextColor": function () {// 默认字体颜色为红色return th…

盐城网站设计做竞猜网站合法吗

SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络上安全地进行远程登录和执行命令。它通过加密通信和身份验证机制,确保用户和系统之间的通信是安全的。 SSH协议的主要功能包括: 加密通信:SSH使…

2025 采购传感器不踩坑!国内传感器优秀厂家清单:解决精度,防爆,极端环境难题

采购传感器时,你是不是常遇到这些麻烦?想要高精度产品,却怕实际测量误差大;需要防爆、防水款,又担心认证不全不达标;面对极端高温低温环境,不知道选哪个品牌靠谱。市场上品牌多、参数杂,光看宣传根本辨不出好坏…

sg.有没有一个可视化辅助设计pysimplegui布局的小工具?

目前没有专门针对PySimpleGUI布局的可视化辅助设计独立工具,但可通过以下方式实现类似效果: 官方Demo中的布局示例 PySimpleGUI官方提供了Demo程序,其中包含大量布局示例。用户可以通过运行官方Demo,查看不同布局的…

无刷电机速度闭环控制

无刷电机有感方波闭环控制 前面已经实现了无刷电机的六步换向控制以及三相电流采集、电压温度采集。本章将学习如何利用PID实现速度环闭环控制和速度+电流双闭环控制。 速度闭环控制 想要实现速度闭环,必须知道此时的…

网站维护常识广州建网站新科网站建设

torch.where()中一般有三个参数。 第一个参数是一个判断条件。 第二个参数是条件成立时的值。 第三个参数是条件不成立时的值。 for batch in range(2):for i in range(256):for j in range(256):output[batch][i][j] 0 if tensor_count_0[A_arg[batch,i,j]][B_arg[batch,i…

seo网站优化专员桂林象鼻山水月洞

PERCONA PERFORMANCE CONFERENCE 2009上,来自雅虎的几位工程师带来了一篇”Efficient Pagination Using MySQL“的报告,有很多亮点,本文是在原文基础上的进一步延伸。首先看一下分页的基本原理:mysql> explain SELECT * FROM m…

长沙市网站建设公司代理商榆林建设网站

讀題 1143.最长公共子序列 自己看到题目的第一想法 看起來跟最長重複子数組很類似,但是要怎麼去推遞推的狀態沒有想法 看完代码随想录之后的想法 看完之後,大概釐清了整體想法,可以想成說,因為我們要考慮的是不連續的子序列&…

sg.如何使用PySimpleGUI调试器实时监控变量

在PySimpleGUI调试器中实时监控变量,可以通过调试器窗口的Variables标签页或弹出式调试窗口(Popout)实现。以下是详细步骤和技巧:一、核心方法:使用调试器窗口的Variables标签页启用调试器窗口 在代码中调用sg.sh…

微信小程序云开发 授权手机号快捷登陆

微信小程序云开发-登录功能(微信授权登录)来自: 微信小程序云开发-登录功能(微信授权登录) - AnnLing - 博客园一、创建页面load 创建页面load 二、需求说明 登录之前,【我的】头像和文字显示为默认显示。微信授…

newDay05

1.把离散,英语和java作业写了,复习算法与数据结构,背单词,没啥时间学Java了 2.代码大全那两本书到了,可以看看 3.学java的进度还是太慢了,好多题不会做

AtCoder Beginner Contest 425 ABCDEF 题目解析

A - Sigma Cubes 题意 给定一个正整数 \(N\),求出 \(\displaystyle \sum_{i=1}^N (-1)^i \times i^3\) 。 代码 void solve() {int n, sum = 0;cin >> n;for(int i = 1; i <= n; i++){if(i % 2 == 1)sum -= …

网页设计后怎么上传到网站曰本免费一级a做爰视频网站

文字描边想要在网页里实现文本描边效果&#xff0c;在以前只能使用Photoshop等来实现&#xff0c;但现在只需要一个text-stroke属性&#xff0c;即可轻松做到文本描边&#xff0c;渐变文本描边&#xff0c;甚至图片文本描边。01语法text-stroke: text-stroke是一个复合属性&…

p2p免费网站建设广告推广有哪些平台

pipeline自动化&#xff0c;提交代码后&#xff0c;就自动打包&#xff0c;打包成功后自动发布 第一步 pipeline提交代码后&#xff0c;自动打包。 1 在Repos,分支里选择要触发的分支&#xff0c;这里选择cn_china,对该分支设置分支策略 2 在生产验证中增加新的策略 3 在分支安…

阿里云官网首页德阳seo网站建设

目录 对 Redux 的理解&#xff0c;主要解决什么问题&#xff1f;Redux 原理及工作流程 对 Redux 的理解&#xff0c;主要解决什么问题&#xff1f; Redux是一个用于管理数据状态和UI状态的JavaScript应用工具&#xff0c;主要解决了在复杂JavaScript单页应用&#xff08;SPA&a…

maven打包依赖

4.0.0 <groupId>com.zhihe</groupId> <artifactId>testPlC</artifactId> <version>1.0</version> <packaging>jar</packaging><name>testPlC</name> <…