分布式唯一ID生成服务
2015-03-06 15:20
381 查看
SNService是一款基于分布式的唯一ID生成服务,主要用于提供大数量业务数据建立唯一ID的需要;服务提供最低10K/s的唯一ID请求处理.如果你部署服务的CPU资源达到4核的情况下那该服务最低可以提供100K/s的请求处理能力.服务支持部署到Linux mono 3.2.3和Windows .Net4.0
为了保证所有服务器上的业务数据获取得全局唯一ID,所以通过服务的方式提供.如果考虑更大的获取量和服务的可靠性,可以部署两台ID生成服务,分别生成序列为奇和偶数,应用端通过虚拟IP指向即可.
可以通过修改以下配置项来确定递增值的起始和步增长值
如果生成规则不满足需要,则可以自行修改ID生成方式
服务的执行情况可以通过程序或服务目录下的log目录查看日志.
[注意:由于ID是通过时间截来处理,所以在部署前需要同步一下网络时间,保证以后即使服务重启也不会导致ID生成上出现问题.]
下载服务源代码
个人站:www.ikende.com
个人开源项目github.com/IKende
elastic communication component for .net
c#组件设计交流群:47164588
c# socket :136485198 微博http://weibo.com/ikende
ID生成规则
服务生成的ID是64位无符号长整型,其中48位是现有时间和2013年1月1日时间差的毫秒数,另外16位则是针对当前毫秒的递增值.即每毫秒支持6万多个唯一ID生成,每秒则支持多达6千万个ID生成.这个数量级足可以满足大部份的需要.为了保证所有服务器上的业务数据获取得全局唯一ID,所以通过服务的方式提供.如果考虑更大的获取量和服务的可靠性,可以部署两台ID生成服务,分别生成序列为奇和偶数,应用端通过虚拟IP指向即可.
可以通过修改以下配置项来确定递增值的起始和步增长值
<sNServiceSection xmlns="urn:IKende.com.SNService"> <sequence start="1" step="1"/> </sNServiceSection>
如果生成规则不满足需要,则可以自行修改ID生成方式
部署服务
服务是通过TCP的方式提供访问,分别提供Console和windows service两种方式来加载服务.可以通过修改以下配置来改动服务监听的IP和端口,默认情况下是监听本机所有IP和8088端口.<serverSection xmlns="urn:Beetle.Express"> <listens> <add name="SN_SERVER" type="TCP" port="8088" handler="IKende.com.SNService.SNServer,IKende.com.SNService" syncSend="true" useReceiveQueue="false" useSendQueue="false"/> </listens> </serverSection>
服务的执行情况可以通过程序或服务目录下的log目录查看日志.
[注意:由于ID是通过时间截来处理,所以在部署前需要同步一下网络时间,保证以后即使服务重启也不会导致ID生成上出现问题.]
调用
服务通过TCP方式提供,所以只需要TCP接入到相关服务并发送GETSN指令,服务即可响应BYTE[8]ulong的数据.如果是使用.NET访问那可以引用IKende.com.SNService.dll.,通过以下代码来获取唯一ID.private static IKende.com.SNService.Api.SNClient client=new Api.SNClient("127.0.0.1", 8088); ulong value = client.GetValue();
下载服务源代码
个人站:www.ikende.com
个人开源项目github.com/IKende
elastic communication component for .net
c#组件设计交流群:47164588
c# socket :136485198 微博http://weibo.com/ikende
相关文章推荐
- 分布式的唯一ID生成服务
- 分布式唯一ID生成服务
- 如何在高并发分布式系统中生成全局唯一Id
- (转)如何在高并发分布式系统中生成全局唯一Id
- 如何在高并发分布式系统中生成全局唯一Id
- 高并发、分布式交易场景下唯一ID生成方法
- 如何在高并发分布式系统中生成全局唯一Id
- 如何在高并发分布式系统中生成全局唯一Id
- 如何在高并发分布式系统中生成全局唯一Id(转)
- 在高并发分布式情况下生成唯一标识id
- 高并发分布式系统中生成全局唯一Id汇总
- 如何在高并发分布式系统中生成全局唯一Id
- Ticket 服务: 一种经济的分布式唯一主键生成方案
- 如何在高并发分布式系统中生成全局唯一Id
- 如何在高并发分布式系统中生成全局唯一Id
- 在高并发分布式系统中生成全局唯一Id
- 如何在高并发分布式系统中生成全局唯一Id
- 如何在高并发分布式系统中生成全局唯一Id
- 如何在高并发分布式系统中生成全局唯一Id
- 如何在高并发分布式系统中生成全局唯一Id