自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

andylau00j的专栏

linux c++ golang

  • 博客(136)
  • 收藏
  • 关注

转载 SSL/TLS 协议简介与实例分析

以前读RFC时总结的一篇文章,主要介绍了SSL/TLS协议的相关知识,包括协议本身以及简单的密码学概念,以及用实例解析了HTTP over SSL的协商过程,在最后简要列出了SSL的安全问题。1. RFC documents about SSL/TLSRFC-2246: The TLS Protocol Version 1.0详细讲述了TLS1.0的协议,TLS协议提供了一种I

2017-01-17 11:26:33 740

转载 SSL握手过程

一、SSL握手有三个目的:1. 客户端与服务器需要就一组用于保护数据的算法达成一致;2. 它们需要确立一组由那些算法所使用的加密密钥;3. 握手还可以选择对客户端进行认证。二、SSL握手过程:1. 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器;2. 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用

2017-01-16 23:58:10 538

转载 公钥、私钥、数字证书的概念

公钥和私钥                                            公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。      使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的:      1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。      2

2017-01-16 23:45:41 1252

转载 关于国密算法 SM1,SM2,SM3,SM4 的笔记

国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度

2017-01-14 16:32:54 214985 29

原创 GMssl -- 1

为什么我国要有自己的密码算法?这个问题不在此展开回答了,密码技术对国家的重要性可以参考二战时期英美和德国的密码对抗。目前我国公开发布的主要商用密码算法如下(SM也即拼音“商密”):- SM2:256位的椭圆曲线算法,包括密钥生成,签名,密钥交换和公钥加密四种算法- SM3:摘要算法,输出长度32字节(与SHA-256同样长度)- SM4:分组长度为16字节的对称加密算法

2017-01-14 11:04:29 2693 1

转载 gmssl SMS4 dgst

一、国密SM4进行加解密如上图所示,上述命令使用gmssl中的国密算法sm4的ecb模式对 encFile.txt进行解密生成decFile.txt, -K 后面是密钥二、国密SM3获得摘要信息如上图所示,输入文件为 src.txt,方式为SM3,输出文件是sm3rlt.txt, 以 binary的形式写入到sm3rlt.txt, 否

2017-01-14 10:50:36 3014

转载 分布式机器学习的故事:Docker改变世界

作者:王益链接:https://zhuanlan.zhihu.com/p/19902938来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Docker最近很火。Docker实现了“集装箱”——一种介于“软件包”和“虚拟机”之间的概念——并被寄予厚望,以期革新Internet服务以及其他大数据处理系统的开发、测试、和部署流程。为了使用Docker

2017-01-12 18:57:41 476

转载 Golang部份特性的C++对比实现

今天看到一篇文章C++ 逐渐 Python 化>>, 我个人是认为这个说法是不成立的,但这里面的一些特性对比引起了我的兴趣。我想尝试下,Go语言所带的一些东西,在C++11中是如何做的,应当很有意思。所以刷刷刷,就有了下面的东西。           目录:                     字符串字面值                     变量初始化

2017-01-11 15:14:08 2958

转载 Go语言无孔不入的2016:跻身主流编程语言、国内大热、极速提升、尖端应用……

2015,Go迎来了全迸发的一年。时隔一年,回头再看,Go已跻身主流编程语言行列。在国内,Go的热度更是不凡。2016,对于Go来说,又是怎样的一年?前言Go语言已经7岁了!今年8月,Go 1.7如期发布。撰写本稿时,Go 1.8的测试版也出来了。我们正在热切盼望着明年2月的Go 1.8正式版。如果你关注TIOBE的编程语言排行榜就会发现,截止到2016年11月,Go语言从原先的第

2017-01-06 19:17:08 2123

转载 Debugging performance issues in Go programs

Let's assume you have a Go program and want to improve its performance. There are several tools available that can help with this task. These tools can help you to identify various types of hotspots

2017-01-06 19:12:48 466

转载 5张图看尽Go语言GC的演变史

转载。。Sunface 文章欢迎大家加入Golang隐修会,QQ群:894864,大神很多。1.5版本:1.6版本:1.6.2版本:1.7版本:1.8beta1(18G堆栈全采样):

