欢迎来访我的博客。
其他

消息队列之RabbitMQ-06_远程过程调用(RPC)

在此,我们先来看一下什么是远程过程调用。远程过程调用简单来说可以是客户端调用远程服务端的服务。远程过程调用的大致过程如下: 1、客户端client发起服务调用请求。 2、client stub 可以理解成一个代理,会将调用方法、参数按照一定格式进行封装,通过服务提供的地址,发起网络请求。 3、消息通过网络传输到服务端。 4、server stub接受来自socket的消息 5、server stub将消息进行解包、告诉服务端调用的哪个服务,参数是什么 6、结果返回给server stub。 7、sever stub把结果进行打包交给socket 8、socket通过网络传输消息 9、client slub 从socket拿到消息。 10、client stub解包消息将结果返回给client。

小张哥哥 2019年7月22日 20:37 60066浏览 90评论 0喜欢

其他

消息队列之RabbitMQ-05_主题交换机

在前面,我们使用直连交换机(direct exchange)代替了扇形交换机(fanout exchange),达到了我们选择性的接收日志的目的。 但是,现在我们有了更进一步的需求: 我们希望能够不仅仅根据严重程度对日志进行分类,我们还希望达到根据日志来源来分类的目的。比如,我们现在既可以舰艇来源为“corn”的严重程度为“critical errors”的日志,也可以监听来源于“kern”的所有日志。 为了达到这个目的,我们现在需要一个更复杂的交换机-主题交换机(Topic exchange)。

小张哥哥 2019年7月21日 19:56 46243浏览 672评论 0喜欢

其他

消息队列之RabbitMQ-04_直连交换机

在前面的发布订阅模式中,发送者发布的消息可以广播给多个接收者。比如前面的日志系统中,日志消息可以发送给一个接收方在屏幕显示,同时发送给另一个接收方将日志消息保存到文件内。 假如现在我们需要实现这样的需求:日志信息有日志的重要程度进行区分,我们希望把比较严重的日志写入到文件中,而且同时把所有的日志都显示在屏幕上。 现在我们就需要交换机的另外一种模式,并搭配routing key实现。

小张哥哥 2019年7月21日 16:16 79149浏览 125评论 1喜欢

其他

消息队列之RabbitMQ-03_发布订阅

前面文章中的工作队列,生产者生产的一个消息通过消息队列最终分发给一个消费者消费。 在本文中,我们来看以下一个不同形式的消息队列,即“发布/订阅”模式。 在这种模式下,一个生产者发出的一个消息,经过消息队列最终分发给多个消费者。

小张哥哥 2019年7月19日 19:42 3736浏览 41评论 1喜欢

其他

消息队列之RabbitMQ-02_工作队列

前面文章中的一个简单队列中只有一个生产者,一个队列和一个消费者。下面我们床架一个工作队列,可以发送一些耗时的任务给多个工作者(worker)。 工作队列(Task Queues)是为了避免等待一些占用时间和资源的操作。当我们把任务(Task)当作消息发送到队列中,一个工作者(worker)就会取出任务然后进行处理,如果任务很多,就会有多个工作者共同分工完成这些任务。

小张哥哥 2019年7月19日 16:30 23702浏览 164评论 0喜欢

其他

消息队列之RabbitMQ-01_安装和简单队列

MQ即是Message Quene的缩写,字面意思消息队列。RabbitMQ就是消息队列中比较常用的一个框架。它是用Erlang语言开发的,使用了AMQP消息队列协议。 它是一个开源的,性能良好,优秀的消息中间件。 在应用解耦,流量消峰,缓存,异步通信等方面有良好的应用,同时也可应用在微服务系统中实现最终一致性。

小张哥哥 2019年7月19日 14:10 39284浏览 745评论 0喜欢

Django

Django Rest Framework学习总结:快速入门

