因为对mqtt服务器mosquitto的源码简单研究感觉其性能在多处都有瓶颈比如网络层没有使用epoll,topic使用树(在大量topic时岂不是要遍历到死)还有很多……,所以又去网上搜索其他消息系统的资料,然后发现gnatsd的性能很牛逼,虽然功能上比mqtt弱,但是在某种程度上可能也可以契合我的项目。
首先我想了解一下gnatsd的鉴权系统,一开始发现都是写在配置文件里,这样对于少量的用户是可以的或者大量用户时共享密码和权限,但是如果想对所有用户都使用不同的密码和权限控制就不行了。
自定义鉴权解决方案
还没开始正式使用,都没下载代码只是简单在github上查看了一下代码最终发现一个解决方案:
server/auth.go:
// Authentication is an interface for implementing authentication
type Authentication interface {
// Check if a client is