2017-01-06 18:08:58 400

转载 3种优雅的Go channel用法

写Go的人应该都听过Rob Pike的这句话Do not communicate by sharing memory; instead, share memory by communicating.相信很多朋友和我一样,在实际应用中总感觉不到好处,为了用channel而用。但以我的切身体会来说,这是写代码时碰到的场景不复杂、对channel不熟悉导致的,所以希望这篇文章能给大家带来

2016-12-30 00:56:56 7205 2

转载 一些Golang小技巧

今天给大家介绍3个我觉得比较有启发的Golang小技巧,分别是以下几个代码片段nsq里的select写文件和socketio模块里的sendfilefasthttp里对header的处理nsq里的select读在nsq中,需要读取之前磁盘上的,或者是从内存中直接读取,一般人都是先判断内存中有没有数据,然而,nsq另辟蹊径使用了select语句,把CSP模式用到了极致。源文件链接

2016-12-30 00:55:29 2315

转载 NSQ源码剖析之nsqd

NSQ 是实时的分布式消息处理平台,其设计的目的是用来大规模地处理每天数以十亿计级别的消息。NSQ 具有分布式和去中心化拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征,是一个成熟的、已在大规模生成环境下应用的产品。NSQ 由 3 个守护进程组成: nsqd 是接收、保存和传送消息到客户端的守护进程。 nsqlookupd 是管理的拓扑信息,维护着

2016-12-30 00:50:23 1437

转载 NSQ源码分析之nsqlookupd

上篇文章介绍了NSQ整体概述以及拓扑结构;这篇文章开始分析下NSQ源码;NSQ主要由三个部分nsqd,nsqlookupd,nsqadmin以及一些工具组成,我们从简单的nsqlookupd开始分析源码;nsqlookupd是nsq管理集群拓扑信息以及用于注册和发现nsqd服务;所以,也可以把nsqlookupd理解为注册发现服务;当nsq集群中有多个nsqlookupd服务时,因为每个nsqd都

2016-12-30 00:44:44 1230 2

转载 NSQ源码分析之概述

消息队列在互联网公司使用非常普遍,因此也促使我去学习研究消息队列的原理以及细节问题;之前也有接触过消息队列,最主要就是在异步处理方面,当然消息队列还解耦,流量削峰等功能;目前消息队列产品也比较多,例如kafka,ActiveMQ,RabbitMQ,NSQ等等;之前原本打算看kafka,但是处于学习成本(kafka是scala编写,之前scala接触的比较少),所以就先不看kafka,选择了NSQ;

2016-12-30 00:43:12 2265

转载 NSQ的设计特点:

nsq的设计特点:分布式的队列传输节点,能够避免传输节点的单点故障,确保消息一定会被传输一次, 但是这样可能引起消息被多次传输bound the memory footprint of a single process (by persisting some messages to disk)简化消费者和生产者的配置提供了一个简单明确的升级路线提升了效率nsqde的基本概念

2016-12-30 00:40:03 2422

转载 Scaling NSQ to 750 Billion Messages

Since Segment’s first launch in 2012, we’ve used queues everywhere. Our API queues messages immediately. Our workers communicate by consuming from one queue and then publishing to another. It’s given

2016-12-30 00:31:45 428

转载 Go高性能编程技巧2

So You Wanna Go Fast?I originally proposed this as a GopherCon talk on writing “high-performance Go”, which is why it may seem rambling, incoherent, and—at times—not at all related to Go. The

2016-12-29 22:24:30 895

转载 Go高性能编程技巧

