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

哪些域名适合营销型网站百度搜索推广收费标准

哪些域名适合营销型网站,百度搜索推广收费标准,上海疫情防控新闻发布会,合肥网站设计建设公司在 RabbitMQ 中,使用 Topic Exchange 模式时,交换机、队列和路由键的命名规范是非常重要的,尤其是在多环境和多微服务的场景中。合理的命名规范可以提高消息系统的可维护性、可扩展性以及可读性。以下是一些关于 Topic Exchange 模式中交换机…

在 RabbitMQ 中,使用 Topic Exchange 模式时,交换机、队列和路由键的命名规范是非常重要的,尤其是在多环境和多微服务的场景中。合理的命名规范可以提高消息系统的可维护性、可扩展性以及可读性。以下是一些关于 Topic Exchange 模式中交换机、队列、和路由键的命名规范建议:

1. 交换机 (Exchange) 命名规范

交换机用于路由消息到合适的队列。在 Topic Exchange 中,交换机的命名应清晰地反映其用途或消息流的目的。

  • 命名格式:<service>.<component>.<exchangeType>
    • <service>:服务或系统的名称(例如:order, payment, shipping)。
    • <component>:表示消息流的具体功能组件(例如:event, notification)。
    • <exchangeType>:topic 或其他类型,虽然 topic 是默认值,但可以在命名时加上明确区分。
  • 示例:
    • order.event.topic:表示 order 服务的事件交换机。
    • payment.notification.topic:表示 payment 服务的通知交换机。
    • shipping.event.topic:表示 shipping 服务的事件交换机。

2. 队列 (Queue) 命名规范

队列的命名通常与业务功能和服务的使用场景密切相关。队列应该根据其用途、功能模块以及所接收的消息类型来命名。

  • 命名格式:<service>.<component>.<queueType>
    • <service>:服务名称。
    • <component>:队列的具体功能(例如:order, payment, shipping)。
    • <queueType>:队列的类型或消息的具体内容,如 incoming, outgoing, retry,或者使用 consumer 或 producer 来区分消费方和生产方。
  • 示例:
    • order.event.incoming:表示消费来自 order 服务的事件的队列。
    • payment.notification.outgoing:表示 payment 服务通知消息的输出队列。
    • shipping.event.consumer:表示 shipping 服务消费者队列。

3. 路由键 (Routing Key) 命名规范

路由键是将消息路由到合适队列的关键,它的命名方式可以通过使用不同的层级来分类消息。Topic Exchange 使用通配符 (* 和 #) 来匹配不同层级的路由键,因此需要注意设计路由键的层级。

  • 命名格式:<service>.<messageType>.<action>.<subaction>
    • <service>:消息所属的服务名称。
    • <messageType>:消息的类型(例如:order, payment, shipping)。
    • <action>:消息代表的业务操作(例如:created, updated, deleted)。
    • <subaction>:可选的额外细分(例如:failed, success,具体业务操作的进一步细化)。
  • 路由键的命名约定:
    • 使用点 (.) 分隔不同的层级。
    • 使用 * 通配符来匹配一个层级。
    • 使用 # 通配符来匹配多个层级。
  • 示例:
    • order.created:用于表示订单创建事件。
    • order.created.success:用于表示订单创建成功事件。
    • order.created.failed:用于表示订单创建失败事件。
    • payment.completed:用于表示支付完成事件。
    • payment.updated.retry:表示支付更新并需要重试的事件。

4. 示例完整配置

假设你有一个系统,其中包含 order 服务、payment 服务和 shipping 服务。使用 Topic Exchange 模式,你的配置可以类似于:
Exchange 配置:

@Bean
public Exchange orderEventExchange() {return new TopicExchange("order.event.topic");
}@Bean
public Exchange paymentNotificationExchange() {return new TopicExchange("payment.notification.topic");
}@Bean
public Exchange shippingEventExchange() {return new TopicExchange("shipping.event.topic");
}

Queue 配置:

@Bean
public Queue orderEventQueue() {return new Queue("order.event.incoming");
}@Bean
public Queue paymentNotificationQueue() {return new Queue("payment.notification.outgoing");
}@Bean
public Queue shippingEventQueue() {return new Queue("shipping.event.consumer");
}

Binding 配置:

@Bean
public Binding orderEventBinding(Queue orderEventQueue, TopicExchange orderEventExchange) {return BindingBuilder.bind(orderEventQueue).to(orderEventExchange).with("order.*");
}@Bean
public Binding paymentNotificationBinding(Queue paymentNotificationQueue, TopicExchange paymentNotificationExchange) {return BindingBuilder.bind(paymentNotificationQueue).to(paymentNotificationExchange).with("payment.*.completed");
}@Bean
public Binding shippingEventBinding(Queue shippingEventQueue, TopicExchange shippingEventExchange) {return BindingBuilder.bind(shippingEventQueue).to(shippingEventExchange).with("shipping.*");
}

消息转换器:

    @Beanpublic Jackson2JsonMessageConverter jackson2JsonMessageConverter() {return new Jackson2JsonMessageConverter();}@Beanpublic RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory,Jackson2JsonMessageConverter jackson2JsonMessageConverter) {RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);rabbitTemplate.setMessageConverter(jackson2JsonMessageConverter);return rabbitTemplate;}

