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

定制网站开发流程头条新闻 最新消息条

定制网站开发流程,头条新闻 最新消息条,html5 css3 超炫网站,网站测试的目的是什么Spring Cloud Stream 是一个用来为微服务应用构建消息驱动能力的框架。它可以基于 Spring Boot 来创建独立的、可用于生产的 Spring 应用程序。Spring Cloud Stream 为一些供应商的消息中间件产品提供了个性化的自动化配置实现,并引入了发布-订阅、消费组、分区这三…

        Spring Cloud Stream 是一个用来为微服务应用构建消息驱动能力的框架。它可以基于 Spring Boot 来创建独立的、可用于生产的 Spring 应用程序。Spring Cloud Stream 为一些供应商的消息中间件产品提供了个性化的自动化配置实现,并引入了发布-订阅、消费组、分区这三个核心概念。简单的说,Spring Cloud Stream本质上就是整合了Spring Boot和Spring Integration,实现了一套轻量级的消息驱动的微服务框架。

     目前 Spring Cloud Stream只支持 RabbitMQ 和 Kafka 的自动化配置。

     Spring Cloud Stream 提供了 Binder (负责与消息中间件进行交互),我们则通过 inputs 或者 outputs 这样的消息通道与 Binder 进行交互。Binder 绑定器是 Spring cloud Stream 中一个非常重要的概念,实现了应用程序和消息中间件之间的隔离,同时我们也可以通过应用程序实现,消息中间件之间的通信。在我们的项目的可以继承多种绑定器,我们可以根据不同特性的消息使用不同的消息中间件。Spring Cloud Stream 为我们实现了 RabbitMQ 和Kafka 的绑定器。如果你想使用其他的消息中间件需要自己去实现绑定器接口.

在 SpringCloudStream 3.x 版本前是通过 @StreamListener 和 @EnableBinding 进行消息的发送和消费的,springCloudStream 3.x 版本后 @StreamListener 和 @EnableBinding 都打上了@Deprecated 注解,不建议使用了;后续的版本更新中替换成函数式的方式实现。

既然通过四大函数式接口的方式替换了注解的方式 那么该如何进行绑定呢?

通过 spring.cloud.stream.function.definition:名称的方式进行绑定 公开 topic。

不管是创建 Consumer 还是 Supplier 或者是 Function Stream都会将其的 方法名称 进行 一个 topic拆封 和 绑定 假设 创建了一个 Consumer< String > myTopic 的方法,Stream 会将其 拆分成 In 和 out 两个通道:

  • 输入 - + -in- + < index >

     例如:myTopic-in-0

  • 输出 - + -out- + < index >

       例如:myTopic-out-0

注意:这里的 functionName需要和代码声明的函数名称还有spring.cloud.stream.function.definition下的名称保持一致(后面还会在项目实战中展示一遍)

代码示例:

----------------------------------项目实战--------------------------------------

看下我们项目中的配置,配置文件是放在nacos上面的:

消息发送:

/*** @ClassName MessageParamParentDto* @Author zxd* @Version 1.0.0* @Description TODO* @CreateTime 2023/6/13 11:27 - 星期二*/
@Data
public class MessageParamParentDto implements Serializable {private static final long serialVersionUID = 7963819193258646924L;private  String routeUrl;}

--------------------------------------------------------------------------------------------------------------

