Posts
All the articles I've posted.
-
如何理解Nginx, WSGI, Flask之间的关系
概览 之前对 Nginx,WSGI(或者 uWSGI,uwsgi),Flask(或者 Django),这几者的关系一存存在疑惑。通过查阅了些资料,总算把它们的关系理清了。 总括来说,客户端从发送一个 HTTP 请求到 Flask 处理请求,分别经过了 web服务器层,WSGI层,web框架层,...
-
RPC 基本原理与 Apach Thrift 初体验
概述 RPC(Remote Procedure Call,远程过程调用)是一个计算机通信协议,此协议允许进程间通信。简单来说,当机器 A 上的进程调用机器 B 上的进程时,A 上的调用进程被挂起,而 B 上的被调用进程开始执行。调用方可以通过参数将信息传送给被调用方,然后可以通过被调用方传回的...
-
细说 C++ Traits Classes
最近在看侯捷的《STL源码剖析》,看到第三章有关 traits 的介绍,被搞得一头雾水,看了半天不知所云。为了彻底了解这个技法的原理,硬着头皮上网查了资料,并结合 Scott Meyers 的 《Effective C++》,总算是把 traits 的原理搞明白了:) 什么是 traits?我...
-
体验 gRPC 那些事儿
概述 我们来看 google 对于 gRPC 的定义: > A high performance, open-source universal RPC framework 即 gRPC 是一个开源的高性能通过 RPC 框架。具体来说,它具有以下特点: 使用 protocol buffers 来...
-
Git远程仓库
Git 支持在本地仓库进行程序项目的版本管理,这个本地的 git 仓库在程序项目的文件夹内(也就是 “.git” 文件夹内)。随着程序项目的推进,我们会把不同阶段的文件内容加入到这个 git 仓库中。这个仓库由我们直接操控,我们将它称之为“本地 git 仓库”。 除了“本地 git 仓库”外,...
-
MongoDB Java使用指南
MongoDB是当今非常流行的一款NoSQL数据库,本文介绍如何使用MongoDB的Java驱动来操作MongoDB。 一、引入MongoDB Java Driver包 如果需要操作MongoDB的Java项目是一个Maven项目,可以在依赖中加上以下的配置。 或者通过直接下载jar包的方式使...
-
Python Requests库简明使用教程
Requests是一常用的http请求库,它使用python语言编写,可以方便地发送http请求,以及方便地处理响应结果。 一、安装 1.1 使用pip进行安装 要安装requests,最方便快捷的方法是使用pip进行安装。 > pip install requests 如果还没有安装pip,...
-
负载均衡(Load Balancing)学习笔记三——负载均衡算法
本文讲述实现负载均衡的常用算法。 轮询法(Round Robin) 轮询法是负载均衡中最常用的算法,它容易理解也容易实现。 轮询法是指负载均衡服务器(load balancer)将客户端请求按顺序轮流分配到后端服务器上,以达到负载均衡的目的。 假设现在有6个客户端请求,2台后端服务器。当第一个...
-
负载均衡(Load Balancing)学习笔记(二)
概述 文章负载均衡(Load Balancing)学习笔记(一) 讲述了负载均衡的一般性原理,本文继续介绍常见的实现负载均衡的方法。 HTTP重定向 HTTP重定向服务器是一台普通的Web服务器,用户的请求先到达重定向服务器,这台服务器会挑选一台后端服务器的地址(例如使用轮询的方式),并将该...
-
使用Redis SETNX 命令实现分布式锁
使用Redis的 SETNX 命令可以实现分布式锁,下文介绍其实现方法。 SETNX命令简介 命令格式 > SETNX key value 将 key 的值设为 value,当且仅当 key 不存在。 若给定的 key 已经存在,则 SETNX 不做任何动作。 SETNX 是SET if No...