Golang百万级高并发实践

写在前面Go语言作为新兴的语言,最近发展势头很是迅猛,其最大的特点就是原生支持并发。它使用的是“协程(goroutine)模型”,和传统基于 OS 线程和进程实现不同,Go 语言的并发是基于用户态的并发,这种并发方式就变得非常轻量,能够轻松运行几万并发逻辑。Go 的并发属于 CSP 并发模型的一...

2018-01-09 22:17:48

阅读数 14618

评论数 6

Golang设计模式之观察者模式

1. 概述观察者模式简单一句话说就是当特定事件出现时,一个对象实例把事件发布到对应的观察者实例上执行相应的更新操作。一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展,这就是观察者模式的模式动机。其类图如下:具体的代码可示例从githu...

2017-12-12 17:34:56

阅读数 1997

评论数 0

golang log模块之log4go使用介绍

1. 描述在go语言中,自身已经集成了一定log模块,开发者可以使用go语言自身的log包(import “log”)。也有不少对自身log的开源封装。对于一些简单的开发,自身的log模块就已经足够应付。但是对一些大型,复杂的开发,log需要分门别类的输出,或者通过网络进行输出,自身log模块将难...

2017-11-19 20:29:46

阅读数 7606

评论数 0

Golang设计模式之代理模式

1. 概述代理模式,简单来说就是提供一个对象来控制其他对象的功能。在一些情况下,一个Object不适合直接引用目标对象,但可以通过代理对象调用目标对象,起到中介代理的作用。相关源代码demo在Github上,可供参考!2. 实现示例那个简单的例子,中介代理各业主的房子。每个业主都有个卖房的函数。中...

2017-10-22 16:38:25

阅读数 1406

评论数 0

Golang设计模式之装饰模式