1. 线程ID,最好自己模拟实现。不要使用runtime库。性能损耗很大。最好别这么做。func GoID() int {var buf [64]byten := runtime.Stack(buf[:], false)idField := strings.Fields(strings.TrimPrefix(string(buf[:n]), "goroutine

2016-12-29 22:20:19 1411

转载 Go语言中Gob与Thrift的测试

Golang提供了一个服务器之间传输数据的包Gob。使用这个包可以轻松的在服务器之间传递Go语言内置类型的数据。使用的时候只需要调用 Encode 和 Decode 两个方法,不需要关注内部的数据传输细节。同时thrift从0.9.1版本(目前最新的thrift版本是0.9.2)开始,实现了对Go语言的支持。最近在重新设计日志系统,涉及到数据传输,就考虑到使用Gob还是Thtift。这里的关注点比

2016-12-29 14:16:13 1451 1

转载 Thrift 的TNonblockingServer运行原理分析

整理下thrift TNonblockingServer的工作流程,简单记录下, 因为处理过程比较复杂不具体分析了,TNonblockingServer的工作流程如下:–1– server 创建 多个 iothread 和 工作线程池 workpool thread (给iothread发消息的方式主要通过管道的方式进行 )–2– 传递listenfd 给 iothread

2016-12-29 13:27:22 686

转载 golang thrift 总结一下网络上的一些坑

我们以hello world来大概分析一下golang中的thrift包,并且扒一扒网络上有关thrift的一些坑 查看源码,服务器定义如下:(详见simple_server.go文件)type TSimpleServer struct { quit chan struct{} stopped int64 processorFactory

2016-12-28 19:31:49 3096

转载 golang thrift 源码分析,服务器和客户端究竟是如何工作的

首先编写thrift文件(rpcserver.thrift),运行thrift --gen go rpcserver.thrift,生成代码namespace go rpcservice RpcService { string SayHi(1: string name); void SayHello(1: string name);}搭建一个以二进制为传输

2016-12-28 19:21:30 1166

转载 GO语言构建高并发分布式系统实践

此文是根据周洋在【高可用架构群】中的分享内容整理而成,转发请注明出处。周洋,360手机助手技术经理及架构师,负责360长连接消息系统,360手机助手架构的开发与维护。不知道咱们群名什么时候改为“Python高可用架构群”了,所以不得不说,很荣幸能在接下来的一个小时里在Python群里讨论golang....360消息系统介绍

2016-12-24 14:00:01 9074

转载 来自Google的TCP BBR拥塞控制算法解析

写本文的初衷一部分来自于工作,更多的来自于发现国内几乎还没有中文版的关于TCP bbr算法的文章,我想抢个沙发。本文写于2016/10/15!        本文的写作方式可能稍有不同,之前很多关于OpenVPN,Netfilter,IP路由,TCP的文章中,我都是先罗列了问题,然后阐述如何解决这个问题。但是本文不同!本文的内容来自于我十分厌恶的一个领域,其中又牵扯到我十分厌恶的一家公司-华夏

2016-12-21 12:03:43 1928

转载 Golang官方如何支持加载动态库

Golang1.8官方支持加载动态库了,而且看起来功能很强大。 文档上面描述Plugin功能是协程并发安全的,而且支持高级数据类型(包括chan),同时不需要写任何C代码(以前或多或少需要写一些)。下面我们通过一些demo来看看如何使用golang plugin功能入门下面是一个简单的plugin 代码:package main// // No C code needed.i

2016-12-20 21:19:27 17011 1

转载 awesome-go

https://awesome-go.com/Awesome Go   A curated list of awesome Go frameworks, libraries and software. Inspired by awesome-python.ContributingPlease take a quick gander at the contribu

2016-12-20 19:44:06 2936

转载 【译文】通过Go来处理每分钟达百万的数据请求

原文作者为Malwarebytes公司的首席架构师Marcio Castilho,博客原文地址 —— http://marcio.io/2015/07/handling-1-million-requests-per-minute-with-golang/前言目前Malwarebytes公司正在经历显著的发展,自从我一年前加入这家在硅谷的公司, 我的主要责任之一就是给一些快速发展的安

2016-12-20 18:21:42 503

原创 google protobuffer 3.1.0安装

sudo权限wget https://github.com/google/protobuf/archive/v3.1.0.tar.gzyum install autoconfautomakelibtool./autogen.sh./configuremake && make install参考资料 protob

2016-12-08 11:30:51 2228

原创 cgo的一些经验. golang 调用 so 方法

int EC60789803D1(const char *CompanyTag, char *dataIn, int inlen, unsigned char *dataout, int outlen);// Encrypt{ var byteOutBuffer []byte byteOutBuffer = make( []byte, 2048 ) var outle...

2016-12-02 16:17:52 9656 1

转载 为Go语言GC正名-2秒到1毫秒的演变史

转载自:http://blog.csdn.net/erlib/article/details/51850912英文原文链接:https://blog.twitch.tv/gos-march-to-low-latency-gc-a6fa96f06eb7#.lrmfby2xs下面我们会介绍https://www.twitch.tv视频直播网站在使用G

2016-08-12 14:09:56 1271

转载 软件架构学习小结

软件架构设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单。本文从架构师职责、软件架构定义、设计架构、评估架构、架构管理等方面来描述了解软件架构的含义和怎样设计软件架构。 一、软件架构师的职责架构师分为以下几大类:业务架构师、主题领域架构师、技术架构师、项目架构师(J2EE架构师、.NET架构师等)、系统架构师。1

2014-06-06 23:52:55 720

转载 《企业应用架构模式中文版》学习笔记

本书先介绍了一些企业应用开发的基础知识,比如分层架构、WEB表现、业务逻辑、数据库映射、并发、会话、分布策略等等。通过使用场景、解决方案、UML等手段详细介绍了设计模式(包括一些常用的设计模式GOF23和本书上新创的设计模式)。了解书中这些模式是干什么的、它们解决什么问题、它们是如何解决问题的。这样,如果你碰到类似的问题,就可以从书中找到相应的模式。可以为你节约成本、缩短项目周期时间、避免风险,以

2014-06-06 23:49:37 597

转载 关于内心的矛盾 打工还是自己干点东西 如果不想打工了,就看看吧

给大家看一篇写得非常好、非常现实的一篇文件,如果不想打工了,就看看吧!         最近发现很多朋友创业的心里很矛盾,既有创业单干的激情,同时又有担心 失败后悲惨的命运!所以很多朋友思考了很长时间,最后还是决定等等再看,一月过了一月,一年过了又一年,岁月流逝,光阴不再,沉浸在打工的生涯中难以自拔,结婚供房,身上的经济枷锁日益沉重,无力再搏,最后只好认命,打工一辈

2014-05-26 19:33:13 2230 1

转载 30岁之前的目标是什么?

30岁之前的目标是什么?第一,最重要的就是早点定好自己的职业生涯规划,人生需要攻略, 职场 需要规划。个人规划最好高中时代就定好,高考之前就给自己一个清晰、科学和客观的职业定位,评估一下自己的职业气质、职业兴趣、职业倾向、职业能力和职业潜力等,然后以此为目标,再去找适合自己的未来工作的专业,使未来的职业处于稳步向前发展的状态。走好自己的职场之路,实现预期的目标,成大事者

2014-05-22 18:30:09 855

转载 如何获取被禁用的网卡的信息,如网卡MAC,网卡名称

比如,有两张网卡,一张启用,一张禁用,如何获取被禁用的网卡的信息,如网卡MAC,网卡名称等。GetAdaptersInfo不能读取被禁用的网卡的信息向大家赐教有结果了,被禁用的网卡,可以通过API函数DeviceIoControl函数配合IOCTL_NDIS_GET_ADAPTER_NAMES获取。// 读取网络接口设备的名字,不仅仅包括网卡,还包括其它诸如拨号接口hN

2014-05-22 18:04:36 2802

转载 360安全卫士的HOOK

转自: http://www.cppblog.com/sleepwom/archive/2009/10/18/98882.html

2014-05-22 16:11:27 1368

转载 金山卫士开源软件之旅(一) VS 2005环境下编译

转载请标明是引用于 http://blog.csdn.net/chenyujing1234 参考文档:http://bbs.code.ijinshan.com/viewthread.php?tid=1543http://bbs.code.ijinshan.com/viewthread.php?tid=929&extra=&page=21、下载代码与lib

2014-05-12 20:32:28 1517

原创 金山-垃圾清理模块架构

1. 空壳 进程 kcrlshell

2014-05-09 21:03:46 1064

空空如也

空空如也

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

TA关注的人

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