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

360官方网站互联网推广运营

360官方网站,互联网推广运营,上海市建设工程材料网站,广州做网站系统1 MQ简介 1.1 什么是MQ MQ(Message Queue)是一种跨进程的通信机制,用于传递消息。通俗点说,就是一个先进先出的数据结构。 1.2 MQ的应用场景 1.2.1 异步解耦 最常见的一个场景是用户注册后,需要发送注册邮件和短信通…

1 MQ简介

1.1 什么是MQ

        MQ(Message Queue)是一种跨进程的通信机制,用于传递消息。通俗点说,就是一个先进先出的数据结构。

1.2 MQ的应用场景

1.2.1 异步解耦

        最常见的一个场景是用户注册后,需要发送注册邮件和短信通知,以告知用户注册成功。传统的做法如下:

        此架构下注册、邮件、短信三个任务全部完成后,才返回注册结果到客户端,用户才能使用账号登录。但是对于用户来说,注册功能实际只需要注册系统存储用户的账户信息后,该用户便可以登录,而后续的注册短信和邮件不是即时需要关注的步骤。
        所以实际当数据写入注册系统后,注册系统就可以把其他的操作放入对应的消息队列 MQ 中然后马上返回用户结果,由消息队列 MQ 异步地进行这些操作。架构图如下:

        异步解耦是消息队列 MQ 的主要特点,主要目的是减少请求响应时间和解耦。主要的使用场景就是将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。同时,由于使用了消息队列MQ,只要保证消息格式不变,消息的发送方和接收方并不需要彼此联系,也不需要受对方的影响,即解耦合。

1.2.2 流量削峰

        流量削峰也是消息队列 MQ 的常用场景,一般在秒杀或团队抢购(高并发)活动中使用广泛。

        在秒杀或团队抢购活动中,由于用户请求量较大,导致流量暴增,秒杀的应用在处理如此大量的访问流量后,下游的通知系统无法承载海量的调用量,甚至会导致系统崩溃等问题而发生漏通知的情况。为解决这些问题,可在应用和下游通知系统之间加入消息队列 MQ。

秒杀处理流程如下所述:
(1)用户发起海量秒杀请求到秒杀业务处理系统。
(2) 秒杀处理系统按照秒杀处理逻辑将满足秒杀条件的请求发送至消息队列 MQ。
(3)下游的通知系统订阅消息队列 MQ 的秒杀相关消息,再将秒杀成功的消息发送到相应用户。
(4)用户收到秒杀成功的通知。

1.3 常见的MQ产品

目前业界有很多MQ产品,比较出名的有下面这些:

  • ZeroMQ  号称最快的消息队列系统,尤其针对大吞吐量的需求场景。扩展性好,开发比较灵活,采用C语言实现,实际上只是一个socket库的重新封装,如果做为消息队列使用,需要开发大量的代码。ZeroMQ仅提供非持久性的队列,也就是说如果down机,数据将会丢失。
  • RabbitMQ  使用erlang语言开发,性能较好,适合于企业级的开发。但是不利于做二次开发和维护。
  • ActiveMQ  历史悠久的Apache开源项目。已经在很多产品中得到应用,实现了JMS1.1规范,可以和spring-jms轻松融合,实现了多种协议,支持持久化到数据库,对队列数较多的情况支持不好。
  • RocketMQ  阿里巴巴的MQ中间件,由java语言开发,性能非常好,能够撑住双十一的大流量,而且使用起来很简单。
  • Kafka       Kafka是Apache下的一个子项目,是一个高性能跨语言分布式Publish/Subscribe消息队列系统,相对于ActiveMQ是一个非常轻量级的消息系统,除了性能非常好之外,还是一个工作良好的分布式系统。

2 RocketMQ入门

        RocketMQ是阿里巴巴开源的分布式消息中间件,现在是Apache的一个顶级项目。在阿里内部使用非常广泛,已经经过了"双11"这种万亿级的消息流转。

2.1 RocketMQ环境搭建

接下来我们先在linux平台下安装一个RocketMQ的服务

2.1.1 环境准备

下载RocketMQ
http://rocketmq.apache.org/release_notes/release-notes-4.4.0/

环境要求

  • Linux 64位操作系统
  • 64bit JDK 1.8+

2.1.2 安装RocketMQ

1 上传文件到Linux系统

[root@heima rocketmq]# ls /usr/local/src/
rocketmq-all-4.4.0-bin-release.zip

 2 解压到安装目录

[root@heima src]# unzip rocketmq-all-4.4.0-bin-release.zip
[root@heima src]# mv rocketmq-all-4.4.0-bin-release ../rocketmq

 2.1.3 启动RocketMQ

1切换到安装目录

[root@heima rocketmq]# ls
benchmark bin conf lib LICENSE NOTICE README.md

 2 启动NameServer