1. 概述装饰模式就是在不改变对象内部结构的情况下,动态扩展它的功能。它提供了灵活的方法来扩展对象的功能。2. 实现下面是一个简单的实现逻辑,通过Decorate来进一步装饰Dressing函数:type Object func(string) stringfunc Decorate(fn Obj...

2017-10-14 21:20:47

阅读数 1531

评论数 0

Golang设计模式之外观模式

1. 概述它为一套复杂的调度子系统提供一个统一的接入接口。外部所有对子系统的调用都通过这个外观角色进行统一调用,降低子系统与调用者之间的耦合度。 Golang设计模式相关源码在github上有提供,可供参考!2. 举例说明那当前比较热门的微服务来说,一套服务(比如说短视频服务)包括若干子服务,如...

2017-09-24 16:46:25

阅读数 1294

评论数 0

Golang设计模式之单例模式

1. 概述单例模式,顾名思义就是在程序的运行中只产生一个实力。在Go实现上也有多种形式。相关源代码demo在Github上,可供参考!2. 实现一、懒汉模式.这种方式实现起来特别简单,直接判断一个实力是不是为nil, 如果是,则新生成;否则返回已有的。但它和多数语言一样,只适合用在单线程。type...

2017-09-16 11:52:15

阅读数 2874

评论数 0

golang设计模式之建造者模式

1. 概述建造者模式将一个复杂的对象与它的表示分离,同样的创造过程可以建造出不停的表示。比如汽车,它包括商标、车轮、颜色、发送机等各种部分。而对于大多数用户而言,无须知道这些部件的装配细节,也几乎不会使用单独某个部件,而是使用一辆完整的汽车,可以通过建造者模式对其进行设计与描述,建造者模式可以将部...

2017-09-03 17:00:40

阅读数 2360

评论数 0

golang设计模式之工厂方法模式

1. 概述简单工厂模式是通过传递不同的参数生成不同的实例,缺点就是扩展不同的类别时需要修改代码。工厂方法模式为每一个product提供一个工程类,通过不同工厂创建不同实例。类图:相关源代码demo在Github上,可供参考!2. 实现过程 工厂方法定义一个创建struct的接口,让子struct去...

2017-09-03 16:48:26

阅读数 3070

评论数 0

golang设计模式之简单工厂模式

1. 写在前面在面向对象的编程语言中(如java,C++)设计模式的概念广为人知, 应用的也非常广泛。设计模式让我们的代码变得灵活起来,具有很强的扩展性。但在与C语言比肩的Go语言中,设计模式的概念并没有十分突出,甚至很少听到。在Go的开发中,借鉴design pattern的理念同样回味无穷我们...

2017-08-31 23:15:55

阅读数 2923

评论数 0

Docker 初实践手札

1. Docker简介 Docker 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本! 使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松! 无论是应用开发者、运维人员、还是其他信息技术从业人员,都有必要认识和...

2017-08-30 15:57:33

阅读数 2071

评论数 0

ELK 日志监控平台环境搭建及使用说明

1. ELK概述ELK,也就是Elasticsearch、Logstash、Kibana三者的结合,是一套开源的分布式日志管理方案.Elasticsearch:负责日志存储、检索和分析LogStash:负责日志的收集、处理Kibana:负责日志的可视化方案: 2. 环境搭建为整体环境创建一个合适...

2016-11-01 14:29:28

阅读数 14167

评论数 0

php 使用“/dev/urandom”获取随机数

描述  首先,说一下伪随机数,伪随机数并不是假随机数,这里的“伪”是有规律的意思,就是计算机产生的伪随机数既是随机的又是有规律的。怎样理解呢?产生的伪随机数有时遵守一定的规律,有时不遵守任何规律;伪随机数有一部分遵守一定的规律;另一部分不遵守任何规律。比如“世上没有两片形状完全相同的树叶”。  ...

2016-09-22 21:37:48

阅读数 5066

评论数 0

各种语言(php、python、shell、perl)中读一行或stdin

描述  支持标准输入输出的程序语言有很多,例如shell、php、python、perl、C等。在编写各种脚本完成目标任务时,数据的输入时比较常见的逻辑。下面逐个列举一下使用的例子。示例  在php中,我们可以用如下方式:<?php $file = fopen("php://std...

2016-09-12 13:14:17

阅读数 2961

评论数 0

Mysql 复制表结构

like 方法语法格式:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name { LIKE old_tbl_name | (LIKE old_tbl_name) }示例: create table a like origin_tb;特点: like方法...

2016-09-06 14:13:59

阅读数 2733

评论数 0

makefile: *** missing separator. Stop

问题描述  在执行Makefile时,有时候会出现missing separator的错误,通常的原因是tab格式导致的。原因  makefile里只有命令所在的行才能且只能以TAB开头,make变量的定义、赋值,make内定函数如$(error “strings”)都不能以TAB开头,不然mak...

2016-09-01 15:35:37

阅读数 12945

评论数 0

PHP 正则表达式过滤特殊字符

问题描述    php使用正则表达式过滤特殊的字符示例<?php function replaceSpecialChar($strParam){ $regex = "/\/|\~|\!|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\_|\+|\{|\}|...

2016-05-09 12:07:33

阅读数 14789

评论数 0

PHP 删除数组第一个元素和最后一个元素

1. array_shift()函数  删除数组中第一个元素,并返回该元素的值。如果数组为空则返回null。   示例:<?php$test_arr = array ( "name" => "jeanphorn", "...

2016-02-29 18:51:40

阅读数 7847

评论数 0

mongoDB 查询操作

1. mongoDB 文档查询查询语法格式:db.COLLECTION_NAME.find() find()方法查询指定集合中所有的文档,并已非结构化的方式显示。如果需要直观的显示结果,可以再find后面加上pretty()方法。例子:> > db.person.find() ...

2016-01-11 15:28:28

阅读数 1793

评论数 0

MongoDB 文档的更新操作

1. 更新文档  MongoDB更新文档的方法主要有两个,update()和save()。2. update()方法2.1 格式说明  update()方法适合更新MongoDB中已存在的集合,格式如下:db.collection.update( <query>, <...

2015-12-02 19:04:52

阅读数 1756

评论数 0

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