一周 Go World 新鲜事[Asta 优选]

来源:互联网 发布:bp神经网络算法流程图 编辑:程序博客网 时间:2024/04/29 19:34

01

gkvdb v1.81 发布,Go 语言嵌入式 K/V 数据库

gkvdb是Go语言开发的基于DRH(Deep-Re-Hash)深度哈希分区算法的高性能Key-Value嵌入式数据库。

v1.81的具体改进:
    1、增加多表支持,将底层数据文件按照数据表的概念进行组织管理;
    2、增加多表事务,支持在一个事务中操作多个表,并支持事务提交和回滚;
    3、增加对指定表的随机遍历支持;
    4、修正文件指针池IO复用的并发数据竞争问题(#issue IGML6);
    5、保证gitee与github的项目实时提交同步;
    6、完善项目使用说明;


在公众号中回复(非评论)关键词“ weekly21 ”即可阅读全文

02

Golang网络:核心API实现剖析(一)

本文将详细描述网络关键API的实现,主要包括Listen、Accept、Read、Write等。 为了突出关键流程,文中选择忽略所有的错误,这样可以使得代码看起来更为简单。 而且只关注tcp协议实现,udp和unix socket不是本文会关心的。


在公众号中回复(非评论)关键词“ weekly22 ”即可阅读全文

03

基于 Redis 的序列号服务的设计

作者前不久看了一篇携程技术中心大咖写的 《分布式架构系统生成全局唯一序列号的一个思路》,文章中对多种分布式 ID 系统设计方案进行了详细的优劣对比,并重点讲述了他们最终选择以 flicker 方案为基础进行优化改进。另外,网络上阐述分布式 ID 系统的设计与实现的文章数不胜数,其中包括美团点评 Leaf ,微信的 seqsvr 等等。

本文中,作者基于团队的业务适用性继续对该主题进行补充,为读者提供一种基于 Redis 的序列号服务系统的设计思路(当时主要是参考微信的 seqsvr 做的简化方案)。


在公众号中回复(非评论)关键词“ weekly23 ”即可阅读全文

04

Golang错误和异常处理的正确姿势

错误和异常从Golang机制上讲,就是error和panic的区别。很多其他语言也一样,比如C++/Java,没有error但有errno,没有panic但有throw。

Golang错误和异常是可以互相转换的:

  • 错误转异常,比如程序逻辑上尝试请求某个URL,最多尝试三次,尝试三次的过程中请求失败是错误,尝试完第三次还不成功的话,失败就被提升为异常了。

  • 异常转错误,比如panic触发的异常被recover恢复后,将返回值中error类型的变量进行赋值,以便上层函数继续走错误处理流程。


在公众号中回复(非评论)关键词“ weekly24 ”即可阅读全文

05

关于一致性协议和分布式锁

关于分布式锁其实这里面是包含3个问题, 每一个都是独立的不相关的问题:

1.一致性协议的问题

2.如何通过一致性协议实现分布式锁的问题

3.如何结合业务场景使用分布式锁

问题1和问题2 容易混淆, 其实实现一个分布式锁只是需要一个key-value store 就可以了, 但是因为需要这个key-value store 高可用, 那么就必然需要这个key-value store 多副本, 多副本又需要强一致, 那么就必然引入一致性协议了。

   

在公众号中回复(非评论)关键词“ weekly25 ”即可阅读全文

06

Funtainer:容器即函数之美

常言道:“Serverless并非没有服务器,而是不再需要关注服务器。”

本文介绍了Serverless的演化过程,以及实施过程中可能存在的一些障碍,由此提出Funtainer(容器即函数)并简要阐述了其优势。


在公众号中回复(非评论)关键词“ weekly26 ”即可阅读全文

本周开源

Go 许可证和包依赖检查器

在公众号中回复(非评论)关键词“ weekly27 ”即可阅读全文

高性能、易于使用的分布式远程服务调用框架

在公众号中回复(非评论)关键词“ weekly28 ”即可阅读全文

技术活动

年末最不容错过的云领域技术盛会

国内 Go 语言布道者 许式伟 Asta 联合发起

阿里云褚霸、京东云郭理靖、饿了么CTO雪峰、PingCAP创始人刘奇、七牛云技术总监陈超、Docker 专家孙宏亮

......

众星云集,为你而来

点击“阅读原文”,即可报名


原创粉丝点击