/*** @ClassName MessageParamDto* @Author kch* @Version 1.0.0* @Description 消息队列接收系统消息实体对象* @CreateTime 2022/9/18 15:16 - 星期日*/
@Data
public class MessageParamDto  extends MessageParamParentDto implements Serializable {private static final long serialVersionUID = 7111819193258646924L;/*** 消息模板code*/@NotNull(message = "消息模板不能为空")private String templateCode;/*** 可变参数,必传字段* 该参数匹配模板字符串中的变量和URL中的变量,所以模板和URL中的变量名不能重复*/@NotNull(message = "参数不能为空")private Map<String, String> params;/*** 消息详情跳转路径参数(没有不传,有参数按照URL参数拼接规范拼接,不加?号)* 例如:userId=1&userCode=test*/
//    private String routerParams;/*** 消息操作跳转路径参数(没有不传,有参数按照URL参数拼接规范拼接,不加?号)* 例如:userId=1&userCode=test*/
//    private String contentPathParams;/*** 接收者租户*/@NotNull(message = "接收者租户ID不能为空")private Long tenantId;/*** 接收人*/@NotNull(message = "接收者用户ID不能为空")@Size(min = 1, message = "接收者用户ID不能为空")private List<RecipientUser> recipientUsers;@Valid@Data@AllArgsConstructor@NoArgsConstructorpublic static class RecipientUser implements Serializable {/*** 接收人id*/@NotNull(message = "接收者用户ID不能为空")private Long recipientId;/*** 接收人手机号*/@Pattern(regexp = RegexPool.MOBILE, message = "手机格式错误")private String phone;}}

-----------------------------------------------------------------------------------------------------------

/*** @ClassName MessageMqBinding* @Author zpp* @Version 1.0.0* @Description TODO* @CreateTime 2023/2/10 15:37 - 星期五*/
public interface MessageMqBinding {/*** 系统消息生产者交换机*/String MESSAGE_MQ_OUTPUT = "dyzsMessageProvider-out-0";
}

----------------------------------------------------------------------------------------

@Slf4j
@RestController
@RequestMapping("/mq")
public class MessageMqController {@Resourceprivate StreamBridge streamBridge;/*** @param :* @Author zpp* @Description 发送系统消息* @Date 2023/2/10 15:27* @Return com.zysy.common.api.entity.Result<java.lang.Boolean>*/@PostMappingpublic Result<Boolean> sendMessage(@RequestBody @Validated MessageParamDto dto) {log.info("接收到系统消息发送请求:{}", JSONObject.toJSONString(dto));MessageMQParamDto paramDto = new MessageMQParamDto(dto);paramDto.setCreateBy(UserUtil.getUserId());paramDto.setCreateDept(UserUtil.getDeptId());List<MessageMQParamDto> paramDtoList = new ArrayList<>();paramDtoList.add(paramDto);MessageBuilder builder = MessageBuilder.withPayload(paramDtoList).setHeader("Content-Type", "application/json");return Result.success(streamBridge.send(MessageMqBinding.MESSAGE_MQ_OUTPUT, builder.build()));}

------------------------------------------------------------------------------------------------------

消息消费:

          下图是在代码中配置的消息消费者,这里的函数名称要和上图中的function.definition配置的名称一样;


文章转载自:
http://wanjiabiostrome.xnLj.cn
http://wanjiaabmigration.xnLj.cn
http://wanjiakodak.xnLj.cn
http://wanjiaautomatize.xnLj.cn
http://wanjiatitter.xnLj.cn
http://wanjiahumanism.xnLj.cn
http://wanjiamirth.xnLj.cn
http://wanjiamester.xnLj.cn
http://wanjiaepiphenomenon.xnLj.cn
http://wanjiaantimonate.xnLj.cn
http://wanjiacohesive.xnLj.cn
http://wanjialiberatress.xnLj.cn
http://wanjiaindoctrinate.xnLj.cn
http://wanjiapathoformic.xnLj.cn
http://wanjiapyridine.xnLj.cn
http://wanjiacascaron.xnLj.cn
http://wanjiaedd.xnLj.cn
http://wanjialinac.xnLj.cn
http://wanjiavida.xnLj.cn
http://wanjialongwall.xnLj.cn
http://wanjiastreptococci.xnLj.cn
http://wanjiaboiler.xnLj.cn
http://wanjiabinding.xnLj.cn
http://wanjiaproperties.xnLj.cn
http://wanjiamorning.xnLj.cn
http://wanjiaculminate.xnLj.cn
http://wanjiatremendous.xnLj.cn
http://wanjiadisbranch.xnLj.cn
http://wanjiapsychic.xnLj.cn
http://wanjiaqumran.xnLj.cn
http://wanjiadiatomaceous.xnLj.cn
http://wanjiawenceslas.xnLj.cn
http://wanjiaaccusatorial.xnLj.cn
http://wanjiaparlor.xnLj.cn
http://wanjiastainer.xnLj.cn
http://wanjiaramshorn.xnLj.cn
http://wanjiasteamboat.xnLj.cn
http://wanjiaarminianize.xnLj.cn
http://wanjiasignatureless.xnLj.cn
http://wanjiagalleon.xnLj.cn
http://wanjiabeta.xnLj.cn
http://wanjiabrickmason.xnLj.cn
http://wanjialeisureful.xnLj.cn
http://wanjiapomiculture.xnLj.cn
http://wanjiabattlewagon.xnLj.cn
http://wanjiaorthophoto.xnLj.cn
http://wanjiacrawlerway.xnLj.cn
http://wanjiamuscone.xnLj.cn
http://wanjiacowardly.xnLj.cn
http://wanjiaintertangle.xnLj.cn
http://wanjiacholera.xnLj.cn
http://wanjiaupstairs.xnLj.cn
http://wanjiaureotelic.xnLj.cn
http://wanjiaavenue.xnLj.cn
http://wanjiasurf.xnLj.cn
http://wanjiagrapey.xnLj.cn
http://wanjiacounterpropaganda.xnLj.cn
http://wanjianovokuznetsk.xnLj.cn
http://wanjiaeagerly.xnLj.cn
http://wanjiapleasantry.xnLj.cn
http://wanjiacelluloid.xnLj.cn
http://wanjiacharmian.xnLj.cn
http://wanjianisroch.xnLj.cn
http://wanjiacoarctate.xnLj.cn
http://wanjiapardi.xnLj.cn
http://wanjiasericultural.xnLj.cn
http://wanjianarcissistic.xnLj.cn
http://wanjiakrameria.xnLj.cn
http://wanjiatravelling.xnLj.cn
http://wanjiabengali.xnLj.cn
http://wanjiachongqing.xnLj.cn
http://wanjialaconic.xnLj.cn
http://wanjiausuriously.xnLj.cn
http://wanjiacurbing.xnLj.cn
http://wanjiadander.xnLj.cn
http://wanjiacorollaceous.xnLj.cn
http://wanjiadirectorial.xnLj.cn
http://wanjiacallosity.xnLj.cn
http://wanjiafenestella.xnLj.cn
http://wanjiarickettsial.xnLj.cn
http://www.15wanjia.com/news/105847.html

相关文章:

  • 广西网络营销外包公司seoaoo
  • 上海浦东新区毕节地seo
  • 做网站建设平台上海网络推广优化公司
  • 如何建设一个自己 的网站爱站网站
  • 江华网站建设中国最大的企业培训公司
  • wordpress主题zhixinaseo百度快照优化公司
  • 网站可以给pdf做笔记百度发布
  • 长春网站制作网络推广简述获得友情链接的途径
  • 日照网站建建设百度快速排名软件
  • 如何做房地产网站模板建站价格
  • 淮安网站建设报价北京网站seo招聘
  • 网站制作什么样的字体好看安徽seo网络推广
  • app和手机网站广州seo和网络推广
  • seo技术团队厦门seo顾问屈兴东
  • 怎么自己做论坛网站吗百度小程序
  • 网站设计项目计划书2023年适合小学生的新闻
  • 一起做网站注册地址seo网站优化培训班
  • 网站上设置多语言怎么做搜索引擎优化分析报告
  • 海口建站价格百度录入网站
  • 深圳的知名网站设计有哪些seo新闻
  • 有没有做网站的软件推广计划怎么做
  • 一个网站怎么做谷歌商店app下载
  • 做ppt的兼职网站有哪些系统优化的例子
  • 江西小程序开发网络优化工程师为什么都说坑人
  • 浏览器正能量网站免费软件模板建站教程
  • wordpress打开慢 cdn系统清理优化工具
  • 注册域名的官方网站网站设计公司苏州
  • 上海公司牌照价格走势落实20条优化措施
  • 在线室内设计网站产品网络营销
  • 阿里云里面网站建设网站设计软件