http.ServeMux解析

## web server概述 使用go语言搭建一个web服务器是很简单的,几行代码就可以搭建一个稳定的高并发的web server。 ``` // hello world, the web server func HelloServer(w http.ResponseWriter, req *http.Request) { io.WriteString(w, "hello, world!\n") } func main() { http.HandleFunc("/hello/", HelloS...阅读全文

阅读:16699 评论:0

加解密学习笔记

加密技术包括两个元素:算法和密钥。 算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤。 密钥是用来对数据进行编码和解密的一种算法。 在安全保密中,可通过适当的钥加密技术和管理机制来保证网络的信息通信安全。 大纲介绍 常用的加密解密方法主要有以下加大类: 基本加密方法 对称加密方法 非对称加密方法 下面我们简单介绍一下这几种加密码方法 加密解密技术 我们先来了解一下加密解密的技术。 数据加密和数据解密是一对逆过程。 先来看加密解密的公式: 加密: img 数据加...阅读全文

2019.03.05 18:13 赵客缦胡缨v吴钩霜雪明
阅读:1038 评论:0

RTC 监控系统体系

RTC监控体系架构图.png 数据采集端 1)node_exporter 负责服务器数据采集 目前调用的参数有 CPU、memory 和进出口带宽 2)rtc_exporter 负责业务指标数据采集 部分核心代码 func (c *ClusterManager) Collect(ch chan<- prometheus.Metric) { i++ timestamp := time.Now().Unix() fmt.Println() tm := time.Unix(timestamp, 0) ...阅读全文

阅读:1262 评论:0

golang 面试题整理

1、go的调度 2、go struct能不能比较 因为是强类型语言,所以不同类型的结构不能作比较,但是同一类型的实例值是可以比较的,实例不可以比较,因为是指针类型 3、go defer(for defer),先进后出,后进先出 4、select可以用于什么,常用语gorotine的完美退出 golang 的 select 就是监听 IO 操作,当 IO 操作发生时,触发相应的动作每个case语句里必须是一个IO操作,确切的说,应该是一个面向channel的IO操作 5、context包的用途Co...阅读全文

2019.03.05 21:34 stevenlife
阅读:3262 评论:0

Golang json文件处理

JSON(Javascript Object Notation)是一种轻量级的数据交换语言,以文字为基础,具有自我描述性且易于让人阅读。尽管JSON是Javascript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。JSON与XML最大的不同在于XML是一个完整的标记语言,而JSON不是。JSON由于比XML更小、更快,更易解析,以及浏览器的内建快速解析支持,使得其更适用于网络数据传输领域。目前我们看到很多的开放平台,基本上都是采用了JSON作为他们的数据交...阅读全文

2019.03.08 18:27 北春南秋
阅读:1601 评论:0

大型互联网必备架构技术:高性能+分布式+开源框架+微服务

Java架构师,应该算是一些Java程序员们的一个职业目标了吧。很多码农码了五六年的代码也没能成为架构师。在这里分享5个专题来提高大家的编程能力:开源框架解析-高性能架构-微服务架构-工程化-大型电商项目实战。开源框架解析专题阅读、分析源码是程序员最基本的码代码能力也是码农的根本所在,学习经典源码中所用到的经典设计思想及常用设计模式,能够帮你了解大牛是如何写代码的,从而吸收大牛的代码功力。在阿里面试中,MyBatis,Spring等框架的底层原理是经常会被问到的​高性能架构专题阿里巴巴有很多大团...阅读全文

2019-03-08 21:51:45 a1127889067
阅读:4014 评论:0

Go-定时任务框架robfig/cron

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CSDN_FlyYoung/article/details/88355310 相关文档 golang cron 定时任务使用 Gin实践 连载十一 Cron定时任务 github.com/robfig/cron【Golang 常用包推荐】 golang版的crontab golang crontab的计划任务及定时任务使用 golang cron定时任务阅读全文

2019年03月08日 17:23:44 CSDN_FlyYoung
阅读:9731 评论:0

Golang websocket结合一致性哈希算法构建高并发推送服务

Golang websocket结合一致性哈希算法构建高并发推送服务 2018年9月2日 1 场景介绍 web应用中,常有业务状态需要实时更新的场景。如一个较长的后台任务,从浏览器用户触发执行到执行完成可能需几十秒的时间,这时前端需隔几秒请求一次后台,查询任务执行进度。此种方式是长轮询的方式,是存在一定弊端的,增加了后台服务的负载,若并发操作量太大,后台压力会成倍激增。业界常采用http1.1的websocket扩展协议与浏览器建立长连接来实现实时业务状态更新。 2 实现方案 本文采用golan...阅读全文

阅读:935 评论:0

现代软件开发流程-by 12-Factor

简介 如今,软件通常会作为一种服务来交付,它们被称为网络应用程序,或软件即服务(SaaS)。12-Factor 为构建如下的 SaaS 应用提供了方法论: 使用标准化流程自动配置,从而使新的开发者花费最少的学习成本加入这个项目。 和操作系统之间尽可能的划清界限,在各个系统中提供最大的可移植性。 适合部署在现代的云计算平台,从而在服务器和系统管理方面节省资源。 将开发环境和生产环境的差异降至最低,并使用持续交付实施敏捷开发。 可以在工具、架构和开发流程不发生明显变化的前提下实现扩展。 这套理论适用...阅读全文

2019-08-18 09:32:32 如来神掌
阅读:686 评论:0

Go性能调优

在计算机性能调试领域里,profiling 是指对应用程序的画像,画像就是应用程序使用 CPU 和内存的情况。 Go语言是一个对性能特别看重的语言,因此语言中自带了 profiling 的库,这篇文章就要讲解怎么在 golang 中做 profiling。 Go性能优化 Go语言项目中的性能优化主要有以下几个方面: CPU profile:报告程序的 CPU 使用情况,按照一定频率去采集应用程序在 CPU 和寄存器上面的数据 Memory Profile(Heap Profile):报告程序的内...阅读全文

2018-09-22 00:00 李文周的博客
阅读:3417 评论:0

队列

如何理解队列 队列与栈做比较,就是队列是先进先出,队列本身就像一个管子一样。 队列 先进先出就是一个典型的队列。队列的应用十分广泛,特别是具有额外特性的队列,比如循环队列,阻塞队列,并发队列等,这些都是偏底层系统,框架,中间件的开发,都是有队列的身影,比如高性能的队列Disruptor、Linux环形缓存等。Java concurrent 并发包利用ArrayBlockingQueue 来实现公平锁等 如何实现一个队列 队列最基本的操作是 入队enqueue(),放一个数据到对尾;出队deque...阅读全文

2019.08.25 14:09 OOM_Killer
阅读:958 评论:0

Blog.6 分布式会话跟踪系统架构设计与实践

调用链trace系统可以帮助技术人员快速的定位问题,查看整个请求的调用链路,及各个链路的耗时情况。方便技术人员针对性的对服务进行性能优化。 概念 参考调用链trace的设计分析的介绍,trace系统的要素包括:traceId、spanId、annotation。 traceId:贯穿整个调用链路,通过traceId来关联链路的所有相关日志 spanId:标识单次请求调用 annotation:记录请求调用的附加信息 简化trace日志设计 在调用链trace的设计分析文章中,系统log设计相对复...阅读全文

2019-08-28 13:02:32 渐行渐远
阅读:639 评论:0

大话图解gin源码

前言 最近在网上搜了一下,对于gin框架用的人还是比较多的,我自己之前也在使用,但是对于源码解析这块,我没有看到自己想看到的那种从框架入手的解析图,所以嘿嘿嘿,我的机会就来了,今天就带来最完整的gin源码图解。希望通过这篇博客你也能自己学会拆轮子。 PS:本文建立在你已经能熟练使用gin的基础之上,如果还没用过可以去官网看一下: https://gin-gonic.com/zh-cn/docs/ 然后gin是对golang的http包的封装,所以最好对http包也要有了解。 整体分析逻辑 先来说...阅读全文

2019.08.26 13:01 LinkinStar
阅读:5768 评论:0