一、主要技术栈
Golang,MySQL,Redis,websocket,HTTP
二、项目概述
该网页聊天室,实现的主要功能有:单聊、群聊、加载离线消息、加载历史消息、建群、添加好友、 登录、注册等。
三、项目架构
该项目主要包含web、im-balance、im-api、im-manage、im-router几个部分。
1、web
这个部分代表前端部分,主要是用一些基本前端技术实现各个页面的展示,包含登录页、注册页、聊天室页面、好友列表页等等。
web首先会从im-balance(负载均衡侧)获取到当前登录用户可用的im-manage(真正的消息服务)机器ip,将其缓存在localStorage之后,会向im-manage发起websocket连接。
2、im-balance
这是负载均衡侧,由Golang实现,主要是给前端每个登录用户,分配一个当前可用的im-manage机器节点。
im-manage启动后,会通过gRPC定时发送心跳给im-balance,im-balance以此来判断哪些节点可用,从而分配给登录用户。采用的负载均衡算法为随机算法。
3、im-api
这个部
1670Gogolang10000.00元