[root@heima rocketmq]# nohup ./bin/mqnamesrv &
[1] 1467
# 只要进程不报错,就应该是启动成功了,可以查看一下日志
[root@heima rocketmq]# tail -f /root/logs/rocketmqlogs/namesrv.log

3 启动Broker

 # 编辑bin/runbroker.sh  和  bin/runserver.sh文件,修改里面的
#  JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
# 为JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
[root@heima rocketmq]# nohup bin/mqbroker -n localhost:9876 &
[root@heima rocketmq]# tail -f /root/logs/rocketmqlogs/broker.log 

 2.1.4 测试RocketMQ

1 测试消息发送

[root@heima rocketmq]# export NAMESRV_ADDR=localhost:9876
[root@heima rocketmq]# bin/tools.sh
org.apache.rocketmq.example.quickstart.Producer

2 测试消息接收

[root@heima rocketmq]# export NAMESRV_ADDR=localhost:9876
root@heima rocketmq]# bin/tools.sh
org.apache.rocketmq.example.quickstart.Consumer

 2.1.5 关闭RocketMQ

[root@heima rocketmq]# bin/mqshutdown broker
[root@heima rocketmq]# bin/mqshutdown namesrv

 2.2 RocketMQ的架构及概念

如上图所示,整体可以分成4个角色,分别是:NameServer,Broker,Producer,Consumer。

  • Broker(邮递员)  Broker是RocketMQ的核心,负责消息的接收,存储,投递等功能
  • NameServer(邮局)消息队列的协调者,Broker向它注册路由信息,同时Producer和Consumer向其获取路由信息
  • Producer(寄件人)消息的生产者,需要从NameServer获取Broker信息,然后与Broker建立连接,向Broker发送消息
  • Consumer(收件人)消息的消费者,需要从NameServer获取Broker信息,然后与Broker建立连接,从Broker获取消息
  • Topic(地区) 用来区分不同类型的消息,发送和接收消息前都需要先创建Topic,针对Topic来发送和接收消息
  • Message Queue(邮件)为了提高性能和吞吐量,引入了Message Queue,一个Topic可以设置一个或多个MessageQueue,这样消息就可以并行往各个Message Queue发送消息,消费者也可以并行的从多个Message Queue读取消息
  • Message  Message 是消息的载体。
  • Producer Group   生产者组,简单来说就是多个发送同一类消息的生产者称之为一个生产者组。
  • Consumer Group   消费者组,消费同一类消息的多个 consumer 实例组成一个消费者组。

2.3 RocketMQ控制台安装

1 下载

# 在git上下载下面的工程 rocketmq-console-1.0.0
https://github.com/apache/rocketmq-externals/releases

 2 修改配置文件

# 修改配置文件 rocketmq-console\src\main\resources\application.properties
server.port=7777 #项目启动后的端口号
rocketmq.config.namesrvAddr=192.168.109.131:9876 #nameserv的地址,注意防火墙要开启9876端口

 3 打成jar包,并启动

# 进入控制台项目,将工程打成jar包
mvn clean package -Dmaven.test.skip=true
# 启动控制台
java -jar target/rocketmq-console-ng-1.0.0.jar

 4 访问控制台

http://www.khdw.cn/news/32960.html

相关文章:

  • 网站做两个月百度没有录取制作网页的工具软件
  • 花都网站开发公司seo公司北京
  • html 网站模板上海优化外包公司排名
  • 网站建设费的会计分录盘古百度推广靠谱吗
  • 国外 上海网站建设济南网站运营公司
  • 建设厅网站注册后多长时间开通代做seo关键词排名
  • 济南做网站多少钱aso优化方法
  • 模板兔自用主题WordPress网络优化的工作内容
  • 房产网站制作流程网站建站设计
  • 塑胶原料 东莞网站建设外链seo招聘
  • 比较好的做外贸网站数据分析
  • 设计网站推广公司网页制作seo教程技术资源
  • hge网站做微端优化大师官网下载
  • 网站建设教的误区优化软件有哪些
  • 如何做淘客发单网站深圳正规seo
  • 南京做企业网站公司哪家好枫树seo
  • 物流网站素材株洲做网站
  • 如何建立公司网站域名百度快照提交入口
  • 旅游网站建设费用百度竞价推广点击软件奔奔
  • 惠州建站免费模板八大营销方式有哪几种
  • 智达世通建设集团有限公司网站北京cms建站模板
  • 章丘市建设局网站头条搜索站长平台
  • wordpress 翻译函数seo的培训班
  • 做百度网站分录站长工具箱
  • 网站怎么做移动端适配青岛关键词排名提升
  • tp框架做购物网站开发2345浏览器主页网址
  • 福州绿光网站建设工作室河南智能seo快速排名软件
  • 网站开发专员岗位职责手机怎么在百度上发布信息
  • 带端口的服务器怎么做网站开封搜索引擎优化
  • 网络平台建设费用路由优化大师官网