前面的几篇关于REST framework的内容,从刚开始的序列化到框架的几个重要的模块,再到基于类的视图,再到认证和权限,后面还有给我们的API添加链接,以及最后关于ViewSet和Router的内容。这算是一个比较系统的,比较完善的学习过程。如果只是简单使用REST framework,不想花费很多精力的化,可以直接通过本文内容快速入门Django REST framework。

小张哥哥 2019年7月17日 21:45 3151浏览 33评论 2喜欢

Django

阿里云配置个人网站的HTTPS访问

HTTPS协议是基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护。 HTTPS采用非对称加密,加密过程中需要使用到公钥进行加密。公钥包含在数字整数中,数字整数通常来说是由受信任的数字证书颁发机构CA在验证服务器身份后颁发,证书中包含了一个密钥对(包括公钥和私钥)和所有者的识别信息。数字证书被放到服务器,进行服务器身份验证和数据传输加密功能。 下面来看一下,我们在阿里云服务器部署的网站如何设置,让其支持HTTPS访问。

小张哥哥 2019年7月13日 11:09 15013浏览 640评论 2喜欢

Django

使用Prism.js实现文章页面中代码块的高亮

作为一个码农,在博客上展示代码的时候,很希望代码能够很漂亮,很优雅的形式展示出来。这其中代码的高亮效果是非常重要的一个因素。 最近在完善自己的博客的时候,发现文章代码的高亮不是很好。于是就在网上查了一下。发现貌似prism.js插件的高亮效果还不错。我这边就拿来试一下。

小张哥哥 2019年6月6日 19:40 4163浏览 488评论 3喜欢

Django

使用CNZZ统计博客的访问量

为了统计网站的访问情况,以方便我们对网站内容做进一步的针对性的优化。 网站的访问量统计有几个概念需要了解一下: PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。 UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。 IP(独立IP):即Internet Protocol,指独立IP数。00:00-24:00内相同IP地址之被计算一次。

小张哥哥 2019年6月4日 21:18 4853浏览 497评论 1喜欢

Django

Django Rest Framework学习总结-6:ViewSets和Routers

REST framework里面有一写抽提出来的类用于处理ViewSets。这可以让我们在开发的时候专注于模型和API之间的交互,而URL链接的构建则能自动进行处理。 ViewSet类和View类基本是相同的,除了ViewSet提供read或者update的操作,而不是get或者put这些操作方法。 一个ViewSet只是在实例化成为一组视图实例的最后才会和一组操作方法绑定。绑定时候可以通过Router类来帮我们处理这些繁复的URL配置。

小张哥哥 2019年3月30日 19:57 3819浏览 484评论 3喜欢

数据库

Redis学习笔记3:Redis的持久化

在未持久化的情况下,Redis所有数据是保存在内存中的,服务器重启或者断电后会造成内存中的数据丢失,所以如果需要保存数据,则需要对内存中的数据进行持久化,对数据的更新将异步保存到硬盘上。 持久化的方式: 快照: MySQL Dump, Redis RDB 写日志: MySQL Binlog; Hbase HLog; Redis AOF

小张哥哥 2019年3月27日 21:27 477浏览 3评论 0喜欢

数据库

Redis学习笔记1:安装和启动

​Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。由于其高可用,高性能,已经被广泛使用了。现在对Redis的学习过程做一系列的总结性的记录。

小张哥哥 2019年3月22日 21:55 574浏览 5评论 0喜欢

Django

Django Rest Framework学习总结-4:认证与权限(Authentication&Permissions)

当前,我们的API并没有权限设定,限定哪些用户可以编辑或删除。因此我们需要一些更加高级的行为来确保: 1. 每一个代码片段(Code Snippet)实例都有一个创建者(creater); 2. 只有相应授权的用户才可以创建代码片段实例; 3. 每个代码片段只能被它的创建者更新或删除; 4. 非授权的请求,只有只读的权限。

小张哥哥 2019年3月17日 00:20 3516浏览 485评论 2喜欢

