自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MassiveStars的博客

Never too high, never too low.

  • 博客(10)
  • 资源 (1)
  • 收藏
  • 关注

原创 关于防止微信投票刷票行为的一些思考

背景介绍微信投票在这几年一直很热门,只要是个活动往往都做一个投票的功能。刷票已形成了一个庞大的产业链但如何防止刷票行为就很让人头疼了。首先要清楚微信的刷票行为,微信投票是根据openid来判断一个用户是否已投过票。 openid是加密后的微信号,每个用户对每个公众号的openid是唯一的。这个判断依据有较大的漏洞,就是只能判断openid是否重复,但无法校验openid是不是真实的。而且就算o

2016-12-29 13:58:57 14906

原创 将List转成树的两种方式(递归、循环)

在做目录树的时候通常是将一个目录存在数据库的List全部返回来,再根据节点id和parentId组装成一颗树,这里切忌使用递归查询的方式实现。List转成Tree有两种方式,一种是常用的递归,一种是双层循环。TreeNode.javapackage org.massive.tree;import java.util.List;/** * Created by Massiv

2016-12-28 18:37:37 42867 24

原创 使用Zookeeper实现Leader(Master)选举

分布式系统最典型的架构就是一主多从。在很多时候,虽然处理大规模的数据、图像和文件等,这种工作极其耗资源而且数据、文件等都是共享的,若全部机器都计算处理一次会浪费保贵的计算资源;我们可以把这些工作交给一台机器处理,其它机器则通过数据库、分布式文件系统等方式共享计算成果Leader(Master)。另外,对于数据库、缓存等组件读写分离是惯用的提高性能的方式;读写分离是把写全部给leader(master),查询则使用follower的机器。使用Zookeeper提供的API可轻松实现leader选举。

2016-12-28 00:28:12 6732

原创 使用ZooKeeper实现队列

实现原理先进先出队列是最常用的队列,使用Zookeeper实现先进先出队列就是在特定的目录下创建PERSISTENT_SEQUENTIAL节点,创建成功时通知等待的队列,队列消费序列号最小的节点。此场景下Zookeeper的znode用于消息存储,znode存储的数据就是消息队列中的消息内容,SEQUENTIAL序列号就是消息的编号,按序取出即可。由于创建的节点是持久化的,所以不必

2016-12-26 09:27:37 6132

原创 使用Zookeeper实现分布式锁

实现原理Zookeeper的一个典型应用场景就是分布式锁,锁的实现是利用Zookeeper创建的临时时序节点(创建的时候CreateMode为EPHEMERAL_SEQUENTIAL)和节点变动的监听器实现的。时序节点保证了节点的创建在分布式系统情况下还是有先后顺序的,监听器使得客户端能感受到节点的变动情况。具体步骤1、创建一个永久性节点,作锁的根目

2016-12-21 00:16:18 4020 4

原创 Zookeeper Java API的使用

本文介绍Zookeeper Java API的使用引入相应Jar包bulidPath解压下载的zookeeper-3.4.9.tar.gz的根目录就有相应jarzookeeper-3.4.9.jar在eclipse的buildPath里引入zookeeper-3.4.9.jarmaven构建的项目 若是maven构建的项目,加入以下依赖depend

2016-12-19 19:00:52 7460

原创 Zookeeper集群配置

本文主要介绍Zookeeper集群的配置和运行启动Zookeeper的单机模式是非常简单的,它在用作开发、测试和评估时间很方便。然而在生产环境下,为了保障服务的高可用性应该要使用集群模式。有关Zookeeper的简介和单机模式示例请参考: Zookeeper简介和入门示例在集群模式下,所有配置文件和单机相比是基本相同的,只有一点细微的差别。本文的运行环境OS: CentOS 7Zookeeper

2016-12-12 21:23:34 607

原创 Zookeeper简介和入门安装示例

Zookeeper简介Zookeeper是一个为分布式应用提供协同服务的组件。它提供了一系列简便的功能给分布式系统实现更高等级的同步、配置管理、分组及命名。它设计的非常容易开发,使用了一种跟树形文件系统非常相似的数据模型。 Zookeeper使用Java的运行环境,能使用Java和C进行操作。设计目标Zookeeper是非常简单的。Zookeeper通过一种可共享的继承式的命名空间让分布式程序之间相

2016-12-11 15:47:43 1088

原创 使用maven的profile切换项目各环境的参数

在实际开发项目中,常常有几种环境,一般情况下最少有三种环境:开发、测试、正式。各个环境之间的参数各不相同,比如mysql、redis等不同环境的host不一样,若每个环境都手动替换环境很容易出错,这里我们利用maven的profile功能切换环境。本文的项目结构图:src/main/resources/dev  目录的properties是开发环境的配置项目

2016-12-07 22:29:26 25315 1

原创 使用Spring AOP注解实现Redis缓存 适合复杂业务场合

支持切入方法参数为Map、Javabean、基本类型(要定义成对象),也增加了一些时间参数和缓存配置项。为了灵活配置拦截的方法,aop使用xml配置

2016-12-07 15:52:34 5396 2

redis-tomcat-session-manager.

1、请把3个jar包放在tomcat的lib目录 2、把context.xml覆盖tomcat/conf原有的文件 3、修改context.xml的ip、port和密码

2016-01-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除