当前位置: 首页 > news >正文

莆田有哪几家做网站设计做队徽的网站

莆田有哪几家做网站设计,做队徽的网站,国产前端框架 做网站,网站建设进度表 下载分布式id生成数据库号段算法的golang实现 介绍项目结构使用说明核心流程说明1. 定义id生成器结构体2. id生成器共有Monitor,GetOne, Close三个对外暴露的方法。3. 数据表结构 参与贡献 介绍 项目地址:gitee;github 本项目主要利用go语言(go1…

分布式id生成数据库号段算法的golang实现

    • 介绍
    • 项目结构
    • 使用说明
    • 核心流程说明
      • 1. 定义id生成器结构体
      • 2. id生成器共有Monitor,GetOne, Close三个对外暴露的方法。
      • 3. 数据表结构
    • 参与贡献

介绍

项目地址:gitee;github
本项目主要利用go语言(go1.20)实现了一种id生成器,并提供了http和grpc两种访问方式。项目中采用的生成算法主要基于数据库号段算法实现。关于这个算法可以参考
美团Left。

项目结构

main.go    - 程序入口,项目初始化,并实现了平滑停服
router     - 路由
controller - api接口
model      - 数据模型定义
dao        - 数据表操作
logic      - 逻辑操作grpcserver - grpc服务器idsequence - 实现了数据号段生成算法
conf        - 数据库配置信息
common      - 公共库config  - viper配置dto     - 请求响应/返回值结构体merrors - 错误码、错误信息定义mysql   - 数据库连接池xgrpc   - grpc server的proto定义

使用说明

  1. 项目采用go1.20编写,采用go mod进行包管理
  2. 编译运行 go build && ./go-tinyid
  3. 项目提供http和grpc两种访问方式,可自行选择

核心流程说明

1. 定义id生成器结构体

   type IdSequence struct {idListLength int64           // 号段长度,可根据业务qps自行设置biz          string          // 业务类型ids          chan int64      // 生成的id list, chan通道stopMonitor  chan bool       // 停止标志channel类型}

2. id生成器共有Monitor,GetOne, Close三个对外暴露的方法。

   Monitor方法主要实现对id list的监控,当检测到id list为空时,会调用add方法,向id list中添加idListLength个新id,在添加新id过程中,
会使用mysql 乐观锁,以防止其他进程也在更新获取到的最新id;GetOne方法主要会从id list里面获取一个新的id;Close方法主要是关闭channel,停止写入新的id;

3. 数据表结构

create table if not exists test.sequence
(id          bigint unsigned auto_increment primary key,biz         varchar(128) default ''                not null comment '业务类型',value       bigint       default 0                 not null comment 'id值',version     bigint       default 0                 not null comment '乐观锁',is_del      tinyint      default 0                 not null comment '是否软删标志',create_time timestamp    default CURRENT_TIMESTAMP not null comment '创建时间',update_time timestamp    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP,unique (version)
) charset = utf8mb4;

参与贡献

项目地址:https://gitee.com/git-lz/go-tinyid;https://github.com/007LiZhen/go-tinyid

欢迎大家积极提issue和MR, 共建golang版本的tinyid

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request
http://www.yayakq.cn/news/667337/

相关文章:

  • 网站维护提示代码麦包包网站建设的特点
  • 网站建设实验的建议和看法资阳大众网app下载
  • 网站关键词库文交所网站建设方案
  • 张家口北京网站建设一站式网站建设比较好
  • 网站建设帮助中心电脑有固定IP 做网站
  • 锡林浩特网站建设微信开发开发公司保障员工安全的措施
  • 呼和浩特电子商务网站建设自适应网站模板公司
  • 如何免费搭建自己的网站做网站时怎么更改区域内的图片
  • 给自己的网站做镜像网站建设网站的整个费用预算
  • 城建亚泰建设集团网站网页制作的公司多少收入
  • 网站空间支持什么程序wordpress支持伪静态
  • 广州开发网站技术制作小程序公司
  • 网站空间 控制面板门户网站建设经验交流
  • 建交互网站需要多少钱平面广告设计培训学校
  • 咋做抽奖网站河南网站建设报价
  • 网站制作费用入什么科目有没有做维修的网站
  • 上海定制化网站开发杭州网站运营十年乐云seo
  • 众筹网站搭建大一网页设计作业成品
  • 广州做网站优化个人网站搭建详细步骤
  • 手机网站一年维护费deals网站建设
  • 兴化网站网站建设免费网线
  • 如何做自己的游戏网站网络销售技巧
  • 个人域名备案完成了 可以改网站内容吗做出口网站
  • 班级网站建设html制作网站开发 加密保护
  • 备案通过网站还是打不开网站开发原型工具
  • php网站开发基础教程北京做兼职的网站
  • 黑龙江营商环境建设局网站wordpress主题去版权
  • 成都搭建企业网站网站搭建就来徐州百都网络非常好
  • 北京市住房城乡建设部网站优盖网logo在线设计
  • 南昌网站做陕西省建设安全协会网站