云鼎彩票网

    佛山服务器托管|佛山高防服务器|Fsidc

    网站首页 > 新闻资讯 > 营销广告

    微信抢红包服务器解决方案

    微信抢红包服务器出租,牛不牛看了图就知道;我们出租的服务器是离微信服务器机房最近的路由。欢迎大家考评!

    QQ图片20171022132426.png


    内容分享:基于分布式的抢红包服务器

    抢红包服务器是我的一个课程设计,我在做的时候查了很多资料,但是有部分资料是很久之前的,我在这里将我的设计写一下,供大家参考,如果有写的不好的地方请留言指教,谢谢大家。

    首先,我拿到题目的时候是,抢红包服务器(分布式锁),抢红包其实是类似于秒杀场景,而题目又提示分布式锁,到网上一查,嘿,很多关于redis秒杀场景的分布式锁。而且redis官方文档关于锁着部分的翻译也可以查到,我的工程中选择的是乐观锁,乐观锁容易实现并且吞吐量好一些,这里关于redis乐观锁的实现不再赘述,网上有很多,一查就可以查到。

    然后,我要考虑服务器的负载量和延迟的问题,老师的要求要尽可能的降低延迟,并且提高负载量。

    这时候我们正好讲到关于分布式的实现原理,负载均衡嘛,好了,负载问题的解决就用这个了。这里就要啰嗦几句了,关于负载均衡的设计我是这么做的,首先有服务器也有一个过滤器,过滤器的作用是连接服务器并且为连进来的客户选择合适的服务器进行连接。过滤器首先要和服务器保持连接,过滤器和服务器之间保持通信,我这里用了一个小的心跳实现通信,服务器要不断的将自己的负载信息传递给过滤器,然后过滤器等待用户连接,用户来连接的时候,统一先连接过滤器,从过滤器那里获得合适的服务器的IP和端口号,然后再找服务器连接,这样就能将一台服务器的压力转移到其他服务器上面。

    122.png

    从图片可以看出还有一个数据库服务器,没错,这个数据库服务器是存放数据资源的。数据库服务器保存客户消息,红包资源信息等。

    首先先开启数据库服务器,然后服务器与数据库服务器开始连接,数据库服务器通过redis的发布订阅功能将客户信息统一初始化发布给各个服务器,每个服务器都配置自己的redis,当接受完毕这些客户消息后将客户消息保存到自己的redis中,这样,如果一个用户存在,当他选择登录时,直接到服务器的redis就可以找到他的用户消息,并且给于反馈,很快,也很方便,如果一个用户不存在,他在登录的时候就要去数据库服务器去注册,然后数据库服务器再将用户消息动态同步到各个服务器。

    20170708154526422.png

    大体的流程图就是上面图中叙述的。

    还有就是分配红包的算法,这个是在服务器中的,这个算法比较简单,在网上查资料也能查到,尽量符合正态分布就比较ok。

    通信我是用TCP/IP实现的,还有可以改进的地方,比如将通信改成NIO的模式,用Netty框架,我是因为马上就要答辩没来得及改,有继续做这个工程的可以改来试试,讲道理效率性能都会有提高,在并发量,延迟等都会有改善。



    佛山idc:www.nsolradio.com  专做佛山服务器租用佛山服务器托管ddos云防护CC云防护网站SSL证书混合云等精细运维服务!

    FSIDC目前推出了:佛山电信机房佛山移动机房佛山联通机房佛山BGP机房

    内容有部分是原创文章,如转载请注明出处!互联网上转载内容如有侵权请及时联系我们删除!


    利盈彩票nsolradio.com版权所有 by FSIDC 6.1.2 ©2008-2018 www.nsolradio.com
    友情链接:三分彩  利盈彩票注册  聚发彩票  三分彩官网  利盈彩票官网  多盈彩票  利盈彩票官网  

    免责声明: 本站资料及图片来源互联网文章,本网不承担任何由内容信息所引起的争议和法律责任。所有作品版权归原创作者所有,与本站立场无关,如用户分享不慎侵犯了您的权益,请联系我们告知,我们将做删除处理!