Django

Django Rest Framework学习总结-2:Requests和Responses

从本文开始,我们开始进入到REST framework比较核心的部分。我们首先介绍一下组成框架的几个重要的组成部分。 Request对象 REST framework引入了一个Request对象,它是继承自常规的HttpRequest,提供了更加灵活的request解析。Request对象最核心的功能是request.data属性,这个属性和request.POST很像,但是对于开发Web API,它的用处更大。

小张哥哥 2019年3月14日 20:25 7633浏览 513评论 2喜欢

Django

Django Rest Framework学习总结-0:安装和简例

Django Rest Framework是一个功能强大而且非常灵活的工具,可以用来构建web api。官方给出的优点如下: The Web browsable API is a huge usability win for your developers. 对开发这来说非常具有可用性的web api Authentication policies including packages for OAuth1a and OAuth2. 安全策略,包括一些适用于OAuth1a和OAuth2的包 Serialization that supports both ORM and non-ORM data sources. 支持对ORM和非ORM的数据的序列化。

小张哥哥 2019年3月12日 22:15 3626浏览 494评论 0喜欢

Python

常见排序算法的Python实现,及其复杂度和稳定性分析

排序算法经过很长时间的演化,产生了很多不同的方法。虽然每一种的算法在时间和空间复杂度上各有不同,但是各种算法也都有不同的应用场景,并不是效率最高的算法就适应所有的使用场景。 下面我们来归纳一下我们常见的一些排序算法,已经这些算法的时间复杂度和空间复杂度,以及这些排序算法的稳定性。 按照大的分类,排序可以分为内排序和外排序。内排序是值在排序过程中,全部记录都是存放在内存中的。而外排序则是在排序过程中需要使用到外部存储。

小张哥哥 2018年12月21日 20:45 1464浏览 40评论 12喜欢

Django

第1章, 开发环境和开发准备工作

学习Django有一段时间了。现在萌生了开发一个个人博客的想法,主要基于以下几点: 一方面, 在学习过程中也做过一些小项目了,但是学习过程中毕竟不断跟随课程,查找资料,解决遇到的各种问题。过程比较零散,感觉算不上一个很完善的个人项目。因此想自己抽出比较多的时间,流畅完善的做一个比较完整的Django项目

小张哥哥 2018年8月15日 21:44 689浏览 5评论 0喜欢

Python

第0章, 使用Django开发个人博客

学习Django有一段时间了。现在萌生了开发一个个人博客的想法,主要基于以下几点: 一方面, 在学习过程中也做过一些小项目了,但是学习过程中毕竟不断跟随课程,查找资料,解决遇到的各种问题。过程比较零散,感觉算不上一个很完善的个人项目。因此想自己抽出比较多的时间,流畅完善的做一个比较完整的Django项目

小张哥哥 2018年8月11日 21:40 3094浏览 41评论 0喜欢

其他

Github的使用

使用Git,我们需要一个中央服务器。我们可以直接搭建一个,也可以使用Github。Github是目前最流行的Git托管库,个人开发者和企业都存放了大量的开源代码在这个托盘平台。

小张哥哥 2018年2月22日 20:50 808浏览 3评论 0喜欢

其他

Git的分支操作

Git一个很重要的操作就是分支相关的操作,这也是多人协同项目中一个非常重要的功能。可以创建新分支,合并分支,对合并分支过程中的冲突进行处理。另外跟分支相关的还有工作现场的保存与恢复。

小张哥哥 2018年2月18日 11:33 218532浏览 6780评论 0喜欢

其他

Git的基本操作

Git是一代大神Linus Torvalds开发的一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Linus开发支出是为了帮助管理Linux内核开发二开发的一个分布式的版本控制软件。而我们常用的CVS, SVN等则是集中式版本控制软件。

小张哥哥 2018年2月17日 12:05 1234浏览 10评论 0喜欢