最新 | 最热门 | 最高评价

+0  Go Web 框架性能比拼 2017 春季版

Tag: Go
鸟窝 发于 2017年05月12日 22:50 | 点击: 1651 | 展开摘要
谁是最快的Go Web框架?, 这是我去年发布的Go web 框架的评测。现在一年过去了,有些框架因为缺乏维护而被放弃了,又有新的轮子被创造出来,既有的轮子也在不停的演化升级,来去之间,Go的版本也已经升级的1.8了。 青年节前, kirillDanshin提了一个issue,希望能更新最新的测试结果,现在这篇文章就记录了最新的测试结果。

测试环境

CPU: Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz, 32 cores

查看全文: http://www.udpwork.com/item/16203.html

+0  Golang 知识点总结

Tag: Go
鸟窝 发于 2017年05月12日 22:50 | 点击: 1013 | 展开摘要
原文: Golang Summaries by TapirLiu

本文是由TapirLiu总结的Golang中的一些知识点,对于深入学习Golang很有帮助,所以我特意翻译了一下。

各种类型复制的时候的花费

本节标题也可以叫做“各种类型的值的大小” (the sizes of values of all kinds of types),底层可被不同的值共享的数据的大小未被计算。

下面的表格中一个 word在32bit操作系统中代表4个字节,在64bit操作系统中代表8

查看全文: http://www.udpwork.com/item/16086.html

+0  [转]通过 raft 的 leader lease 来解决集群脑裂时的 stale read 问题

Tag: Go
鸟窝 发于 2017年05月08日 16:36 | 点击: 458 | 展开摘要
PingCap联合创始人、CTO 黄东旭写的一篇解决Raft网络分区的一种方案: 通过 raft 的 leader lease 来解决集群脑裂时的 stale read 问题。本文转载之。

问题: 当 raft group 发生脑裂的情况下,老的 raft leader 可能在一段时间内并不知道新的 leader 已经被选举出来,这时候客户端在老的 leader 上可能会读取出陈旧的数据(stale read)。 比如,我们假想一个拥有 5 个节点的 raft group:

查看全文: http://www.udpwork.com/item/16257.html

+0  [转]Golang调度器源码分析

Tag: Go
鸟窝 发于 2017年05月04日 19:37 | 点击: 600 | 展开摘要
原文: Golang调度器源码分析, 作者: 无心之祸

为什么Golang需要调度器?

Goroutine的引入是为了方便高并发程序的编写。 一个Goroutine在进行阻塞操作(比如系统调用)时,会把当前线程中的其他Goroutine移交到其他线程中继续执行, 从而避免了整个程序的阻塞。

由于Golang引入了垃圾回收(gc),在执行gc时就要求Goroutine是停止的。通过自己实现调度器,就可以方便的实现该功能。 通过多个Goroutine来实现并发程序,既有异步

查看全文: http://www.udpwork.com/item/16252.html

+0  [译]Go 调度器: M, P 和 G

Tag: Go
鸟窝 发于 2017年05月04日 19:27 | 点击: 491 | 展开摘要
这是另一篇关于Go调度器(scheduler)的文章。 原文: GO SCHEDULER: MS, PS & GS by Uber工程师 Povilas。

网上已经有很多关于Go调度器的文章了, 比如Golang调度器源码分析,多看一些,可以加深记忆,也可以对比查看文章中是否有不准确的地方,更全面的了解Go的调度器。

我决定深入了解Go的内部机制, 因为很长时间没人写关于Go scheduler的文章了, 我觉得这是一个很有趣的知识点,所以让我们开始吧。

基础知

查看全文: http://www.udpwork.com/item/16253.html

+0  Go HTTP Redirect的知识点总结

Tag: Go
鸟窝 发于 2017年04月20日 14:10 | 点击: 451 | 展开摘要
HTTP 规范中定义了返回码为 3xx 代表客户端需要做一些额外的工作来完成请求,大部分3xx用来做转发(redirect)。

状态码的详细说明可以参照规范或者 wikipedia、维基百科, 以下是代码的简短介绍。

300 Multiple Choices: 返回多个可供选择的资源

301 Moved Permanently: 请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一

302 Found: 请求的资源现在临时从不

查看全文: http://www.udpwork.com/item/16218.html

+0  gRPC的那些事 - interceptor

