- 博客(19)
- 资源 (22)
- 收藏
- 关注
原创 AMQP中的概念
1、生产者和消费者:生产者创建消息,然后发布到代理服务器的队列中,代理服务器会把消息发送给感兴趣的接受方。消费者链接到代理服务器,并订阅到队列上,接收消息2、信道channel:信道是“真实的”TCP连接内的虚拟连接,AMQP的命令都是通过信道发送的。在一条TCP连接上可以创建多条信道3、队列:存放消息的地方,队列通过路由键绑定到交换机,生产者通过交换机将消息发送到队列中。4、交换机和
2017-02-18 16:45:52
564
原创 Mac 安装rabbitmq
Mac可以通过brew安装rabbitmq1、brew update2、brew install rabbitmq3、在~/.bash_profile或者~/.profile文件中添加 export PATH=$PATH:/usr/local/sbin。因为rabbitmq默认是安装到/usr/local/sbin目录下的4、运行rabbitmq,执行命令 rabbitmq-ser
2017-02-18 14:46:05
359
转载 使用AWS从0扩展到1000万用户的架构指南
原文链接:http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-scaling-to-11-million-users-on-amazons.htmlA Beginner's Guide To Scaling To 11 Million+ Users On Amazon's AWSMONDAY, JANUARY 1
2017-02-17 15:00:26
1503
原创 laravel 读操连接了读库和写库
今天在laravel框架中配置读写分离时,发现ORM的读操作分别连接了主库和从库,由于我们的产品是在海外推广,用的AWS 的 RDS Mysql版本,主库在美国,在新加坡开了个从库,发现查询时连接了主库和从库,导致查询非常慢,因此只能通过原生SQL查询。laravel的读写分离配置如下(database.php):'connections' => [ 'mysql
2017-02-17 14:12:26
813
原创 AWS坑
由于云服务要从阿里云迁移到AWS上,这里记录一下使用过程中遇到的问题:1、安全非常重要, 不要使用注册AWS的用户登录系统,要用IAM管理用户和组2、如果使用了根账户,不能使用根账户的key访问资源,特别注意保护key的安全。我有一次将key上传到了Github,账户被刷了700刀(被挖矿的开了几十台高配置的EC2)3、使用负载均衡时,在Route53中需要配置为IPv4 +
2016-12-24 18:49:36
864
原创 快速排序
分治法:把大问题划分为多个小问题,利用相同的算法解决小问题,快速排序是分治法的典型代表快速排序的流程如下:1、选择分割元素e, e的下标为i,然后重新排列元素使得1到i-1的元素都小于e,i+1到 n(元素个数)的元素都大于或等于e2、通过递归,对1到i-1的元素排序3、通过递归,对i+1到n的元素排序代码如下sort.c:#include #define N
2016-12-11 15:07:56
464
原创 数据链路层
数据链路层主要有3个目的为IP模块发送和接收IP数据报为ARP模块发送和接收ARP请求和应答为RARP发送RARP请求和应答常见的链路层协议有以太网、令牌环网、FDDI、RS-232窜行线路。以太网和IEEE 802.2/802.3 封装格式如下:环回接口:允许同一台主机上的客户程序和服务器程序通过TCP/IP进行通信。大多数系统将127.0.0.1分配给这个接口,并命名为
2016-11-27 14:29:48
204
原创 TCP/IP分层
TCP/IP协议族分为应用层、运输层、网络层、链路层,每一层负责不同的功能链路层,又是一称为数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆的物理接口细节网络层,处理分组在网络中的选路。在TCP/IP协议族中,网络层包括IP协议、ICMP协议、IGMP协议运输层,主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个
2016-11-27 13:51:02
269
原创 who 命令
who命令用于显示当前系统中已经登录的用户信息,用户登录信息存储在utmp文件中,utmp.h在/usr/include/bits/下,utmp文件的结构如下:{ short int ut_type; /* Type of login. */ pid_t ut_pid; /* Process ID of login process. */ char u
2016-11-19 22:02:57
385
原创 python 高效读取文件
python可以通过迭代器和with语句高效低读取俄文件迭代器读取文件如下:#!/usr/bin/env python def read_file(filename): try: fh = open(filename, 'r') excep
2016-11-01 23:37:34
705
原创 python 模块布局
python标准的模块布局:1、起始行:通常在*nix系统下才使用起始行,起始行的作用是可以通过脚本名字直接来执行脚本, 起始行一般是:#/usr/bin/env python, 通过env,系统可以自动搜索python解释器的位置2、模块文档描述:主要介绍模块的功能,可以通过module.__doc__访问模块文档描述3、模块导入:导入当前模块需要的其它模块,每个模块在当前模块被加载
2016-10-29 17:34:43
315
原创 map的lisp实现
map:有一个过程和一个参数列表,返回这一过程应用于表中各个元素得到的结果列表实现如下:(define (map proc items) (if (null? items) null (cons (proc (car items)) (map proc (cdr items)))))demo: (def
2016-09-16 15:18:48
810
翻译 九段秘书
九段秘书:总经理要求秘书次日上午9点安排一个会议。这件事情中什么事任务,什么是结果?通知所有参会的人员,然后秘书自己也参加会议,这是“任务”。但是我们想要的结果是什么呢?下面是一至9段秘书的不同做法。 一段秘书的做法:发通知——用电子邮件或在黑板上发个会议通知,然后准备相关会议用品,并参加会议。 二段秘书的做法:抓落实——发通知之后,再打一通电话与参会的人确认,确保每个人被
2015-06-29 17:43:11
777
转载 百万用户时尚分享网站feed系统扩展实践
百万用户时尚分享网站feed系统扩展实践发表于2013-11-07 18:47| 8157次阅读| 来源High Scalability| 12 条评论| 作者Thierry Schellenbach架构设计feed系统扩展性 摘要:Fashiolista作为一个以社交、分享为主的在线时尚交流网站,其feed系统占据了网站的核心架构,其扩展性至关重要。网站创始人兼C
2014-12-10 14:49:34
814
原创 nginx按小时分割error日志
为了便于查看nginx的错误日志,需要将其按小时分割,操作步骤如下:1、编写nginx日志分割脚本,脚本内容如下: #!/bin/bash #获取当前时间 log_year=$(date +"%Y") log_month=$(date +"%m") log_day=$(date +"%d") log_hour=$(date +"%H"
2014-12-09 15:53:58
1569
原创 log4php将不同级别的日志打印到不同的日志文件中
有时为了好查看error日志,需要将error级别以上的日志打印到单独的日志文件中,下面介绍log4php如何配置来实现这种方法1、配置日志文件,由于要使用到过滤器,所以只能使用php配置文件或者xml配置文件,下面只介绍php配置文件的配置,新建一个log4php.php的文件,配置项如下return array ('rootLogger' => array ('append
2014-12-09 11:06:13
1296
原创 Log4php 按小时切换日志
Log4php是php常用的日志组件。在一般的项目中,方便查看日志,一般都是按小时切换日志。下面通过一个demo来讲解Log4php的使用1、将Log4php源码拷贝到工程中,配置log4php.properties文件,如下:log4php.threshold = DEBUGlog4php.rootLogger = DEBUG, defaultlog4php.appender.d
2014-12-08 20:09:39
988
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人