消息中间件 消息中间件的作用 解耦:消息中间件在服务之间插入了一个隐含的.基于数据的接口层.两边的服务处理过程都要实现这一接口,这允许我们独立的扩展或修改两边的处理过程,只要确保他们遵守相同的规范约束即可 冗余(存储):消息中间件可以将数据持久化直到完全被处理 扩展性:因为消息中间件解耦了应用的处理过程,所以提高消息入队和处理的效率都是很容易的,只要另外增加处理过程即可,不需要修改代码和调节参数 削峰:在访问量骤增的情况下,服务仍然需要可用.但以此为标准设计程序又无疑是巨大的浪费.使用消息中间件…
rabbitmq作为成熟的企业消息中间件,实现了应用程序间接口调用的解耦,提高系统的吞吐量. 1.RabbitMQ组成 是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能.健壮以及可伸缩性出名的 Erlang 写成,因此也是继承了这些优点. AMQP 里主要要说两个组件:Exchange 和 Queue (在 AMQP 1.0 里还会有变动),如下图所示,绿色的 X 就是 Exchange ,红色的是 Queu…
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:闫燕飞 1.背景 Ckafka是基础架构部开发的高性能.高可用消息中间件,其主要用于消息传输.网站活动追踪.运营监控.日志聚合.流式处理.事件追踪.提交日志等等需要高性能的场景,目前已经上线腾讯云.Ckafka完全兼容现有的Kafka协议,使现有Kafka用户可以零成本迁入Ckafka.Ckafka基于现有的Kafka进行了扩展开发和优化,为了方便用户理解Ckafka本文也将对Kafka的实现原理进行较为详细的介绍. 2.Kaf…
分布式系统消息中间件--RabbitMQ的使用进阶篇 前言     上一篇文章 (https://www.cnblogs.com/hunternet/p/9668851.html) 简单总结了分布式系统中的消息中间件以及RabbitMQ的基本使用,这篇文章主要总结一下RabbitMQ在日常项目开发中比较常用的几个特性. 系列文章 分布式系统消息中间件--RabbitMQ的使用基础篇 分布式系统消息中间件--RabbitMQ的使用进阶篇 分布式系统消息中间件--RabbitMQ的使用思考篇 一 m…
MQ:Message Queue,消息队列,是一种应用程序对应用程序的通信方法:应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们. 1      rabbitMQ入门及原理 rabbitMQ官网:http://www.rabbitmq.com/ Erlang官网:http://www.erlang.org/ 1.1  rabbitMQ概述 RabbitMQ是一个由Erlang开发的AMQP(AdvancedMessage Queue )的开源实现,支持多种客户…
一.RabbitMQ集群方案的原理 RabbitMQ这款消息队列中间件产品本身是基于Erlang编写,Erlang语言天生具备分布式特性(通过同步Erlang集群各节点的magic cookie来实现). 因此,RabbitMQ天然支持Clustering.这使得RabbitMQ本身不需要像ActiveMQ.Kafka那样通过ZooKeeper分别来实现HA方案和保存集群的元数据.集群是保证可靠性的一种方式,同时可以通过水平扩展以达到增加消息吞吐量能力的目的.下面先来看下RabbitMQ集群的整…
分布式系统消息中间件--RabbitMQ的使用思考篇 前言     前面的两篇文章分布式系统消息中间件--RabbitMQ的使用基础篇与分布式系统消息中间件--RabbitMQ的使用进阶篇,我们简单介绍了消息中间件与RabbitMQ的一些基本概念.基础用法以及常用的几个特性.但如果我们想更好的去结合我们的业务场景使用好RabbitMQ,我们还需要思考一些问题.比如:何时去创建队列,RabbitMQ的持久化,如何保证消息到达RabbitMQ,以及消费者如何确认消息...... 系列文章 分布式系统…
对于数据切分,我们可能还不是很熟悉,但是它对于MySQL数据库来说也是相当重要的一门技术,本文我们就详细介绍一下MySQL数据库的数据切分的相关知识,接下来就让我们一起来了解一下这部分内容. 什么是数据切分 "Shard" 这个词英文的意思是"碎片",而作为数据库相关的技术用语,似乎最早见于大型多人在线角色扮演游戏中."Sharding" 姑且称之为"分片".Sharding 不是一门新技术,而是一个相对简朴的软件理念.众所周…
消息队列介绍.RabbitMQ&Redis的重点介绍与简单应用 消息队列介绍.RabbitMQ.Redis 一.什么是消息队列 这个概念我们百度Google能查到一大堆文章,所以我就通俗的讲下消息队列的基本思路. 还记得原来写过Queue的文章,不管是线程queue还是进程queue他都是一种消息队列.他都是基于生产者消费者模型来处理消息. Python中的进程queue,是用于父进程与子进程,或者同属于一个父进程下的多个子进程之间进行信息交互.注意这种queue只能在同一个python程序下才…
前言 最近在学习消息中间件--RabbitMQ,打算把这个学习过程记录下来.此章主要介绍环境搭建.此次主要是单机搭建(条件有限),包括在Windows.Linux环境下的搭建,以及RabbitMQ的监控平台搭建. 环境准备 在搭建RabbitMQ之前,请先确保如下环境已经搭建完毕 Java环境(我的JDK1.8) Maven环境(我的3.6.1目前最新版) Git环境 没有搭建的同学走传送门: JDK环境搭建: JAVA8环境搭建 Maven环境搭建: Windows环境下使用Nexus 3.X…