分类 开发相关 下的文章

openresty 学习笔记番外篇:python访问RabbitMQ消息队列

python使用pika扩展库操作RabbitMQ的流程梳理。

  1. 客户端连接到消息队列服务器,打开一个channel。
  2. 客户端声明一个exchange,并设置相关属性。(可以省略,不过必须保证所指定的交换器存在)
  3. 客户端声明一个queue,并设置相关属性。(可以省略,不过必须保证所指定的队列存在)
  4. 客户端使用routing key,在exchange和queue之间建立好绑定关系。(可以省略,不过必须保证其绑定关系)

作为生产者
客户端投递消息到exchange。

作为消费者
客户端通过队列接收消息,处理后进行应答。

- 阅读剩余部分 -

openresty 学习笔记四:连接mysql和进行相关操作

毕竟redis是作为缓存,供程序的快速读写,虽然reidis也可以做持久化保存,但还是需要一个做数据存储的数据库。比如首次查询数据在redis查询不到则查询mysql,再将查询结果写过redis供下次查询。保存数据也可以先写入redis再通过队列使用另外的程序异步写入mysql。

后面会逐步把openresty写入rabbitmq和python通过订阅rabbitmq的队列将数据写入mysql得方法都整理一下。

先看看openresty如何对mysql进行连接和操作,并进行二次封装

- 阅读剩余部分 -

openresty 学习笔记番外篇:rabbitmq

之所以要捣鼓这个,一方面是规划lua与redis交互后把redis与mysql的同步事务通过MQ发布出去。其他程序订阅该频道后去处理写入mysql的操作。另一方面,在实际情况中进程会遇到需要通过消息队列来处理各个环节间的延迟和阻塞带来的影响。

MQ的集群可扩展性、跨语言开发也确实很吸引。

在对比各个MQ平台后,对可靠性和成熟程度、各种语言的支持库和各种MQ协议的支持。最终选择rabbitMQ。

- 阅读剩余部分 -

openresty 学习笔记一:环境安装

openresty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。
性能之高与具体内容就不贴了,官网介绍很详细了

对我而言,我是觉得在nginx上加上这个lua的扩展来处理网关,路由和鉴权甚至加解密都是是非常合理的,这些工作在nginx就处理好,后端类似php程序等只管业务实现和界面展示,整个系统的架构也变得非常清晰。加上openresty 的性能还不是一般高的话就非常有可用性了。

学习的第一步是搭建环境。以下教程是在centos上编译安装openresty,php,redis,mysql的全部过程

- 阅读剩余部分 -