我不是编程的新手,但我对golang相对较新,但仍然没有完全习惯golang并发方法。
一般设置:
我的问题与如何实现内存缓存有关。
此方法存在问题:我成功序列化了Web服务器:)
好的,请忘记这种方法。
这样更好,理论上我甚至可以在服务器之间拆分工作。
但是,例如基于golang旅游代码:
func main() {
http.HandleFunc("/view/", makeHandler(viewHandler))
http.HandleFunc("/edit/", makeHandler(editHandler))
http.HandleFunc("/save/", makeHandler(saveHandler))
http.ListenAndServe(":8080", nil)
}
如何在没有序列化的情况下在http处理程序中传递/获取新的随机数?
并且:一般来说这是一个好方法吗?有更好的方法吗?现在我将自己限制在X,这不会扩展。如果我希望X在运行时更改,我怎么能告诉处理程序有关该更改(不再重新编译)?
答案 0 :(得分:1)
您不能使用 RWLock 来真正序列化您的服务器。使用RLock()
并行读取文档。
检查thread-safe concurrent map for go库。它同时使用互斥和分片技术。我还将CQRS添加到数据库级别,它可以轻松处理100K并发请求/秒。