本周日【珠海源创会】一起聊聊:PingCAP分布式事务、支付宝移动端实践、GSBN技术框架选型,点此报名占座

响娃 / sequenceJava

Watch 117 Star 220 Fork 57
加入码云
与超过 300 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
分布式系统唯一ID生成方法,ID生成达到100w/s 展开 收起

limu 最后提交于 bug
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
readme.md
  1. 在工程中引用sequence项目的sequence-client jar包
  2. 在的应用数据库中创建两个sequence表,sql语句如下:
    CREATE TABLE `sequence0` (
        `value` bigint(20) NOT NULL,
        `name` varchar(50) NOT NULL,
        `gmt_create` datetime NOT NULL,
        PRIMARY KEY (`name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    CREATE TABLE `sequence1` (
        `value` bigint(20) NOT NULL,
        `name` varchar(50) NOT NULL,
        `gmt_create` datetime NOT NULL,
        PRIMARY KEY (`name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  1. 在spring xml中配置如下,为了防止单点故障,你可以配置两个数据库源:
    <bean id="bizOrderIdSequence" class="com.oschina.sequence"
                   init-method="init" destroy-method="destroy">
        <property name="idName" value="bizOrderId"/>
        <property name="appName" value="trade"/>
        <property name="databaseConfigs">
            <list>
                <bean class="com.oschina.sequence.DatabaseConfig">
                    <property name="host" value="10.10.23.46:3306"/>
                    <property name="userName" value="root"/>
                    <property name="password" value="123456"/>
                    <property name="databaseName" value="trade"/>
                </bean>
                <bean class="com.oschina.sequence.DatabaseConfig">
                    <property name="host" value="10.10.23.47:3306"/>
                    <property name="userName" value="root"/>
                    <property name="password" value="123456"/>
                    <property name="databaseName" value="trade"/>
                </bean>
            </list>
        </property>
    </bean>
  1. 在你的应用程序中,则可以如下使用,需要多个不同的ID你需要配置不同的bizOrderIdSequence:
    Long bizOrderId = bizOrderIdSequence.nextValue();

项目点评 ( 28 )

你可以在登录后,发表评论

搜索帮助

12_float_left_people 12_float_left_close