消息发送示例:

@Autowired
private RabbitTemplate rabbitTemplate;public void sendOrderCreatedEvent(OrderCreatedEvent event) {rabbitTemplate.convertAndSend("order.event.topic", "order.created", event);
}public void sendPaymentCompletedEvent(PaymentCompletedEvent event) {rabbitTemplate.convertAndSend("payment.notification.topic", "payment.completed", event);
}public void sendShippingEvent(ShippingEvent event) {rabbitTemplate.convertAndSend("shipping.event.topic", "shipping.created", event);
}

5. 命名规范总结

  • Exchange 命名:应明确服务和消息类型,保持一致性。推荐使用 service.event.topic 格式。
  • Queue 命名:应清晰地描述队列用途,区分消费和生产者。推荐使用 service.component.type 格式。
  • Routing Key 命名:应采用清晰的层级结构,利用通配符 *# 做路由匹配。推荐使用 service.messageType.action 格式。
http://www.ds6.com.cn/news/108638.html

相关文章:

  • 如何做商城网站广东互联网网络营销推广
  • 网站建设需要软件百度大搜
  • html5网页成品代码百度工具seo
  • 家具网站建设热狗seo优化外包
  • 哪个网站可以做艺术字sem和seo有什么区别
  • 网站排版策划什么是域名
  • 福州网站关键词推广武汉搜索引擎营销
  • 自己设计好的网站怎么设置访问营销自动化工具
  • 浅谈网站开发的意义抖音的商业营销手段
  • 企业为什么要做网站 作用是什么西安百度快速排名提升
  • 潍坊网站制作在线企业网站模板下载
  • 上海网站建设网站开发seo网站优化培训怎么做
  • 河北住房建设厅网站辅导班培训机构
  • 推广费用一般多少快优吧seo优化
  • 怎么查看什么公司做的网站吗市场调研报告最佳范文
  • 互联网信息服务许可证seo优化厂商
  • 望江县住房和城乡建设局网站合肥全网推广
  • 网站建设构思百度有专做优化的没
  • 写字就能赚钱做网站商丘网络推广哪家好
  • 做网站的公司怎么做业务深圳网络推广软件
  • 做水晶接单在哪个网站接在线建站平台免费建网站
  • 沈阳大熊网站建设制作电子商务网站建设的步骤
  • 贵州贵阳网站开发微商推广哪家好
  • 凡科做的网站好吗网站长尾关键词排名软件
  • 做购物平台网站需要注意什么站长工具seo综合查询源码
  • 创建公司网站 优帮云seo兼职接单平台
  • 郑州富士康现状2023网站的优化和推广方案
  • 微网站建设比较全面的是游戏推广公司靠谱吗
  • 政协网站 党的建设网络安全培训最强的机构
  • 如何做直播网站网站网络营销