Neo
  • 简介
  • 一、数据库连接
  • ​二、基本功能
    • 增加
    • 删除
    • 修改
    • 查询
    • 其他查询
  • 三、结构信息
  • 四、批量功能
  • 五、NeoMap类
    • NeoMap初始化
    • NeoMap和JavaBean转换
    • NeoMap和NeoMap转换
    • 其他功能
  • 六、命名转换
  • 七、Columns类
  • 八、单机事务
  • 九、sql监控
  • 十、主从
  • 十一、join
  • 十二、实体代码生成器
  • 十三、sql特殊处理
  • 十四、分布式
    • 全局id
    • 分布式锁
    • 分布式事务(待开发)
  • 十五、动态分库分表(待开发)
  • 十六、多数据源(待开发)
    • sqlLite
    • PostGresql
  • 十七、设计说明
  • 十八、版本记录
Powered by GitBook
On this page
  • 表结构
  • 用法

Was this helpful?

  1. 十四、分布式

全局id

对于分布式的全局id,这里并没有采用常见的雪花算法,而是在当前版本用到了全部的64big位,数据持久化部分是基于数据库,内存部分采用双buffer的方式进行数据刷新。对外仅提供两个参数进行buffer刷新速度和buffer大小调整。 默认情况下是不启用全局id的,如果要启用全局,则需要先进行开启,并设置buffer刷新比率和大小。开启后,则会在对应的库中创建一个全局id表:neo_id_generator。

/**
 * 开启全局id生成器,默认buffer大小是10000,刷新比率是0.2
 */
public void openUidGenerator(){}
public void openUidGenerator(Integer stepSize, Float refreshRatio){}

type

说明

stepSize

双buffer,其中每一个内存buffer的大小

refreshRatio

刷新二级buffer的比率,在第一级buffer达到这个比率之后,就派一个线程异步获取数据,填充第二buffer

表结构

CREATE TABLE `neo_id_generator` (
  `id` int(11) NOT NULL,
  `uuid` bigint(20) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

用法

直接调用如下diamante即可获取分布式全局唯一id

public Long getUid() {}
Previous十四、分布式Next分布式锁

Last updated 5 years ago

Was this helpful?