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

点击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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT综合技术分享

docker安装篇,第二篇 在Ubuntu18.04上开启RESTful API接口,HTTP与HTTPS接口访问

本教程参考以下docker官方文档,如在使用本教程过程中存在问题,可翻阅原文官方文档: https://docs.docker.com/install/lin...

1173
来自专栏散尽浮华

php安装扩展模块后,重启不生效的原因及解决办法

在lnmp运维环境中,我们经常会碰到有些php依赖的扩展模块没有安装,这就需要后续添加这些扩展模块。在扩展被安装配置后,往往会发现php-fpm服务重启后,这些...

4083
来自专栏运维小白

Linux启动顺序

linux启动顺序: 1)开机BIOS自检     2) MBR引导     3)grub引导菜单     4)加载内核kernel      5) ...

2098
来自专栏Python专栏

176条DevOps人员常用的linux命令速查表,收藏了慢慢看

1002
来自专栏xingoo, 一个梦想做发明家的程序员

[大数据之Sqoop] —— Sqoop初探

Sqoop是一款用于把关系型数据库中的数据导入到hdfs中或者hive中的工具,当然也支持把数据从hdfs或者hive导入到关系型数据库中。 Sqoop也...

2569
来自专栏Python

windows下命令行模式中cd命令无效的原因

当我们执行cmd 想切换当前工作目录时,会发现windows下命令行模式中cd命令没有生效,到底是什么原因呢? ? 例如: 当我们想切换到 D:\MySql\m...

2068
来自专栏mathor

DOS常用命令

852
来自专栏编程直播室

Eclipse 报错 “Dynamic Web Module 3.1 requires Java 1.7 or newer”第一步第二步第三步其他问题

1788
来自专栏欧科云

善用本地组策略编辑器,解决各种问题

721
来自专栏magicsoar

mac下使用marsedit写博客

在Windows习惯了使用Windows live write写好博客,然后发布上去,到了mac下,发现了一个很好的替代品  MarseEdit 下载安装后,打...

2879

扫码关注云+社区