开发案例启思路
(一)Sunya 社交 app
Sunya 社交 app 作为一款具有创新性的社交应用,其采用的 SpringCloud Alibaba框架为后端提供了高可用性与灵活性。这种微服务架构模式使得系统能够更好地应对不断变化的业务需求和用户流量。
Vue.js 的运用为前端开发带来了组件化的优势,通过构建单页面应用(SPA),实现了流畅的用户界面与的用户交互体验。用户在使用Sunya 时,可以感受到界面的简洁美观与操作的便捷性。
Redis 作为缓存数据库,极大地提升了应用的响应速度和并发处理能力。例如,在用户进行即时聊天时,Redis可以快速缓存聊天记录和用户状态信息,确保消息的实时传递和读取。
Sunya的即时聊天功能支持文字、图片、视频等多种形式的信息交换,让沟通更加丰富多彩。朋友圈分享功能则为用户提供了一个展示生活点滴的平台,无论是文字心情、旅行照片还是生活视频,都能在这里找到展示的空间。安全隐私保护功能致力于保护每一位用户的隐私安全,确保通讯安全无虞。
(二)社交 app 开发解决方案
社交 app开发解决方案注重满足用户的基础社交需求以及特殊行业的需求。基础社交功能方面,可以发语音、发图片、发文字、发表情,这与市面上常见的社交APP 功能一致。私信功能以微信为例,从基础社交的文字发展到语音、文件,现在能够实现实时视频语音通话。
实时客服功能在医疗、教育、心理咨询等特殊行业发挥着重要作用。通过移动端的客服服务,能够及时解决客户的售前售后问题。群聊功能如微信、QQ的群聊,可实现多人互动聊天。
在功能开发上,社交 APP支持多种聊天方式,包括发送语音、短信、视频、图片和文字,支持多人群聊。添加好友可以通过搜号码或扫二维码名片加友。实时对讲机功能让用户可以通过语音聊天室和一群人语音对讲,且消息几乎是实时的,不会留下记录,手机屏幕关闭也可进行实时聊天。未读消息提醒功能通过系统推送,提醒用户及时查看并处理。私信助手开启后可接收来自QQ微博的私信,收到私信后可直接回复。查看并添加附近的人功能根据用户地理位置找到附近同样开启本功能的人。速记功能支持语音速记,还支持视频、图片、文字的记事。账号保护功能通过手机号绑定账号,确保用户账号安全。
(三)社交 APP 基础架构选型
在社交 APP 的基础架构选型中,技术选型的合理性至关重要。选择 Python 作为开发语言,具有开发效率高的优势。例如,用Python 两三百行代码就可以对 web.py 的数据访问模块进行包装,实现支持 sharding 的数据访问工具,而用 Java做类似的事情可能需要写十几个类文件,耗费更多时间。
MySQL 作为存储工具,是开发者熟悉的数据库,具有稳定可靠的特点。对于一些可能会频繁变动的表,如 feedindex,在一开始就做了 sharding 的处理,为未来的数据增长和扩展做好准备。
Redis 在社交 APP 中主要用于保存 token、记录用户在线状态和防刷业务。例如,当用户输入过快时,Redis可以记录用户的操作状态,提示用户 “输入的太快了,请休息一下继续”,从而保证系统的正常运行。
RabbitMQ 作为消息队列,在社交 APP 中有很多应用场景。比如,当用户有几万个粉丝关注,发送一张照片时,RabbitMQ可以将推送任务放到后台进行,立即给用户返回发送成功的结果,提高用户体验。API Server 采用 web.py框架,调试阶段直接对外给客户端同学做调试,上线后准备走 Nginx 的反向代理,或者采用 gunicorn + web.py的模式,nginx 再反向代理到 gunicorn,提高系统的稳定性和可扩展性。对于私聊功能,单独拿 tornado 去做,因为tornado 做长链接更,像 Node.js 那样是异步的 web 框架,能够更好地满足私聊的实时性要求。