自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

guotianqing的博客

人生如画,画如人生。

  • 博客(13)
  • 收藏
  • 关注

原创 RabbitMq基础概念术语详解

本文以Q&A的方式对RabbitMq使用时的基本情况进行说明。为了保持概念一致性,RabbitMq相关术语仍使用英文。connection是什么,与TCP连接有什么关系?[x] connection代表着一条真实的TCP连接,即物理连接,具有ip和port[x] 该连接与RabbitMq服务器相连,大部分场景下设计时采用长连接[x] 可以配置心跳来检测连接状态[x] co...

2019-10-31 10:21:35 786

原创 RabbitMq实现模糊匹配(topic)

场景使用direct能够实现消息的精确匹配,但有时候需要更加灵活的匹配规则。使用topic可以实现模糊匹配。生产者以一定的规则指定routing_key,如 a.b.c各个消费者使用自己关心的规则匹配需要的消息,如消费者使用a.c.d,.a.,a.#.#等示意图如下:生产者代码:# -*- coding: utf-8 -*-import sysimport pika...

2019-10-29 17:36:55 3931

原创 RabbitMq实现消息路由(direct)

场景在pub/sub模式中,我们实现了日志消息的广播分发。在该例程中,我们对日志消息做一个路由,从而消费者可以只接收到指定的消息。生产者生产带有标识的消息消费者根据需求只接收到过滤后的消息Exchange自动路由消息示意图如下:生产者代码:# -*- coding: utf-8 -*-import sysimport pikaconnection = pika.B...

2019-10-29 17:12:38 492

原创 RabbitMq实现发布订阅(publish/subscribe)

场景一个生产者和多个消费者生产的消息会同时发送到所有的消费者(广播)示意图如下:在下面的例程中,生产者发送日志数据给所有的消费者,所有的消费者均接收到所有的日志消息。生产者代码如下:# -*- coding: utf-8 -*-import sysimport pikaconnection = pika.BlockingConnection(pika.Connect...

2019-10-29 16:42:09 1486 1

原创 RabbitMq实现任务分发work queues

适用场景一个生产者和多个消费者生产者产生任务,按照一定规则分发给消费者:轮询和公平分发场景如下:这里使用模拟消费的方式,消费者接收到消息后会休眠一定的时间,以表示正在处理当前的任务。生产者先上代码:# -*- coding: utf-8 -*-import sysimport pikaconnection = pika.BlockingConnection(pika...

2019-10-29 15:15:39 313

原创 RabbitMQ实现Hello World

准备具有Python环境能够连接到RabbitMq服务,并具有相应权限使用 Pika Python Client。安装:python -m pip install pika --upgrade实现2个应用程序:生产者发送Hello World消费者接收并输出到屏幕通读该程序可以更加深入的理解RabbitMq的术语和使用流程。关于基本知识,请参考RabbitMq入门简介。生...

2019-10-28 08:47:01 200

原创 RabbitMq使用中常见错误小结

最近使用RabbitMq作为消息中间件,使用中遇到了一些问题,这里作一小结,供新手参考。pika.exceptions.ProbableAuthenticationError: ConnectionClosedByBroker: (403) ‘ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. Fo...

2019-10-25 18:16:28 21233 1

原创 RabbitMq入门简介

MQMessage Queue,即消息队列,可以认为是存储消息的管道,用来做消息传输。消息队列是应用间的通信方式。通过消息中间件,发送端在发送消息后可以立即返回,由中间件确保消息的可靠传递。发送端和接收端可以都不知道对方的存在,达到解耦。使用MQ的场景的类比:信件的邮寄,它有以下特征:发信人把信件放入邮箱。邮局收件人从邮箱收取信件,邮局接收后运送到目的地,再派邮差把邮件送出去。收信...

2019-10-23 19:24:41 295

原创 Linux下c++使用MySql数据库实例

环境准备Linux上已经安装Mysql数据库及相关客户端库安装 MySQL Connector/C++ 库MySql已创建数据库database_demo及数据表table_demo先测试Linux本地直接连接到数据库,具体方式请参考Linux下Mysql常用操作。连接首先从 sql::mysql::MySQL_Driver对象得到 sql::Connection的实例。sq...

2019-10-21 08:40:28 1312

原创 git补丁的生成与应用(由一个amend问题引出)

问题描述最近开发时,我把本地的修改amend到了已经merged的提交上了!我是这样做的:在master上新建一个分支,在该分支上进行开发,完成后提交,提交时执行了git commit --amend,导致本次修改提交到了前次已经merged的提交上。这里,通过git status查看时,本地所有修改内容已经提交。通过git log查看时,可以看到前次merged的提交信息,但hash...

2019-10-18 11:22:54 490

原创 Linux下Mysql常用操作

简介MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。数据库: 数据库是一些关联表的集合。数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表...

2019-10-16 13:53:27 291

原创 c++类型转换详解

类型转换c++它允许将一块内存看作多种类型,如可以直接将整型变量与字符变量相加。但在语法上,它是强类型的,如不允许整型与字符串直接运算。在实际编程中,经常需要变换变量的类型,以完成必要的操作。但转换操作是有风险的,使用不当可能导致程序崩溃,所以要使用合适的转换方式尽量避免错误。c++支持传统c的强制类型转换,主要用于基础的数据类型间的转换,语法为:(type)expression//转换格...

2019-10-14 11:23:56 726

原创 cpprestsdk应用实例

RESTfulREST全称是Representational State Transfer,通常译为表述性状态转移,是一种网络应用程序的设计风格和开发方式。它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 他在论文中提到:我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到...

2019-10-08 10:14:25 11975 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除