Go语言中文网 为您找到相关结果 577

LollipopGo架构 v1.0.20181221更新

Golang语言社区 LollipopGo架构 v1.0.20181221更新: 1 增加2组小游戏服务器,优化部分网络处理结构 2 增加Example_Server 例子流程,方便后面使用者参照。 LollipopGo架构 v1.0.20181221.png LollipopGo游戏服务器地址: https://github.com/Golangltd/LollipopGo 社区视频课程课件GIT地址: https://github.com/Golangltd/codeclass Golang语言社区论坛 : www.Golang.Ltd Golang语言社...阅读全文

博文 2018-12-21 09:34:42 Golang语言社区

golang解析创建复杂嵌套的json数据

Golang的json序列化果真是静态语言的范呀。各种的麻烦,各种的标准。 用pyhon的时候毫无顾忌,各种的数据各种的塞。 各个功能模块需要传递信息,一般是需要序列化的,常用的序列化模式有json、msgpack啥的。 这里就先扯扯golang的json模块。 对于相当复杂又各种嵌套的json数据,应该如何解析成go内置的数据类型? 需要你写一堆的关联struct的。 golang json里的struct变量首字母需要大写的,如果给你的json是小写咋办?在type后面跟着别名就可以了,格式是 json:"字段名" 。 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新。 http://xiaorui.cc/2016/03/06/golang%E8%A7%A3%...阅读全文

博文 2017-04-04 19:24:52 rfyiamcool

Golang 序列化之 ProtoBuf

ProtoBuf: 是一套完整的 IDL(接口描述语言),出自Google,基于 C++ 进行的实现,开发人员可以根据 ProtoBuf 的语言规范生成多种编程语言(Golang、Python、Java 等)的接口代码,本篇只讲述 Golang 的基础操作。据说 ProtoBuf 所生成的二进制文件在存储效率上比 XML 高 3~10 倍,并且处理性能高 1~2 个数量级,这也是选择 ProtoBuf 作为序列化方案的一个重要因素之一。 安装: 安装 protoc :Protoc下载地址,可以根据自己的系统下载相应的 protoc,windows 用户统一下载 win32 版本。 配置 protoc 到系统的环境变量中,执行如下命令查看是否安装成功: $ protoc --version如果...阅读全文

博文 2017-03-07 01:42:03 谢烟客

【红岸智能】 -- IPFS官方周报第56期

