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

云主机建站网站建设具体详细过程

云主机建站,网站建设具体详细过程,中国机械设备采购网,浙江省建设信息港的网站1. 问题背景 假设有一个订单服务系统,当用户提交订单后,系统会根据订单信息生成订单,并在订单生成成功后,自动发送邮件提醒用户。为了实现这一过程,系统通常会按照以下顺序同步(从上往下)执行: 用户提交订…

1. 问题背景

假设有一个订单服务系统,当用户提交订单后,系统会根据订单信息生成订单,并在订单生成成功后,自动发送邮件提醒用户。为了实现这一过程,系统通常会按照以下顺序同步(从上往下)执行:

用户提交订单。

订单生成成功。

邮件发送成功。

用户收到反馈。

1.1 问题描述

这个同步执行的流程可能带来一些性能和用户体验上的问题。特别是在邮件发送的过程可能会存在一定的延迟,而订单服务又依赖于该过程的成功完成来反馈结果给用户。举个例子,如果有十个用户都生成订单,但是服务器每次只能发3封邮件,那就有7个用户要干等着,这样不仅可能导致响应时间变长,还可能影响系统的可扩展性。

1.2 问题解决

当我们引入了了rabbitMQ,我们就可以将要发邮件做一个任务清单(消息队列),在订单生成以后就返回用户成功了,然后把要发的邮件放入消息队列,然后让服务器慢慢从消息队列里面一条一条数据读,一个邮件一个邮件的发就好了。

在专业的名词解释里面,用户被成为生产者,处理用户请求的服务器被称为消费者,而rabbit所提供的功能就是存储消息队列(任务清单)并且作为交换机连接用户和服务器,如下图

image.png

2. 示例代码

RabbitConfig.java

@Configuration
public class RabbitConfig {@Beanpublic TopicExchange mainExchange() {return new TopicExchange("mainExchange");}@Beanpublic Queue orderQueue() {return new Queue("orderQueue");}@Beanpublic Queue emailQueue() {return new Queue("emailQueue");}@Beanpublic Binding orderBinding(Queue orderQueue, TopicExchange mainExchange) {return BindingBuilder.bind(orderQueue).to(mainExchange).with("order");}@Beanpublic Binding emailBinding(Queue emailQueue, TopicExchange mainExchange) {return BindingBuilder.bind(emailQueue).to(mainExchange).with("email");}
}

MessageSender.java

@Service
public class MessageSender {@Autowiredprivate RabbitTemplate rabbitTemplate;// 发送订单消息public void sendOrderMessage(String message) {rabbitTemplate.convertAndSend("mainExchange", "order", message);}// 发送邮件消息public void sendEmailMessage(String message) {rabbitTemplate.convertAndSend("mainExchange", "email", message);}
}

MessageController.java

@RestController
@RequestMapping("/mq")
public class MessageController {@Autowiredprivate MessageSender sender;// 发送订单消息@GetMapping("/sendOrder")public String sendOrder() {sender.sendOrderMessage("用户下了一个订单!");return "订单消息已发送";}// 发送邮件消息@GetMapping("/sendEmail")public String sendEmail() {sender.sendEmailMessage("发送确认邮件给用户");return "邮件消息已发送";}
}

MessageConsumer.java

@Service
public class MessageConsumer {@RabbitListener(queues = "orderQueue")public void handleOrder(String msg) {System.out.println("📦 订单处理:" + msg);}@RabbitListener(queues = "emailQueue")public void handleEmail(String msg) {System.out.println("📧 邮件处理:" + msg);}
}

application.yml

spring:rabbitmq:host: localhostport: 5672username: guestpassword: guest


文章转载自:

http://9VYLL5ac.qymrf.cn
http://4H3DBnPl.qymrf.cn
http://9XmNpT8V.qymrf.cn
http://6ekeODUy.qymrf.cn
http://ldeXbeAl.qymrf.cn
http://i8J4bVVc.qymrf.cn
http://FANcYXiS.qymrf.cn
http://sNQP8t1K.qymrf.cn
http://nwQSoVxx.qymrf.cn
http://khN95EqX.qymrf.cn
http://V0qBxjbh.qymrf.cn
http://zcxbdgfH.qymrf.cn
http://rNHKotPz.qymrf.cn
http://k8DZCmkp.qymrf.cn
http://WxsK17IE.qymrf.cn
http://lVE7USeu.qymrf.cn
http://Fp2Eh3OE.qymrf.cn
http://Nj7kAhpy.qymrf.cn
http://eHkINKcB.qymrf.cn
http://11CrbA4i.qymrf.cn
http://fJRx2ITC.qymrf.cn
http://fRVCNv1d.qymrf.cn
http://LYAKcgss.qymrf.cn
http://5eeqIUm9.qymrf.cn
http://jRktjQzC.qymrf.cn
http://TmQrjYxo.qymrf.cn
http://3FX7uAMw.qymrf.cn
http://KfKhOlNT.qymrf.cn
http://BLMinrC1.qymrf.cn
http://Y6SdlO6c.qymrf.cn
http://www.dtcms.com/wzjs/678409.html

相关文章:

  • 专业商城网站建设多少钱centos支持wordpress
  • 网站建设规划书河北专门做办公的网站
  • 河南省住房城乡和建设厅网站首页wordpress 指南
  • 网站如何做微信支付链接建设个人网站教程
  • 一点空间网站建设wordpress启动慢
  • 建设网站报价单手机网站 建设
  • 三合一网站什么意思注册深圳公司的好处
  • 西部数码官方网站建设工程教育app
  • 建设网站需要花多少钱国家建设部网站2018年
  • 哪些网站可以做推广阿里云备案个人可以做网站吗
  • 温州电子商务网站建设商城模板网站模板
  • 加猛挣钱免费做网站软件网站开发所需人才
  • 做网站需要哪些成本电子 网站建设申请过程
  • 成都优化网站关键词长沙 建网站
  • 网站推广的图片交换友情链接的好处
  • 网站建设中网站需求分析报告作用禅城区电话黄页
  • 织梦 商城网站海南网络广播电视台开学第一课
  • 绍兴免费自助建站湖南省智慧团建登录入口
  • 长沙网站排名公司哪家好网站建设网页设计公司
  • 荣誉章标志做网站微信小程序开发哪家好
  • 建筑公司网站首页图片绍兴高端网站设计
  • 怎么建立微网站?做网站需要什么框架
  • 凡科网站源码下载风中有朵雨做的云网站观看
  • 一般可以在哪些网站做推广wordpress源码解析
  • 怎么用centos做网站单位网站建设建议对策
  • 做网站能成功吗互联网最赚钱的行业
  • 网站开发api平台windows 安装wordpress
  • 服务好的微网站建设个人软件网站域名
  • dede网站模板替换电脑上如何做网站
  • 网站建设属于淘宝哪种类目php网站建设全程解析