Tag: gRPC | Go
鸟窝 发于 2017年04月17日 13:41 | 点击: 611 | 展开摘要
gRPC-Go 增加了拦截器(interceptor)的功能, 就像Java Servlet中的 filter一样,可以对RPC的请求和响应进行拦截处理,而且既可以在客户端进行拦截,也可以对服务器端进行拦截。

利用拦截器,可以对gRPC进行扩展,利用社区的力量将gRPC发展壮大,也可以让开发者更灵活地处理gRPC流程中的业务逻辑。下面列出了利用拦截器实现的一些功能框架:

Go gRPC Middleware:提供了拦截器的interceptor链式的功能,可以将多个拦截器

查看全文: http://www.udpwork.com/item/16216.html

+0  gRPC的那些事 - streaming

Tag: Go
鸟窝 发于 2017年04月07日 11:29 | 点击: 1051 | 展开摘要
gRPC是一个高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。 gRPC提供了一种简单的方法来精确地定义服务和为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库。 客户端充分利用高级流和链接功能,从而有助于节省带宽、降低的TCP链接次数、节省CPU使用、和电池寿命。

gRPC具有以下重要特征:
强大的IDL特性

查看全文: http://www.udpwork.com/item/16201.html

+0  [转]gRPC服务发现&负载均衡

Tag: gRPC | Go
鸟窝 发于 2017年03月26日 00:07 | 点击: 812 | 展开摘要
原文出处: gRPC服务发现&负载均衡, 作者: softfn。

构建高可用、高性能的通信服务,通常采用服务注册与发现、负载均衡和容错处理等机制实现。根据负载均衡实现所在的位置不同,通常可分为以下三种解决方案:

1、集中式LB(Proxy Model)

在服务消费者和服务提供者之间有一个独立的LB,通常是专门的硬件设备如 F5,或者基于软件如 LVS,HAproxy等实现。LB上有所有服务的地址映射表,通常由运维配置注册,当服务消费方调用某个目标服务时,它向LB

查看全文: http://www.udpwork.com/item/16189.html

+0  一个有特色的有限状态机

Tag: Go
鸟窝 发于 2017年03月22日 23:18 | 点击: 1869 | 展开摘要
gofsm是一个简单、小巧而又特色的有限状态机(FSM)。

github已经有了很多状态机的实现,比如文末列出的一些,还为什么要再发明轮子呢?

原因在于这些状态机有一个特点,就是一个状态机维护一个对象的状态,这样一个状态机就和一个具体的图像实例关联在一起,在有些情况下,这没有什么问题,而且是很好的设计,而且比较符合状态机的定义。但是在有些情况下,当我们需要维护成千上百个对象的时候,需要创建成千上百个状态机对象,这其实是很大的浪费,因为在大部分情况下,对象本身自己会维护/保

查看全文: http://www.udpwork.com/item/16029.html

+0  [译]Go Slice 秘籍

Tag: Go
鸟窝 发于 2017年03月22日 20:17 | 点击: 518 | 展开摘要
这是 Golang官方的一个总结: SliceTricks

由于引入了内建的append的方法, 包container/vector的很多方法都被移除了,可以被内建的append和copy方法代替。

下面是栈vector的操作方法的实现,使用slice实现相关的操作。

AppendVector

1

a = append(a, b...)

Copy

1
2
3
4

b = make([]T, len(a))
copy(b, a)
// 如果a不为空,也可以用下面

查看全文: http://www.udpwork.com/item/16187.html

+0  前端架构的设计与进化

Tag: First Category
s5s5 发于 2017年03月21日 10:04 | 点击: 548 | 展开摘要
上周参加了一门这个课,笔记一下

架构

开发模式

通用模型

模板引擎

基础类库

组件框架

避免GOOGLE

大厂

选合适的

不用时怎么办

代码结构

团队和业务快速变化

开发行为耦合

多特性多并行

主线是什么

开发规范

编码

设计思路

模块拆分

结构分层

工具平台

工程化过程

框架支撑

研发效率(质量)

代码管理

运营支撑

运维监控

流程边界

流程

分工跨界

活动开发

平台化

经验沉淀

核心理念

查看全文: http://www.udpwork.com/item/16185.html
|<<<1234567>>>| 一共50页, 597条记录