比如我一个web服务 想监听多个端口 比如:80、8080、443
在Google搜索到的文章说用go ListenAndServe()...
这样的做法有什么问题吗?正确的做法是怎样的
楼主的问题应该分为两方面:
一,单服务,多端口响应
按照前面大家所说,是没有问题的。rpc、http的注册,都是以单体方式驱动注册的服务。注册的时候,要用同一个服务实例注册。
二、服务的并发安全问题
注册服务确保同一对象,多协程的时候(rpc是用反射找到方法,然后通过关键字 go 驱动的方法的),要注意对数据的读写保护,避免崩溃。加个锁就好了。
#8
更多评论
你可以使用一个`ServerMux`注册处理函数,然后在多个goroutine里用`ListenAndServe`使用同一个`ServeMux`监听多个端口。
#1