• 19中存css实现的loading动效
    演示地址 https://wow.techbrood.com/fiddle/29490 Html 部分 <h1>CSS LOADERS</h1> <div class="box">loader 1 <div class="loader-01"></div> </div> <div class="box">loader 2 <div class="loader-02"></div> </div> <div class="box">loader 3 <div class="load...
  • Go 语言学习资料与社区索引
    鉴于之前有人做的 索引资料 已经过期超过 ~2~3 年,所以特开此坑。各位同学可以通过发起 Fork + Pull Request 的方式进行补充和更新。 最后更新时间:2018 年 05 月 29 日 交流社区 中文社区 码农俱乐部:基于 Go 语言实现的社区系统,提供最全面的 Go 语言学习资料 Golang 中国:国内较早的 Go 社区,汇聚各类信息与服务 Study Golang:国内 Go 社区先驱,同样汇聚各类信息与服务 Revel 交流论坛:Revel 框架的中文社区 GoCN Fo...
  • [译]用GoLang实现微服务(四)
    此系列文章介绍如何用 GoLang 实践微服务, 分十篇。此为其四。 原著作者:Ewan Valentine 原文连接:https://ewanvalentine.io/microservices-in-golang-part-3/ 友情提示:系列文章的后五篇翻译请移步至wuYin’s blog 初稿 -> 润色 在上一篇文章中, 我们创建用户 (User) 服务,并且引入了数据库来保存数据。这回,我们希望用户微服务能安全的保存用户密码,并且有完整的机制来验证用户,从而在我们的几个微服务之间分发安...
  • [译]用GoLang实现微服务(三)
    此系列文章介绍如何用 GoLang 实践微服务, 分十篇。此为其三。 原著作者:Ewan Valentine 原文连接:https://ewanvalentine.io/microservices-in-golang-part-3/ 友情提示:系列文章的后五篇翻译请移步至wuYin’s blog 初稿 -> 润色 在上一篇文章中, 我们了解了go-micro 以及 Docker的基础。同时引入了我们的第二个微服务,货船服务(vessel-service)。那么在此文中,我们将要了解一下 docke...
  • [译]用GoLang实现微服务(二)
    此系列文章介绍如何用 GoLang 实践微服务, 分十篇。此为其二。 原著作者:Ewan Valentine 原文连接:https://ewanvalentine.io/microservices-in-golang-part-2/ 友情提示:系列文章的后五篇翻译请移步至wuYin’s blog 初稿 -> 润色 在上一篇文章中, 我们大致掌握了如何用 gRPC 来构建微服务。在这篇文章中,我们要介绍如何容器化 (Dockerize) 我们的微服务,在此过程中,我们将引入使用 go-micro 以...
  • [译]用GoLang实现微服务(一)
    导言 在本文中,我们将了解一些基础的概念,术语。同时将创建我们的第一个微服务,尽管它会非常简陋。 在接下来的文章中,我们会陆续创建以下微服务: consignments (货运) inventory (仓库) users (用户) authentication (认证) roles (角色) vessels (货船) 完整的技术栈如下:golang, mongodb, grpc, docker, Google Cloud, Kubernetes, NATS, CircleCI, Terrafrom ...
  • TCP 的那些事儿(下)
    这篇文章是下篇,所以如果你对 TCP 不熟悉的话,还请你先看看上篇。上篇中,我们介绍了 TCP 的协议头、状态机、数据重传中的东西。但是 TCP 要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的各种思考,让你的大脑分配很多内存和计算资源,所以,不适合在厕所中阅读。 TCP 的 RTT 算法 从前面的 TCP 重传机制我们知道 Timeout 的设置对于重...
  • TCP 的那些事儿(上)
    TCP 是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习 TCP 本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于 TCP 这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷 1:协议》(当然,你也可以去读一下RFC793以及后面 N 多的 RFC)。另外,本文我会使用英文术语,这样方便你通过这些英文关键词来查找相关的技术文档。 之所以想写这篇文章,目的有三个, 所以,本文不会面面俱到,只是对 TCP 协议...
  • TCP 协议中的 Window Size与吞吐量
    原地址:http://blog.sina.com.cn/s/blog_c5c2d6690102wpxl.html TCP 协议中影响实际业务流量的参数很多,这里主要分析一下窗口的影响。 ​TCP 窗口目的 为了获得最优的连接速率,使用 TCP 窗口来控制流速率(flow control),滑动窗口就是一种主要的机制。这个窗口允许源端在给定连接传送数据分段而不用等待目标端返回 ACK,一句话描述:窗口的大小决定在不需要对端响应(acknowledgement)情况下传送数据的数量。​官方定义:“The ...
  • 推荐一款基于Golang的搜索引擎:Riot
    Lucene 是一款基于 Java 的搜索引擎,也是现在最流行的开源搜索引擎。今天分享一款不一样的,基于 Golang 的搜索引起:Riot。 项目地址:https://github.com/go-ego/riot Features 高效索引和搜索(1M 条微博 500M 数据 28 秒索引完,1.65 毫秒搜索响应时间,19K 搜索 QPS) 支持中文分词(使用 gse 分词包并发分词,速度 27MB / 秒) 支持逻辑搜索 支持中文转拼音搜索 (使用 gpy 中文转拼音) 支持计算关键词在文本...
  • Markdown语法指南
    语法详解 粗体 **粗体** __粗体__ 斜体 *斜体* _斜体_ 标题 # 一级标题 # 一级标题 ==== ## 二级标题 ## 二级标题 ---- ### 三级标题 ### #### 四级标题 #### ##### 五级标题 ##### ###### 六级标题 ###### 分割线 *** --- ^ 上 ^ 角~ 下~ 标 上角标 x^2^ 下角标 H~2~0 ++ 下划线 ++ 中划线 ++下划线++ ~~中划线~~ == 标记 == ==标记== ...
  • Golang面试专题
    Golang 面试专题 Golang 面试专题 - Golang 面试题解析(一) Golang 面试专题 - Golang 面试题解析(二) Golang 面试专题 - Golang 面试题解析(三) Golang 面试专题 - Golang 面试题解析(四) Golang 面试专题 - Golang 语言 Golang 面试专题 - 操作系统 Golang 面试专题 - 数据库 Golang 面试专题 - 数据结构 Golang 面试专题 - 架构 Golang 面试专题 - 笔试题 Golang...
  • Golang面试专题 - 设计题
    设计题 1. 要设计一个秒杀系统要注意什么? 前端秒杀页面 页面静态化:将活动页面上的所有可以静态的元素全部静态化,并尽量减少动态 元素。通过 CDN 来抗峰值。 禁止重复提交:用户提交之后按钮置灰,禁止重复提交。 用户限流:在某一时间段内只允许用户提交一次请求,比如可以采取 IP 限流。 服务端控制器 (网关) 限制uid访问频率:我们上面拦截了浏览器访问的请求,但针对某些恶意攻击或其它插件,在服务端控制层需要针对同一个访问 uid,限制访问频率。 服务层 采用消息队列缓...
  • Golang面试专题 - 网络
    网络 1.tcp 三次握手和四次挥手流程示意图?在黑板上画出 查看资料 2. 客户端在建立异常中发现很多 connect reset by peer, 你觉得问题出在哪? 三次握手维护的半连接队列或者全连接队列溢出导致 查看资料 3.https 建立连接的过程? 1. 客户端发送请求到服务器端 2. 服务器端返回证书和公开密钥,公开密钥作为证书的一部分而存在 3. 客户端验证证书和公开密钥的有效性,如果有效,则生成对称密钥并使用公开密钥加密发送到服务器端 4. 服务器端使用...
  • Golang面试专题 - 算法题
    算法题 1. 如何在一个给定有序数组中找两个和为某个定值的数,要求时间复杂度为 O(n), 比如给{1,2,4,5,8,11,15}和 15? 2. 给定一个数组代表股票每天的价格,请问只能买卖一次的情况下,最大化利润是多少?日期不重叠的情况下,可以买卖多次呢?输入:{100,80,120,130,70,60,100,125},只能买一次:65(60 买进,125 卖出);可以买卖多次:115(80 买进,130 卖出;60 买进,125 卖出)? func main() { a := []int{...
  • Golang面试专题 - 笔试题
    最近在很多地方看到了,看到了很多人对 Golang 的面试题心存恐惧,也是为了复习基础,我把解题的过程总结下来。 面试题 1. 写出下面代码输出内容。 package main import ( "fmt" ) func main() { defer_call() } func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() ...
  • Golang面试专题 - 架构
    架构 1.Etcd 满足了 CAP 原理中哪两个特性? etcd 是高可用的键值存储系统。满足 CP 原理 2.Etcd V2 和 V3 版本的区别? V2 和 V3 接口不一致,存储不一样,数据互相隔离 A.V2 是纯内存实现,并未实时将数据写入到磁盘;V3 是内存索引 (kvindexbtree) + 后端数据库存储 (boltdb: 单机的支持事务的 kv 存储) B.V2 过期时间只能设置到每个 key 上,如果多个 key 要保证生命周期一致则比 较困难;V3 过期时间通过 l...
  • Golang面试专题 - 数据结构
    1. 什么是跳跃表? 跳跃表是基于有序链表的一种扩展 查看资料 2. 介绍下 RESTFull API 方式下, 怎么做到快速路由? 一般使用前缀树 / 字典树, 来提高查找速度. 开源的路由模块里, httprouter 是比较快的, 参考: https://github.com/julienschmidt/httprouter 他使用了一种改进版的前缀树算法. 这个树的应用非常广泛, 除了做路由, 还有 linux 内核里使用, 在数据库里也有用到. 参考文章: 路由查找之 Ra...
  • Golang面试专题 - 数据库
    数据库 1.Mysql 事物的隔离级别? | 读未提交(read-uncommitted)| 是 | 是 | 是 | | 读已提交(read-committed) | 否 | 是 | 是 | | 可重复读(repeatable-read) | 否 | 否 | 是 | | 串行化(serializable) | 否 | 否 | 否 | 相关资料 2.Innodb 和 Myisam 的区别? Innodb 支持事务,而 Myisam 不支持事务 Innodb 支持行级锁,而 Myi...
  • Golang面试专题 - 操作系统
    1.Select,Poll,Epoll 的区别? select,poll,epoll都是 IO 多路复用的机制,具体区别请查阅资料 查看资料 2. 什么叫虚拟内存? 虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的 可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内 存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。 3. 什么叫桥接? 桥接是指依据 OSI 网络模型的链路层的地址,对网络数据包进行转发的过程,工作 在 OS...
个人资料

一个爱折腾的老码农。