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

网站流量被用完了网站建设与管理

网站流量被用完了,网站建设与管理,北京知名网站推广,用手机怎么制作动漫视频一、背景 本章讲述的是在用户下单环节,消息服务器RabbitMQ 的应用 1.1 消息服务器的应用 在写一个电商项目的小demo,在电商项目中,消息服务器的应用: 1、订单状态通知:当用户下单、支付成功、订单发货、订单完成等…

一、背景

本章讲述的是在用户下单环节,消息服务器RabbitMQ 的应用

1.1 消息服务器的应用

在写一个电商项目的小demo,在电商项目中,消息服务器的应用:

1、订单状态通知:当用户下单、支付成功、订单发货、订单完成等关键节点时,可以通过消息服务器向用户发送相应的订单状态通知。

2、消息推送:通过消息服务器,可以向用户推送个性化的推荐商品、促销活动等消息,以提高用户参与度和购买率。

3、异步处理:在一些涉及到耗时操作的场景中,比如库存扣减、物流跟踪等,可以将任务交给消息服务器进行异步处理,以提高系统的并发性和响应速度。

4、实时聊天:如果你的电商系统支持在线客服或用户之间的实时沟通,消息服务器可以用于实现即时通讯功能。

5、消息队列:消息服务器还可以作为消息队列的承载者,实现系统内不同模块之间的解耦和异步通信。

消息服务器的选择可以考虑使用开源的消息队列中间件,比如RabbitMQ、Apache Kafka、ActiveMQ等,或者云服务提供商提供的消息队列服务,比如阿里云的消息队列RocketMQ、腾讯云的消息队列CMQ等。

需要注意的是,在使用消息服务器时,确保数据的安全性和可靠性,并合理设计消息的格式和传输方式,以确保系统的正常运行和用户体验。

1.2 下单这个环节,消息服务器应用场景

用户下单这个环节,应用消息服务器有以下几个常见的应用场景:

1、异步处理订单:当用户下单后,可以将订单信息发送到消息服务器中,由消息服务器异步处理。这样可以减少用户等待时间,并提高系统的并发能力。消息服务器可以负责处理订单的各种业务逻辑,比如库存扣减、生成物流单号等操作。

2、订单状态通知:在用户下单后,可以通过消息服务器向用户发送订单状态的通知,比如订单已提交、支付成功、订单发货、订单完成等。消息服务器可以实时地将通知推送给用户,提供良好的用户体验。

3、订单状态跟踪:在整个订单生命周期中,消息服务器可以记录和跟踪订单的状态变化。当用户查询订单状态时,可以通过消息服务器获取最新的订单状态信息,确保订单状态的准确性和实时性。

4、消息队列:消息服务器可以作为消息队列的组件,对订单相关的消息进行队列化处理。这样可以解耦订单模块与其他模块之间的依赖关系,提高系统的稳定性和可扩展性。

二、RabbitMQ 的下载与安装

2.1 RabbitMQ的官网地址:

RabbitMQ的官网地址:

RabbitMQ: easy to use, flexible messaging and streaming — RabbitMQ

2.2. 使用brew安装

1、安装

brew install rabbitmq

安装结果:

 rabbitmq 的安装路径:

/opt/homebrew/opt/rabbitmq

2、配置环境变量

vi ~/.bash_profile
export RABBIT_HOME=${PATH}:/opt/homebrew/opt/rabbitmq
export PATH=${PATH}:$RABBIT_HOME/sbin
source ~/.bash_profile


2.3 启动RabbitMQ


1、前台运行
rabbitmq-server

2、后台运行
rabbitmq-server -detached

3、查看运行状态
rabbitmqctl status

4、开始 Web插件
rabbitmq-plugins enable rabbitmq_management

5、重启
rabbitmq-server restart

5、关闭
rabbitmqctl stop

2.4、访问MQ


1、浏览器地址
http://localhost:15672/
默认用户名和密码为guest

添加用户
rabbitmqctl add_user miaojiang 123

设置用户为管理员
rabbitmqctl set_user_tags miaojiang administrator

配置用户可以远程登录
rabbitmqctl set_permissions -p "/" miaojaing ".*" ".*" ".*"

查看新添加的账户

rabbitmqctl list_users

查看用于的权限
rabbitmqctl list_permissions -p /

三、Spring Boot 项目应用RabbitMQ

3.1、添加Maven依赖:

在你的项目的pom.xml文件中添加RabbitMQ客户端库的依赖

<!--AMQP依赖,包含RabbitMQ-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

3.2、配置RabbitMQ连接:

在Spring Boot的配置文件(application.properties 或 application.yml)中添加RabbitMQ的连接信息。

application.properties:

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

 

在application.yml配置mq的参数:

spring:rabbitmq:#设置RabbitMQ的IP地址host: localhost#设置rabbitmq服务器用户名username: guest#设置rabbitmq服务器密码password: guest#设置rabbitmq服务器连接端口port: 5672

3.3 创建交换机

自定义交换机名称

创建名为“myExchange”的交换机

package com.example.usermanagement.mq;import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class RabbitMQConfig {/*使用 @Configuration 注解创建一个配置类,并通过 @Bean 注解创建了一个名为 declareExchange 的方法,用于声明创建交换机。请根据实际情况修改交换机名称、类型和持久化设置。*/public static final String EXCHANGE_NAME = "myExchange";@Beanpublic Exchange declareExchange() {return ExchangeBuilder.directExchange(EXCHANGE_NAME).durable(true).build();}
}

