草庐IT

$数据架构

全部标签

go - 如何循环直到 *ipconn.Read() 读取了所有发送给它的数据

我在go中使用*ipconn.Write方法发送一些数据,但似乎*ipconn.Read()一次只能读取20个字节这里是服务器发送数据ln,err:=net.Listen("tcp","localhost:8888")conn,err:=ln.Accept()tmp:=make([]byte,10000)tmp=[]byte("abcdefghijklmnopqrstuvwxyz")conn.Write(tmp)这里是客户端接收数据conn,err:=net.Dial("tcp","localhost:8888")data:=make([]byte,100000)conn.Read(d

node.js - 有人可以解释一下 GO lang 的架构吗,它比 Nodejs 更快吗?如果是的话,是什么让它更快

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭7年前。Improvethisquestion有人能解释一下GOlang的架构吗,它比Nodejs更快吗?如果是,是什么让它更快,Go是使用C/C++开发的,那么,与C/C++相比,GO在性能上是否胜过C/C++和Go之间的唯一区别是更多的功能使开发人员更容易使用GO编写代码吗?

json - 如何从 golang-map 中检索数据

我将我的json数据放在Unmarsha1上。我怎样才能检索像这样的数据log.Print(b["beat"]["name"])但是我怎样才能检索像这样的数据log.Print(b["beat"]["name"])-->获取数据失败我的代码如下:varbmap[string]interface{}data:=[]byte(`{"foo":1,"beat":{"@timestamp":"2016-10-27T12:02:00.352Z","name":"localhost.localdomain","version":"6.0.0-alpha1"}}`)err:=json.Unmarsh

json - 将复杂的 JSON 解码为结构并访问数据( slice 的 slice )

一段时间以来,我一直在为这个问题而烦恼。我有一个JSON文件,它必须采用以下格式,我需要在Go中迭代并使用IF语句:[[{"configName":"customer"},{"config":[{"emailSubject":"Newcustomeradded"},{"text":"Hitest2"},{"text":"added2"}]}][{"configName":"customerAndUser"},{"config":[{"emailSubject":"Newcustomeradded"},{"text":"Hi,test1"},{"text":"added1"}]}]]我想

go - 在分块数据的 HTTP 响应中如何设置 Content-Length

我们编写了一个服务,它将一些编码数据分块发送到代理服务,该代理服务需要设置Content-Lengthheader,以便它可以向端点发送正确的响应。即使我设置了Content-Lengthheader,它仍然会作为对客户端的响应的一部分被剥离。下面是设置标题的代码funcHTTPSuccessResponse(rwhttp.ResponseWriter,bufferLenint,media[]byte){rw.WriteHeader(http.StatusOK)rw.Header().Set("Content-Type","opus/ogg;audio/ogg;codec=opus")

go - 我应该如何避免在微服务架构中多次实现我的方法

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭3年前。Improvethisquestion我在Golang中从事微服务架构(我的第一个架构)工作,我发现自己在多个服务上复制模型定义。我该怎么做才能避免这种情况?我只能考虑用我所有的模型定义来实现一个共享库,但我无法评估优缺点。你能告诉我解决这个问题的其他方法吗?

go - 如何确保自定义数据结构的编译时安全

我正在编写一些数据结构来尝试并了解Go语言,并且正在为Go缺乏泛型而苦苦挣扎。在我的实现中,我选择强制每个用户实现一个接口(interface),这样我的结构就可以抽象地引用这些对象,但我不喜欢我的解决方案,因为正如您将看到的那样,这在编译时没有得到验证。比较接口(interface)保存在容器中的每个对象都必须实现以下签​​名的比较函数(如果您想要保存的都是原始类型,那就麻烦了)typeComparerinterface{Compare(Comparer)int}然后您可以拥有实现接口(interface)的各种元素,如float64或自定义结构:float64typenumberf

go - Channel中的一个数据被两个routine接收

你好,我学习了围棋例程和channel。我用channel做了一些实验,我通过channel发送数据并尝试在2个函数中捕获它。但是我的第二个函数没有运行这是我的代码:packagemainimport("fmt""os""time")functimeout(durationint,chchan你能告诉我一些关于它的解释吗?谢谢 最佳答案 正如@AndySchweig提到的,您只能从Gochannel中拉取一次。如果你还想接收消息两次,你可以使用观察者设计模式:import"fmt"typeObserverinterface{Noti

go - 如何解决追加数据时第一个参数必须是slice

我正在根据条件进行查询,但是在附加条件时出现错误,我正在进行的查询是:-query:=bson.M{}query["$or"]=[]bson.M{}ifkeyword!=""{query["$or"]=append(query["$or"],bson.M{"author":bson.RegEx{"(?i).*"+keyword+".*","i"}})query["$or"]=append(query["$or"],bson.M{"title":bson.RegEx{"(?i).*"+keyword+".*","i"}})}iftypes==""{query["$or"]=append(

go - 如何提取嵌套的 JSON 数据?

我在data.json中有以下内容:{"table":"orderBook10","action":"update","data":[{"symbol":"XBTUSD","bids":[[3996,49137],[3995.5,116],[3995,165],[3994.5,166],[3994,237],[3993.5,45],[3992,20064],[3991.5,209],[3991,134],[3990.5,2948]],"timestamp":"2019-03-23T00:34:40.505Z","asks":[[3996.5,975],[3997,289],[3997.