×

初识专业的分布式多场景发号器Vesta

96
李艳鹏
2018.02.22 17:45 字数 661

点击Vesta进入我们的项目主页,获得更多信息和内容。

发号器

Vesta发号器是一个通用的发号器,它不但可以嵌入在原生Java程序中,还可以作为Restful服务进行发布,你只需要简单的几个步骤就可以成功搭建Vesta的Rest服务,并且在任何语言中都可以使用HTTP协议来获取全局唯一的ID。


安装与启动

  1. 打包最新版本的REST发布模式的发布包。

下载Vesta源码,

在根目录下执行命令。

./make-release.sh

在target目录找到vesta-rest-netty-0.0.1-bin.tar.gz。

  1. 解压发布包到任意目录。

tar xzvf vesta-rest-netty-0.0.1-bin.tar.gz

  1. 解压后更改属性文件。
  • 属性文件:

vesta-rest-netty-0.0.1/conf/vesta-rest-netty.properties

  • 文件内容:

vesta.machine=1022
vesta.genMethod=2
vesta.type=0

  • 这里,机器ID为1022, 如果你有多台机器,递减机器ID,同一服务中机器ID不能重复。
  • 这里,genMethod为2表示使用嵌入发布模式
  • 这里,type为0, 表示最大峰值型,如果想要使用最小粒度型,则设置为1
  1. REST发布模式的默认端口为8088,你可以通过更改启动文件来更改端口号,这里以10010为例。
  • 启动文件:

vesta-rest-netty/target/vesta-rest-netty-0.0.1/bin/server.sh

  • 文件内容:

port=10010

  1. 修改启动脚本,并且赋予执行权限。
  • 进入目录:

cd vesta-rest-netty-0.0.1/bin

  • 执行命令:

chmod 755 *

  1. 启动服务。
  • 进入目录:

cd vesta-rest-netty-0.0.1/bin

  • 执行命令:

./start.sh

  1. 如果看到如下消息,服务启动成功。

apppath: /home/robert/vesta/vesta-rest-netty-0.0.1
Vesta Rest Netty Server is started.

测试Rest服务

  1. 通过URL访问产生一个ID。
  • 命令:

curl http://localhost:10010/genid

  • 结果:

1138729511026688

  1. 把产生的ID进行反解。
  • 命令:

curl http://localhost:10010/expid?id=1138729511026688

  • 结果:

{"genMethod":0,"machine":1,"seq":0,"time":12235264,"type":0,"version":0}

JSON字符串显示的是反解的ID的各个组成部分的数值。

  1. 对产生的日期进行反解
  • 命令:

curl http://localhost:10010/transtime?time=12235264

  • 结果:

Fri May 22 14:41:04 CST 2015

  1. 使用反解的数据伪造ID。
  • 命令:

http://localhost:8080/makeid?machine=1021&seq=0&time=94990103&genMethod=2&type=0&version=0

  • 结果:

2305844108284681216

请扫描下面二维码加入我们。


云时代架构公众号
开源项目
Web note ad 1