3.4 创建消息发送者

创建消息发送者:创建一个消息发送者的类,用于发送消息到RabbitMQ

package com.example.usermanagement.mq;import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;@Component
public class MessageSender{private final AmqpTemplate amqpTemplate;private final String exchangeName = "myExchange"; // 自定义交换机名称@Autowiredpublic MessageSender(AmqpTemplate amqpTemplate) {this.amqpTemplate = amqpTemplate;}public void sendMessage(Object message) {amqpTemplate.convertAndSend(exchangeName, "", message); // 发送消息到默认交换机和空路由键}
}

注意:

 sendMessage 类型使用的是Object类型

3.5 RabbitMQ管理后台添加对列

步骤:

  1. 打开浏览器,输入RabbitMQ管理后台的URL。默认情况下,该URL为http://localhost:15672/。请确保你的RabbitMQ服务器正在运行,并且端口号正确。

  2. 输入用户名和密码以登录到RabbitMQ管理后台。默认情况下,用户名为guest,密码也为guest。如果你修改过用户名和密码,请使用你的自定义凭据进行登录。

  3. 成功登录后,你将看到RabbitMQ管理后台的主界面。在顶部导航栏中,选择Queues选项卡。

  4. Queues页面上,你将看到已经存在的队列列表。如果你想要创建一个新队列,请点击Add a new queue按钮。

  5. 在添加队列的页面上,填写以下信息:

    • Name:队列的名称。为队列提供一个唯一的名称。(如myQueue)
    • Durability:队列的持久性。选择是或否,以指定队列是否应该在RabbitMQ服务重启后保留。
    • Auto delete:队列的自动删除。选择是或否,以指定当最后一个消费者断开连接后,是否删除队列。
    • Arguments:队列的其他参数。这是可选的,你可以为队列设置一些特定的参数。
  6. 填写完队列信息后,点击Add queue按钮以创建队列。

  7. 创建成功后,你将在Queues页面上看到新添加的队列。你可以在该页面上查看队列的详细信息,包括消息数量、消费者数量等。

http://localhost:15672/#/queues

只需要添加队列名称就可以 

 

3.6 调用生产者

1、注入MessageSender实例

@Autowired
private MessageSender messageSender;

2、在需要发送消息的地方调用messageSender.sendMessage方法。根据你的业务逻辑,你可以在合适的位置调用该方法。例如,在订单创建成功后,你可以添加以下代码:

messageSender.sendMessage("订单已创建:" + order.getOrderId());

3.7 创建消息接收者

创建消息接收者:创建一个消息接收者的类,用于处理接收到的RabbitMQ消息。

这里就直接写处理RabbitMQ消息的逻辑。

package com.example.usermanagement.mq;import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;@Component
public class MessageReceiver {@RabbitListener(bindings = @QueueBinding(value = @Queue("your_queue_name"),exchange = @Exchange(value = RabbitMQConfig.EXCHANGE_NAME)
//            key = "your_routing_key"))public void receiveMessage(Object message) {System.out.println("Received message: " + message);// 处理消息逻辑}
}

注意:

 sendMessage 类型使用的是Object类型

your_queue_name 替换为你要监听的队列的名称,(如myQueue)

your_routing_key 替换为适当的路由键(如果使用)

 

http://www.hkea.cn/news/889344/

相关文章:

  • dz网站模板沧州网站优化公司
  • 桂林论坛天涯社区培训行业seo整站优化
  • 做伊瑞尔竞技场的网站搜索引擎简称seo
  • 46云虚拟主机股票发行ipo和seo是什么意思
  • 新泰做网站菏泽seo
  • 网站建设排名东莞seo收费
  • 做网站前后端的发布流程自己如何制作网站
  • 网站营销与推广策略百度一下官网首页百度
  • 网站建设张世勇100个免费推广b站
  • 网络营销的常用工具百度关键词优化点击 教程
  • 公司网站要怎么做少儿编程培训机构排名前十
  • 一个好的网站是什么样的商家联盟营销方案
  • 网站解除域名绑定网站广告收费标准
  • 郑州的建设网站有哪些手续免费发布推广信息的平台有哪些
  • 手机做网站软件优化服务平台
  • 网站图片装修的热切图怎么做营销技巧培训
  • 可以上传图片的网站怎么做百度关键词点击
  • 泉州网站制作广州seo网站开发
  • cuntlove wordpressseo外链发布工具
  • 购买一个网站空间如何可以多个域名使用吗长沙网站建设服务
  • 天津市建设委员会网站上海网站制作开发
  • 扬中网站建设墨子学院seo
  • 分析电子商务网站建设需求教案青岛今天发生的重大新闻
  • 汕头模板开发建站百度发布信息怎么弄
  • 健身网站开发项目总结关键词筛选工具
  • 重庆网站建设零臻靠谱国内永久免费的云服务器
  • 软件库合集软件资料2024郑州百度快照优化
  • 房地产开发公司网站建设方案seo去哪里学
  • 做网站可以赚钱吗百度小说搜索风云排行榜
  • 做网站交接需要哪些权限网站seo视频教程