会使用开发语言:Java,Python,EasyLanguage
会使用开发框架:Spring全家桶,Dubbo,Protobuf,Netty,VUE
会使用数据库:Mysql,Oracle,Redis,Memcache
会使用中间件:ActiveMQ,Redis
会使用服务器/容器:Tomcat,Nginx,Apache Http Server,Docker
会使用操作系统:Windows,Linux
会开发程序类型:Windows桌面应用,Java Web应用,VUE Web应用,Python爬虫应用,Android 应用
能对Android应用进行逆向,静态分析,smali动态调试,so动态调试
1.我们需要用到websocket做一个简单的聊天室,但是根据讨论后,团队里的几个人有提出过以前用Servlet的WebSocket的时候,有出现过漏消息的情况,然后我们就决定不用java做websocket了,因为spring的websocket我们也都没有用过,担心会产生其他问题,所以,最终决定用php的workman来做websocket,因为workman我有接触过,性能方面,包括社区活跃度都很不错,但是因为跨进程的原因,我们需要把workman接受到的消息传递到java里,于是我们用activemq做了个中间件,然后还是用redis存储了用户的token,用户连接workman的时候是需要进行认证的。
2.考虑到项目的并发,高可用以及后期的维护情况,我们决定用分布式来搭建,采用的是阿里的dubbo,不用springcloud是因为,dubbo简单。
3.因为有金额相关的操作,并且客户也说金额方面一定要做到绝对的安全,所以我们对金额方面的操作做了很多,首先就是所有用户操作金额的时候,都是需要拿到一个分布式锁的,包括后台在修改金额的时候都需要这样,而且在操作金额的方法上,我们做了个一个统一的aop去记录日志,和流水计算。分布式锁,用的也是redis来做的。
4.同后台一样,部署用是集群,session存储在redis中的
5.有用到分布式定时任务,对游戏进行任务结算、数据清理等功能,用的是xxl-job
大致框架基本就是spring boot + redis + dubbo + zookeeper + mysql + php + activemq