yudidi

Results 13 comments of yudidi

如果有学过springmvc的同学,可以发现这里的engine就是就是dispatchservlet

对于day1-rpc目录的这一句话,大佬们可以给我解释下吗? https://github.com/geektutu/7days-golang/blob/9898515ba39d223be48e41c832633b8a79f0d82a/gee-rpc/day1-codec/main/main.go#L35 ``` _ = json.NewEncoder(conn).Encode(geerpc.DefaultOption) //我理解这句话执行完成应该已经往conn里面写入了内容,那么如果我此时应该可以从conn中读取到刚刚写入的内容。 // 为了验证刚刚的猜想,我增加了下面这几句,我理解应该可以从conn读出内容才对。 buf := make([]byte,1024) n,err := conn.Read(buf) // 但是为什么执行到conn.Read,程序就直接退出了,甚至连panic都没有? ```

哦哦,我明白了,没有不可靠。 这个函数应该是一定能让当前携程让出CPU的。 ``` func (agt *Aggregator) TryEnqueue(item interface{}) bool { select { case agt.eventQueue

另外有个问题想请教下: `runtime.Gosched()`放在这里,是基于什么呢。性能 Or 减少某种冲突? 为什么不能像自旋锁一样,做几次自旋呢?

作者是先发送option,再发送header+body的。 `_ = json.NewEncoder(conn).Encode(geerpc.DefaultOption)` 这句话执行完,conn就已经把json格式的option数据发到服务端了,服务端处理之后,客户端才发送header和body,然后服务端继续处理。 正常测试是刚刚说的这个流程,但是如果你用一些极限情况压测下,可能会出现你说的情况。 这块知识属于 tcp粘包 问题,另外还有 拆包 问题,你可以去了解下。

There is trick to avoid it: We can register an empty route with many param to set an enough `maxParam` ``` e.GET("/api/v1/:id/:idx/:idy/:idz/:idxx", func(c echo.Context) error { return nil }) ```

> PHP+Go分布式场景 > 功能:saga、二阶消息、子事务屏障 跨语言有问题吗?

> 会 怎么泄漏,泄漏给谁。不过只要不盗取密码,其实没啥重要东西,

> 以后会慢慢更新的 用户分享的链接之类的,现在导出不了。比如高德分享的地址之类的。

Any new solution about this issue?