初识专业的分布式多场景发号器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 条评论
登录 后参与评论

相关文章

来自专栏Python专栏

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

12720
来自专栏杂七杂八

用virtualenv建立多个Python独立开发环境

virtualenv创建一个拥有自己安装目录的环境, 这个环境不与其他虚拟环境共享库, 能够方便的管理python版本和管理python库。主要解决不同项目之...

35860
来自专栏玩转JavaEE

使用Spring Cloud搭建高可用服务注册中心

我们需要的,不仅仅是一个服务注册中心而已,而是一个高可用服务注册中心。 ---- 上篇博客【使用Spring Cloud搭建服务注册中心】中我们介绍了如何使用S...

35050
来自专栏北京马哥教育

176条DevOps人员常用的linux命令速查表

线上查询及帮助命令 文件和目录操作命令 查看文件及内容处理命令 文件压缩及解压缩命令 信息显示命令 搜索文件命令 用户管理命令 基础网络操作命令 深入网络...

37840
来自专栏运维小白

Linux启动顺序

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

24280
来自专栏编程直播室

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

20780
来自专栏张浩的专栏

Sqoop在导入的时候导入多张表

当我们用Sqoop导入一张表的时候可以用 --table <table-name> 去指定要导入一个表,但是我们要导入多个表的话,用这个--table是不行的。...

80710
来自专栏FreeBuf

Galileo:一款开源Web应用审计框架

Galileo是一款针对Web应用程序的开源渗透测试工具,可帮助开发和渗透测试人员识别并利用其Web应用程序中的漏洞。

12130
来自专栏不想当开发的产品不是好测试

启动jenkins服务错误

背景 重新安装了jenkins,需要启动,使用的yum install安装的,启动jenkins的话只需要执行service jenkins start,但出了...

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

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

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

27890

扫码关注云+社区

领取腾讯云代金券