​ 星际文件系统 (IPFS) ( https://ipfs.io/ )是一种新的超媒体分布协议,通过内容和标识来寻址。IPFS 支持创建完全分布式的应用程序。它的目标是使网络更快、更安全、更开放。由于范围广大,本周刊旨在跟踪整个生态系统的开发。想参与其中?点击下面的一些链接,查看我们在 GitHub ( https://github.com/ipfs )上的内容,或加入我们的 IRC ( https://riot.im/app/#/room/#ipfs:matrix.org )。想要更新你的收件箱吗? 订阅我们的每周通讯! (https://tinyletter.com/ipfsnewsletter)以下是自上次 IPFS 周刊以来的一些亮点。IPFS 生态圈的动态你是否关注Twitter...阅读全文

博文 2019-10-17 20:35:43 aside section ._1OhGeD

Go语言的接口和实现类初探(一)

1.引入 接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式。(来源于百度百科) 2.其他语言的接口 java的接口 public interface Animal {//定义接口 void eat(); } public class Dog {//与接口里的方法名相同,但并未实现Animal接口 void eat() { } } public class Cat implements Animal {//实现了Animal接口,并且eat方法必须存在 @Override void eat() { } }3.Go语言的接口 package main import ( "fmt" ) //定义一个接...阅读全文

博文 2015-06-17 23:00:49 Libra412

请问类似游戏同步玩家移动位置的实现方法

是这样最近在做一个服务器同步玩家移动位置和转向的demo,服务器用go客户端用unity,使用TCP,数据发送用protobuf。因为之前没接触过golang所以磕磕绊绊遇到了很多坑。在即将完成的时候发现了一个问题就是几个玩家之间的移动数据接收很不流畅。 一开始以为是服务器的问题,因为每个玩家每隔100毫秒就要发送一次自己的位置和旋转信息,怕是服务器处理不过来。后来加了日志之后发现服务器回传同步都没有什么问题。那可能问题就出在客户端。后来发现可能是玩家每100毫秒接收到服务器同步过来所有其他玩家信息处理不过来,因为接收到之后还需要分包,反序列化数据,根据消息头调用具体方法。所以当有多个客户端之后服务器发回来的包肯定也更大。这里我现在再想办法解决。 但是因为对网络编...阅读全文

Golang语言社区 2019 从零开始搭建游戏服务器第三期 开始更新了

2019 从零开始搭建游戏服务器第三期 开始更新了 每周2节 网易云课堂课程: 播放地址 2 社区福利赠送:https://github.com/Golangltd/codeclass/blob/master/%E5%BD%AC%E5%93%A5%E6%95%B4%E7%90%86%E7%9A%84%E8%B5%84%E6%BA%90/Docker%E5%9F%BA%E7%A1%80%E5%85%A5%E9%97%A8%E5%88%B0%E5%AE%9E%E6%88%98.txt 社区交流群:221273219 Golang语言社区论坛 : www.Golang.Ltd LollipopGo游戏服务器地址: https://github.com/Golangltd/LollipopGo 社区...阅读全文

博文 2019-01-22 07:34:41 Golang语言社区

【币码翁•IPFS】官方周报第61期 ​

​ 欢迎关注 IPFS 周报!星际文件系统 (IPFS) ( https://ipfs.io/ )是一种新的超媒体分布协议,通过内容和标识来寻址。IPFS 支持创建完全分布式的应用程序。它的目标是使网络更快、更安全、更开放。由于范围广大,本周刊旨在跟踪整个生态系统的开发。以下是自上次 IPFS 周报以来的一些亮点。原文链接:https://tinyletter.com/ipfsnewsletter/letters/ipfs-weekly-61最新发布js-ipfs 0.38.0 发布https://blog.ipfs.io/070-js-ipfs-0-38/去中心化网络即将到来视频:https://www.youtube.com/watch?v=R1ccwyP6fjc&feature=you...阅读全文

博文 2019-10-08 18:33:04 aside section ._1OhGeD

Golang 在阿里集团调度&集群管理系统 Sigma 中的实践

阿里巴巴 9 年双 11 经历下来,交易额增长了 280 倍、交易峰值增长 800 多倍、系统数呈现爆发式增长。系统在支撑双 11 过程中的复杂度和支撑难度以指数级形式上升。双 11 峰值的本质是用有限的成本最大化提升用户体验和集群吞吐能力,用合理的代价解决峰值。始于 2011 年建设的调度&集群管理系统 Sigma 就是为了支撑如此庞大的体系而建立的。本文作者李雨前(花名鹰缘) ,阿里巴巴技术专家 2015 年开始参入调度系统的建设,参与和推动调度系统的多个版本的演进以及支持双11大促资源的分配和管理。如果您是资深架构师、Docker/Kubernetes/CloudNative 技术专家,对阿里系统软件事业部感兴趣,欢迎投递简历到 yingyuan.lyq@alibaba-inc.com...阅读全文

博文 2018-08-21 17:36:55 阿里系统软件技术

NodeJs 之父发布下一代 Node -- Deno

近日,Node 之父 Ryan Dahl 发布新的开源项目 [deno](https://github.com/ry/deno),从官方介绍来看,可以认为它是下一代 Node,使用 Go 语言代替 C++ 重新编写跨平台底层内核驱动,上层仍然使用 V8 引擎,最终提供一个安全的 TypeScript 运行时。 它的特性包括: 支持 TypeScript 2.8 开箱即用; 无 package.json,无 npm,不追求兼容 Node; 通过 URL 方式引入依赖而非通过本地模块,并在第一次运行的时候进行加载和缓存,并仅在代码使用–reload运行,依赖才会更新,引入方式如: import { test } from "https://unpkg.com/deno_...阅读全文

golang专有的gob序列化性能分析

为什么要分析gob序列化格式的性能 我自己编的一个单向同步软件(https://gitee.com/rocket049/mysync),混合了RPC和HTTP服务器功能,利用RPC做控制功能,HTTP进行数据上传。最近我有意简化其构造,把其中的http上传功能也用RPC方式实现。但是我担忧会导致性能下降,因为通常对象序列化,将会导致数据量增加,例如JSON序列化后,二进制数据变成16进制数据,数据量倍增。因此我测试了gob序列化前后的体量变化。 测试方法 我编写了一个小程序,参数是输入文件,把这个文件转换为一个结构体,其中包含文件名(strring)和所有数据组成的数组([]byte),然后用golang标准库encoding/gob将这个结构体序列化后保存到另一个文件中,然后比较输入文件和...阅读全文

博文 2018-06-17 22:34:39 从火星来

在 Go 1.11 下调试延迟问题

诊断和调试复杂系统是一件复杂的事。经常需要多个层次的诊断数据来弄清楚延迟问题可能的原因。 一个分布式系统由多个服务器组成,这些服务器互相依赖,共同完成对用户请求的服务。在任何时候, - 系统中的一个进程可能会处理大量的请求。 - 在高并发的服务器中,没有容易的途径能将一个请求生命周期内的各个事件分离出来。 - 在高并发的服务器中,对于响应一个请求所发生的事件,我们没有很好的可见性。 随着 Go 在近些年来变成编写服务器的一门流行语言,我们意识到理解 Go 进程在一个请求的生命周期内发生了什么事的必要性。 在程序执行过程中会发生许多运行时活动:调度、内存分配、垃圾回收等等。但是要将用户代码与运行时事件关联起来,并帮助用户分析运行时事件如何影响他们的性能,这在过去是不可能的。 网站可靠工程师(S...阅读全文

博文 2018-05-27 22:22:43 krystollia

2019公链项目实战 区块链公链项目实战 golang公链项目实战(视频+源码)

任务1:001 – 内容介绍.mp4任务2:002 -Block结构.mp4任务3:003 – 根据区块数据生成区块HASH.mp4任务4:004 – CreateGenesisBlock.mp4任务5:005 – Blockchain结构.mp4任务6:006 – 添加新的区块.mp4任务7:007 – ProofOfWork框架.mp4任务8:008 – 工作量证明算法分析.mp4任务9:009 – target移位处理.mp4任务10:010 – 挖矿算法完整实现.mp4任务11:011 – 判断区块Hash的有效性.mp4任务12:012 – 课程目标.mp4任务13:013 – 区块的序列化和反序列化.mp4任务14:014 – boltdb数据库的创建或者打开.mp4任务15:0...阅读全文

博文 2019-03-12 20:34:43 java20192019

Go-kit调研文档

目录 Go-kit 包介绍 本身不是一个框架,而是一套微服务工具集,是框架的底层,用它的话来说,如果你希望构建一个框架,而Go-kit 就希望成为你的框架的一部分 可以用Go-kit 做适应自己平台的框架 它自身称为toolkit,并不是framework 它主要是为了满足5大原则,单一职责原则,开放原则,封闭原则,依赖倒置原则,接口隔离原则 包内工具 代码生成工具truss https://github.com/metaverse/truss 三层模型 Go-kit最核心是提供了三层模型来解耦业务,这是我们用它的主要目的,模型由上到下分别是 transport -> endpoint -> service 1. Transport 可以理解为是个拦截器,负责请求协议的实现和路由转发,请求和...阅读全文

博文 2019-06-09 18:02:41 简单的计划

go使用protobuf如何判断接收到的数据?

我是刚学go的小白,最近参考golang服务器写了一个通讯程序,golang作为服务器用tcp连接unity3d,传输消息用的是protobuf。但是目前遇到一个问题就是客户端发送消息过来(有可能是各种消息,角色移动,角色请求,角色死亡等)服务器这边如何判断具体应该是哪一个消息呢?我给消息加了消息头原本是想通过消息头判断的,但是才发现protobuf在反序列化的时候就必须指定类型了,例如: mp := &message.ConnetInf{} err := proto.Unmarshal(data, mp) 反序列化时必须指定mp是我发送的ConnetInf消息。但是目前问题是在我不确定mp是什么类型的时候该如何反序列化呢?不知有没有做过的大神给指点一两句。谢谢了T ...阅读全文

GRPC的HTTP返回值int64被转为string类型

问题描述 最近在使用http接口访问一个GRPC的服务时遇到一个数据类型转换的问题。一个时间戳字段在PB中定义的字段类型为uint64,返回到本地之后却是一个string类型,在我用uint64去接收这个字段时报了错。 原因分析 为什么GRPC要把int64转为string类型呢,他们的回答是遵循proto3的序列化规则,proto3的json-mapping中规定了int64/uint64/fixed64类型映射的json类型为string。如图:(PB文档地址:https://developers.google.com/protocol-buffers/docs/proto3#json) pb-josnMapping.jpg 很多人都质疑PB的这个行为,然而这并不能改变什么,下面是一个关...阅读全文

博文 2019-10-23 21:32:53 aside section._1OhGeD

golang 使用 protobuf

# 1 Protobuf简介 Google Protocol Buffer( 简称 Protobuf)是Google公司内部的混合语言数据标准,他们主要用于RPC系统和持续数据存储系统。 # 2 Protobuf 应用场景 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或RPC数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。 简单来说,Protobuf的功能类似于XML,即负责把某种数据结构的信息,以某种格式保存起来。主要用于数据存储、传输协议等使用场景。 # 3 Protobuf 优缺点 ### 优点 * **性能好/效率高** * 时间维度:XML,JSON格式...阅读全文

博文 2019-12-27 18:19:07 jinchunguang

对比 Python 和 Go 语言的每秒请求数

我使用Python工作已经有几年了,最近开始了一个关于GO的调查,主要看作是一个缓解瓶颈的实验,还没有大规模web服务器部署。 我用不同语言写了一个简单的REST服务,使用ab工具检测响应速度。 Python server.py 01 from bottle import route, run 02 03 @route('/') 04 def home(): 05 article = {'name': 'A Royal Baby', 'body':'A slow news week'} 06 return article 07 08 def main(): 09 run(host='localhost', port=8081) 10 11 if __name__ == '__main__':...阅读全文

博文 2014-12-20 10:00:01 zajin

msgpack在java/c和go中序列化的区别-解决

既然已经知道msgpack-java/msgpack-c里,默认情况下把class pack成类似json-array 而msgpack-go,默认情况下把class pack成类似json-map 顺着这个,翻看msgpack-Go的代码,找到了MsgpackHandle 。。。。中间过程省略 最后找到答案,其实msgpack-go已经提供好api package main import ( "fmt" "github.com/ugorji/go/codec" ) type UserStruct struct { ID int32 Name string } var ( b []byte mh codec.MsgpackHandle ) func main() { user := User...阅读全文

博文 2014-10-04 19:26:30 咖啡伴侣

如何通过reflect动态创建struct并赋值??

我通过protobuf定义了n个message结构,并通过protoc编译生成了对应的struct。 所以在xxx.pb.go中有 typedef name1 struct{......}, typedef name2 struct {...}, ......typedef nameN struct{.....} 现在,我收到了这样一条信息,name, []byte,通过name我知道了对应结构体的名字,通过[]byte我知道了对应结构体序列化后的内容,现在我要生成相应的结构体。 我查了相关资料,步骤如下: ``` package main import ( "fmt" "reflect" ) type Foo struct { name string }...阅读全文

golang json反序列化time格式问题

前段时间碰到两处json.Unmarshal()时时间格式错误问题,一处是反序列化php提交的post参数,另一处是从kafka读取的python提交的message。都碰到时间格式不是rfc3339无法解析的问题。查了golang标准库 struct time 源码,发现time默认是以rfc3339的格式进行序列化反序列化的: // MarshalJSON implements the json.Marshaler interface. // The time is a quoted string in RFC 3339 format, with sub-second precision added if present. func (t Time) MarshalJSON() ([]b...阅读全文

博文 2019-04-27 23:34:43 番茄树叶

基于 Go 的高效缓存BigCache

BigCache 是用于在 Go 中写入千兆字节数据的高效缓存。快速,并发,逐行扫描内存缓存,以保持大量条目,而不影响性能。 BigCache 在堆上保留条目,但为它们省略了 GC。 要实现对字节数组的操作,因此在大多数用例中将需要在高速缓存前面进行条目(de)序列化。 ![image](https://static.oschina.net/uploads/space/2017/1006/075023_0fTA_2903254.png) 简单初始化 自定义初始...阅读全文

golang 椭圆曲线加密使用ecdsa

非对称加密算法有RSA、ECDSA,对极大整数做因数分解的难度决定了RSA算法的可靠性,ECDSA为椭圆曲线加密算法,是基于椭圆方程公式,所以安全性要高于RSA。 这里说下使用ecdsa做签名和校验,并不讲原理; golang封装的ecdsa目前只有用私钥加密,公钥做校验,没有解密环节;所以目前可以应用于数字签名; 以下为封装: /** 通过一个随机key创建公钥和私钥 随机key至少为36位 */ func getEcdsaKey(randKey string) (*ecdsa.PrivateKey, ecdsa.PublicKey, error){ var err error var prk *ecdsa.PrivateKey var puk ecdsa.PublicKey var cu...阅读全文

go语言中struct结构体的使用

一、struct的特点 1、用来自定义复杂数据结构 2、struct里面可以包含多个字段(属性) 3、struct类型可以定义方法,注意和函数的区分 4、struct类型是值类型 5、struct类型可以嵌套 6、GO语言没有class类型,只有struct类型 二、struct的定义 1、struct声明: type 标识符 struct { Name string Age int Score int } 2、struct 中字段访问:和其他语言一样,使用点例子 type Student struct { Name string Age int Score int } func main(){ var stu Student stu.Name = "lilei" stu.Age = 22 ...阅读全文

博文 2019-05-13 12:35:18 qq5c9c828bc8d4b

ElasticHD:ElasticSearch Dashboard Go Application. 【工具、无需安装】

ElasticHD:ElasticSearch Dashboard Go ApplicationElasticHD 是一款 ElasticSearch的可视化应用。不依赖ES的插件安装,更便捷;导航栏直接填写对应的ES IP和端口就可以操作Es了。目前支持如下功能: ES Real time data search ES Dashboard data visualization ES Index Template (在线修改、查看、上传) ES Indices Index deletion and search SQL Converts to Elasticsearch DSL ES 基本查询文档 Downloads ElasticHD【Precompiled binaries】 for s...阅读全文

博文 2017-06-17 12:38:18 farmerx

快速JSON序列化 Easyjson

Easyjson用于序列化JSON数据,采用Go语言编写,而不是通过使用反射生成编组代码。一个库的目的之一是使所生成的代码足够简单,使得它可以容易地优化或固定。另一个目标是为用户提供不可定制的“encoding/json”,如产生snake_case名称或启用默认“omitempty“生成代码。 用法:

go get github.com/mailru/easyjson/...
easyjson -all <file>.go
这将 利用编组/解组方法 结构 生成<file>_easyjson.go 。 限制: ...阅读全文

go学习网站

是国外的go.dev的本土化网站 https://golangclub.com 中国社区的不错的网站,可以下载源码包可以看到翻译的书籍,还有标准库包的可以查阅 https://studygolang.com/ studygolang类似 https://www.golangtc.com/ 也是同上只是不够全面的 https://gocn.vip/m/ 官方中文网,很多东西嗯都可以过得 https://golang.google.c...阅读全文

博文 2020-01-01 15:32:39 世界之树weight

阿里云Elasticsearch的X-Pack:机器学习、安全保障和可视化

摘要: ELK是日志分析领域较为流行的技术选择,不少阿里云用户选择在ECS上搭建开源Elasticsearch。与自建开源Elastisearch相比,阿里云Elasticsearch做了性能优化,支持弹性扩容,并搭载了商业版组件X-Pack,为用户提供即开即用的托管服务。 ![图片描述][1] X-Pack ELK是日志分析领域较为流行的技术选择,不少阿里云用户选择在ECS上搭建开源Elasticsearch。目前,阿里云和ES官方Elastic公司展开了产品合作,联合推出了阿里云Elasticsearch。与自建开源软件相比,这款产品做了性能优化,支持弹性扩容,并搭载了商业版组件X-Pack,为用户提供即开即用的托管服务。本文将对商业版组件X-Pack做深入解读。 **...阅读全文

[golang]将结构体方法序列化到JSON

在写Restful API时,时常要序列化嵌套的资源,有时还需要定制序列化的字段。传统的方法只有进行结构体嵌套,然后还有将结构体转成map,剔除掉不需要的字段,比较繁琐。而jsonfn使用对象方法的思路,简化了这一流程。 一、序列化指定的字段 import "github.com/liamylian/jsonfn" type Book struct { Id int Title string AuthorId int } // 只序列化Id, Title // bytes = {"Id":1,"Title":"Jane Eyre"} bytes, _, := jsonfn.Marshal(Book{Id: 1, Title: "Jane Eyre", AuthorId: 2}, "Id", ...阅读全文

博文 2018-10-20 22:34:41 inspii

Gocache:一个功能齐全且易于扩展的 Go 缓存库

在先前几周的时候,我完成了 [Gocache](https://github.com/eko/gocache),对于 Go 开发者而言,它是功能齐全且易于扩展的。 这个库的设计目的是为了解决在使用缓存或者使用多种(多级)缓存时所遇到的问题,它为缓存方案制定了一个标准。 ## 背景 当我一开始在为 GraphQL 的 Go 项目构建缓存时,该项目已经包含了一套有简单 API 的内存缓存,还使用了另外一套有不同 API 的内存缓存和加载缓存数据的代码,它们实际上都是在只做了同一件事:缓存。 后来,我们又有了另一个需求:除了内存缓存外,我们还想添加一套基于 Redis 集群的分布式缓存,其主要目的是为了在新版本上线时,避免 Kubernetes 的 Pods 使用的缓存为空。 于是创造 Gocac...阅读全文

博文 2019-12-11 15:28:58 beiping96

Golang语言之Json序列化

Json序列化 指,将具有key-value(键 -> 值)结构的数据类型,例如:go语言中的map, slice,struct...序列化成json格式的字符串的操作。json是一种主流的数据传输格式,灵活轻便... 需要导入一个包 "encoding/json" 上代码 Golang - struct 结构体序列化代码段 //定义一个简单的结构体 Monster type Monster struct { Name string Age int Birthday string Sal float64 Skill string } //写一个 testStruct()结构体的序列化方法 func testStruct() { monster := Monster{ Name: "牛魔王",...阅读全文

博文 2019-10-27 13:32:45 aside section._1OhGeD

优秀跨平台Redis可视化客户端工—RedisViewer

自荐RedisViewer一个有情怀的跨平台Redis可视化客户端工具 感谢头条小哥的精彩推广 — 最美分享Coder 介绍 在以往的文章中曾经介绍过几款Redis的可视化工具,在笔者的印象中Redis至今没有一款非常专业的可视化管理客户端,就算之前介绍过的几款也是差强人意,有些时候满足不了我们的需求,而今天本文要介绍的是另一款值得推荐的Redis可视化客户端,以下通过截图的方式来展示这款软件! 已支持Windows、MacOS、Linux,方便不同平台开发者们使用! 本软件出自@可乐onefineday之手。 技术栈 UI: electron、vue、elenentui 服务: springboot 、webflux 、mybatis 、mapper PS: 现阶段服务JVM使用openj...阅读全文

博文 2019-10-22 23:33:12 aside section._1OhGeD

LollipopGo架构 v1.0.20181225更新

Golang语言社区 LollipopGo架构 v1.0.20181225更新: 1 增加游戏历史记录流程,数据保存流程等 2 增加俄罗斯方块游戏服务器逻辑。 LollipopGo架构 v1.0.20181225.png LollipopGo游戏服务器地址: https://github.com/Golangltd/LollipopGo 社区视频课程课件GIT地址: https://github.com/Golangltd/codeclass Golang语言社区论坛 : www.Golang.Ltd Golang语言社...阅读全文

博文 2018-12-25 18:34:43 Golang语言社区

golang 操作redis5大数据类型(string、hash、list、set、zset)(go-redis)

前言 使用redis首先要部署redis,载个安装包,部署下即可,本文不赘述了。redis官网:https://redis.io/ 接着要下载golang的redis资源包,golang官方推荐的有redisgo和go-reids,个人认为go-redis的封装更加人性化,redisgo的调用是基于命令的,go-redis是基于方法的,所以本文先来介绍go-redis的使用。 2行代码来比较下2种资源包的调用方式:redisgo: client.Do("SET", "mykey", "我是数据", "EX", "3600")go-redis:client.Set("mykey", "我是数据", time.Hour)同样是存储一个1小时后过期的数据,go-redis的调用方式明显更友好。 导...阅读全文

博文 2020-02-07 20:32:39 叶子

GO-struct结构体

一、struct的特点 1、用来自定义复杂数据结构 2、struct里面可以包含多个字段(属性) 3、struct类型可以定义方法,注意和函数的区分 4、struct类型是值类型 5、struct类型可以嵌套 6、GO语言没有class类型,只有struct类型 二、struct的定义 1、struct声明: type 标识符 struct { Name string Age int Score int } 2、struct 中字段访问:和其他语言一样,使用点 例子 type Student struct { Name string Age int Score int } func main(){ var stu Student stu.Name = "lilei" stu.Age = 22...阅读全文

博文 2018-01-12 00:30:01 willpower-chen

【红岸智能】 -- IPFS官方周报第60期

​ 星际文件系统 (IPFS) ( https://ipfs.io/ )是一种新的超媒体分布协议,通过内容和标识来寻址。IPFS 支持创建完全分布式的应用程序。它的目标是使网络更快、更安全、更开放。由于范围广大,本周刊旨在跟踪整个生态系统的开发。想参与其中?点击下面的一些链接,查看我们在 GitHub ( https://github.com/ipfs )上的内容,或加入我们的 IRC ( https://riot.im/app/#/room/#ipfs:matrix.org )。想要更新你的收件箱吗? 订阅我们的每周通讯! (https://tinyletter.com/ipfsnewsletter)以下是自上次 IPFS 周刊以来的一些亮点。最新发布IPFS Camp 课程视频发布如果你...阅读全文

博文 2019-10-17 20:35:31 aside section ._1OhGeD

Golang在京东列表页实践总结

Golang在京东列表页实践总结 作者:张洪涛 10余年软件开发和设计经验,曾就职于搜狐、搜狗、前matrixjoy公司联合创始人、甘普科技CTO。 目前线上状态 基于搜索实现; 全量数据,搜索结果不理想; 接口响应时间长,影响了用户体验; 没法针对数据做二次优化; 转化率相对较低; 基于以上原因,需要做出改变,所以就需要对老进行重构,如下 重构版本 非全量数据,线下异步根据数据模型进行进行筛选部分最优数据; 要求时时过滤计算,接口相应时间要快,保证用户体验; 数据进行优化,提高转换率,提搞GMV; 为何选择golang golang语言强大的并发能力; 与C相媲美的性能,新版对cpu计算要求较高; 基于以上两点,所以选择了golang语言作为服务端计算使用的语言。 重构后的架构图 解释下架...阅读全文

博文 2015-09-09 03:00:01 shi-meng

DockOne技术分享(二十五):企业级云平台的实践和思考

【编者的话】嘉宾从事很多年云平台的研发。在本文中他将结合自己的经验向大家分享企业级云应用平台实践和思考相关内容。 今天要讲的题目是《企业级云平台的实践和思考》, 主要涉及一些基于云环境的应用构建的技术, 讲一下我在这方面的一些实践经历和一些思考, 主要讲两个参与开发的系统的功能和设计为主,不会涉及太多细节技术。 当然,我们也可以就一些点具体讨论一下。 资源管理和应用管理基于云的应用平台,我将它分成两类: 一块是资源管理技术, 比如私有云如OpenStack、CloudStack或者公有云技术; 还有就是资源集群管理技术, 在Docker这个技术领域,个人感觉集群技术更适用。另一块就是应用的构建和管理技术, 包括应用资源管理,应用构建、部署、维护、 监控和弹性扩展等技术,以下我会就这两块来分享...阅读全文

博文 2017-06-25 15:01:17 adolphlwq

Golang资源

1 Golang在京东列表页实践总结 地址: http://mp.weixin.qq.com/s?__biz=MjM5OTcxMzE0MQ==&mid=206835939&idx=1&sn=c4cbabc4fccdba123d1c49524b0f40d6&scene=23&srcid=TX91jlytOMbwLmA1Cywd#rd 主要内容: 开发过程中遇到的问题 遇到2个比较严重的问题: Golang自身序列化性能低下 GolangGC困扰 针对第一个序列化、反序列化问题,我们尝试过golang内置的encoding/json、encoding/gob两种方式,但是效果都特别不理想,耗费cpu过多,qps 一直上不去。 后来请教beego作者的谢大同学,给推荐了ffjson,也亲自写了一些...阅读全文

博文 2015-12-24 07:00:00 u012333307

google protobuf安装与使用

google protobuf是一个灵活的、高效的用于序列化数据的协议。相比较XML和JSON格式,protobuf更小、更快、更便捷。google protobuf是跨语言的,并且自带了一个编译器(protoc),只需要用它进行编译,可以编译成Java、python、C++、C#、Go等代码,然后就可以直接使用,不需要再写其他代码,自带有解析的代码。更详细的介绍见: Protocol Buffers protobuf安装 1、下载protobuf代码 google/protobuf 2、安装protobuf tar -xvf protobuf cd protobuf ./configure --prefix=/usr/local/protobuf make make check make ...阅读全文

博文 2016-03-22 11:00:07 luoxn28

Golang gRPC实践 连载一 gRPC介绍与安装

gRPC 是一个高性能、开源、通用的RPC框架,由Google推出,基于HTTP/2协议标准设计开发,默认采用Protocol Buffers数据序列化协议,支持多种开发语言。gRPC提供了一种简单的方法来精确的定义服务,并且为客户端和服务端自动生成可靠的功能库。 主要特性 强大的IDL gRPC使用ProtoBuf来定义服务,ProtoBuf是由Google开发的一种数据序列化协议(类似于XML、JSON、hessian)。ProtoBuf能够将数据进行序列化,并广泛应用在数据存储、通信协议等方面。 多语言支持 gRPC支持多种语言,并能够基于语言自动生成客户端和服务端功能库。目前已提供了C版本grpc、Java版本grpc-java 和 Go版本grpc-go,其它语言的版本正在积极开发...阅读全文

博文 2017-04-14 06:00:38 徐学良

golang map[string]interface{}进行反序列化

js := `{"int":1,"string":"qwertyuiop","float":1.111}` jsm := make(map[string]interface{}) err := json.Unmarshal([]byte(js), &jsm) 数值类型 会全部解析为 float64类型 而不会按照原来的整数int 类型如上述代码中 key为 int 和 float 等数值类型的值,都将解析为 float64。 fork,v := range jsm { switch vType := v (type) { case int: fmt.Println("int",k,strconv.Itoa(vType)) case string:fmt.Println("string",k,...阅读全文

博文 2019-08-21 20:02:42 moyrn