自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java 并发系列:重入锁死

Java 并发系列:重入锁死可重入锁,指的是线程可以重复获得它已经持有的锁。下面这个锁的实现是不可重入的:public class Lock{ private boolean isLocked = false; public synchronized void lock() throws InterruptedException{ w...

2018-07-16 14:42:11 354

原创 Java 并发系列:CAS机制

Java 并发系列:CAS机制在并发程序中,经常有“check and act”的场景:检查某个变量的值,然后再做相应的操作。例如获取锁的例子:class MyLock { private boolean locked = false; public boolean lock() { if(!locked) { locked ...

2018-07-16 12:18:13 525 1

原创 Java 并发系列:阿姆达尔定律

Java 并发系列:阿姆达尔定律阿姆达尔定律,给出定量的计算公式,计算CPU并行运算后的效率提升能力。定义:T = 串行执行总时间B = 不可并行执行的时间 T-B = 可并行执行的时间N = 线程或CPU的个数T(N) = 使用N个线程并行执行的总时间则:T(N) = B + (T(1)-B)/N 根据阿姆达尔定律,可以指导性能优化,分别对B,T-B进行优化。...

2018-07-16 11:54:19 532

原创 消息队列 Beanstalkd 源码解析(一)

Beanstalk源码解析

2016-10-29 20:00:21 943

原创 firewalld对指定IP开放指定端口的配置

firewalld 添加防火墙规则(对指定ip开放指定端口)

2016-06-14 18:34:22 35326 1

原创 Golang中的闭包

闭包的概念闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)参考引用。我个人的理解,闭包就是把函数和变量捆绑打包。闭包是一个函数值,它引用了函数体之外的变量。 这个函数可以对这个引用的变量进行访问和赋值;换句话说这个函数被“绑定”在这个变量上。举例package mainimport "fmt"func adder() func(int) int { sum := 0

2016-04-20 16:46:12 952

原创 postgresql双机热备、高可用方案(采用pacemaker+corosync实现)

PostgreSQL高可用环境说明操作系统centos7:[root@10 ~]# cat /etc/redhat-releaseCentOS Linux release 7.2.1511 (Core)[root@10 ~]# uname -aLinux 10.16.93.179 3.10.0-327.10.1.el7.x86_64 #1 SMP Tue Feb 16 17:03:50 U

2016-04-14 15:31:41 21929 10

原创 使用keepalived实现Redis双机热备、高可用

Redis高可用需求(1)Redis运行在docker容器中;(2)实现双机热备,当redis-master异常时,redis-slave快速切换成master提供服务。 (3)当redis-master数据更新时,redis-slave数据能同步更新。解决方案利用keepalived实现redis的高可用。keepalived利用shell脚本,定期检测redis服务是否正常。当redis服务异

2016-04-11 11:19:04 7168

原创 在ubuntu14.04上构建docker私有镜像库

构建docker私有镜像库环境准备Docker私有镜像库,分为服务端和客户端。服务端和客户端都要有docker环境。除此之外,服务端运行registry容器,完成镜像库的功能。客户端通过docekr pull、push等命令与服务端交互。环境说明如下表: 对象 版本 IP 备注 服务端 Ubuntu 14.04 192.168.142.128 在此主机上搭建镜像库

2016-03-18 18:14:01 1849

原创 在centos7上部署kubernetes

部署kubernetes环境准备K8S 分为 master 和 slave 两类角色。环境说明如下表: 对象 版本 IP 备注 k8s-master centos7 XX.XX.XX.179 K8S的master所在主机 etcd-server centos7 XX.XX.XX.179 etcd服务所在主机,与master在同一机器 k8s-slav

2016-03-18 18:09:27 12359 1

原创 《OpenResty Notes》2016年第02期

目录卷首语执行阶段概念WEB开发实战–HTTP服务中小企业安全体系构建之WAF实战基于OpenResty的百万级长连接推送Linux IO模式下Select、Poll、Epoll详解TCP&HTTP长连接微服务实战(一):微服务架构的优势与不足源文件链接:http://pan.baidu.com/s/1blxiY6

2016-03-04 16:26:29 596

原创 《OpenResty Notes》2016年第01期

过去的2015年,OpenResty发生了很多大事:首届OpenResty大会成功在北京举办,成立了专门的委员会,锤子手机向OpenResty软件基金会捐献奖金…这一件件振奋人心的消息背后,都有一群默默无闻为OpenResty技术的推广而努力的人们。作为一位OpenResty的粉丝及使用者,自己感谢OpenResty技术的贡献者为开源世界提供OpenResty这么优秀的作品,同时也琢磨着自己能为OpenResty的推

2016-01-02 14:57:57 536

原创 《Docker入门》:安装ubuntu14.04镜像

从dockerpool的源中pull镜像由于国内访问docker.io时网速较慢,从docker.com网站上拉取一个docker镜像一般会花费十多分钟。为了解决这个问题,我们从国内的dockerpool网站拉取ubuntu14.04的镜像。首先,添加CA认证, 这样我们接下来的拉取才能够顺利进行:sudo vi /etc/defaults/docker加入以下内容: DOCKER_OPTS=”

2015-12-12 00:44:14 11556

原创 《Docker入门》:和我一起写Dockerfile

dockerfile简介常用命令解析

2015-11-30 19:05:12 711

原创 数据库范式-表结构设计规范

数据库表结构设计有一套规范。设计出的表结构应尽量避免不必要地冗余,同时要确证灵活性。只需要遵守公认的范式,就可以达到较合理地设计效果。同时,这些范式也是评价一个数据库表结构设计是否合理的标准。

2015-11-29 23:20:36 1888

原创 基于Redis有序集合的终端在线推送解决方案

在我们的系统中,系统管理员关注所有终端的在线状态。因此,管理系统需要列出每个终端当前是否在线,最后心跳(在线)时间,以及当前系统中所有在线、离线终端数量。这是一个常见的需求。常见的方案是,终端定时给服务端发送心跳信息(例如每隔1分钟发一次心跳信息),服务端在数据库中维护一张终端在线状态表(t_client_status),该表包含终端(mid)、最后心跳时间(last_time)等信息。当管

2015-11-28 00:13:43 1282

原创 beanstalkd高可用方案:keepalived+rsync

本文描述一个beanstalkd高可用方案,实现beanstalkd的主备自动切换功能,当beanstalkd的master主机故障或者beanstalkd故障时,能自动切换到备机运行。

2015-11-26 14:26:02 3870 2

原创 《读书笔记》系列4:MySQL开发者SQL权威指南

第五章 select常用元素(1) 使用select A as B 时,B可以出现在select语句的其他子句中,除了From和Where子句之外。即select A as B from C where B…是错误的,只能只用select A as B from C where A…。原因是B这个列名并不属于这个表,只是在select语句块的结果。 (2) 使用SET来设置用户变量,用户变量可以在

2015-11-26 12:20:57 591

原创 《读书笔记》系列3:C++编程思想

第1章 对象导言极限编程先写测试XP革命性地改变了测试的概念,将它置于与 编码相等的优先地位。事实上,我们需要赢在编写被测试代码之前写测试额,而且这些测试时与代码永远在一起。这些测试必须在每次项目集成是都能成功执行。 先写测试有两个极其重要的作用: (1) 它强制好类的接口有清楚的定义; (2) 写测试的第二个重要作用,是在每次编译软件时运行这些测试。结对编程第3章 C++中的CMake的行为

2015-11-26 11:53:40 515

原创 《读书笔记》系列2:TCP/IP详解

第3章 IP:网际协议IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都已IP数据包格式传输。IP协议不能保证IP数据报能成功地到达目的地。IP仅提供尽力而为的服务。如果发生某种错误,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据包,然后发送ICMP消息报给信源端。任何要求的可靠性必须由上层来提供。无连接表示IP并不维护任何关于后续数据报

2015-11-26 11:48:08 737

原创 《读书笔记》系列1:UNIX环境高级编程

第七章 进程环境Int main(int argc,char *argv[]);其中argc是命令行的数目,argv是指向参数的各个指针所构成的数组。当内核执行C程序时,在调用main前先调用一个特殊的启动例程。可执行程序将此启动例程指定为程序的起始地址—这是有链接器设置的,链接器由C编译器调用。启动例程从内核取得命令行参数和环境变量值,然后按上述方式调用main函数。 进程终止有8种方式,正常终

2015-11-26 11:20:31 558

原创 《一起学》系列11:Redis入门

set/get/hset/hget的使用pipeline的使用script的使用常用接口

2015-07-30 00:32:22 633

原创 《一起学》系列10:Nginx入门

配置项进程模型负载均衡配置反向代理OpenResty的使用

2015-07-30 00:30:13 511

原创 《一起学》系列9:Linux & shell

内存管理进程管理

2015-07-30 00:28:57 363

原创 《一起学》系列8:网络编程

socket套接字阻塞IO/非阻塞IO同步IO/异步IOselectepoll信号SIGINTSIGHUBTCP协议三次握手/四次挥手状态迁移HTTP协议流量控制拥塞控制OpenSSL

2015-07-30 00:27:15 515

原创 《一起学》系列7:进程、线程模型

master/workerleader/follower守护进程线程同步问题

2015-07-30 00:21:16 485

原创 《一起学》系列6:进程间通信

共享内存消息队列管道socket套接字

2015-07-30 00:19:51 397

原创 《一起学》系列5:算法与数据结构

排序算法快速排序归并排序堆排序基数排序几个排序算法的比较查找算法二分查找缓存算法LRU数据结构单链表二叉树二叉搜索树栈哈希表红黑树动态规划贪心算法回溯NP最短路算法

2015-07-30 00:17:06 495

原创 《一起学》系列4:编译链接过程

内存分布情况程序的编译链接\装载

2015-07-30 00:09:45 480

原创 《一起学》系列3:C++对象模型

对象模型虚表程序在内存中的分布

2015-07-30 00:07:18 419

原创 《一起学》系列2:C++面向对象

构造顺序虚析构函数纯虚函数组合\继承多重继承构造函数\析构函数中的异常处理

2015-07-30 00:03:17 445

原创 《一起学》系列1:C++语言细节

C++语言细节

2015-07-29 23:54:23 486

原创 《一起学》系列

目录C++语言细节C++面向对象C++对象模型编译链接过程算法与数据结构进程间通信进程、线程模型网络编程Linux内核Nginx、Redis详解

2015-07-29 23:41:55 587

非诚勿扰课程设计

vs2010编的MFC程序《非诚勿扰》,第一个MFC程序.课程设计作业

2011-12-15

关于图的头文件&graph&实例

这个是老师给的关于图的头文件,适合初学者

2011-04-24

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

TA关注的人

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