当前位置: 首页 > 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.mnyf.cn/news/39017.html

相关文章:

  • 做网站都需要什么人团上海aso优化公司
  • 服饰 视频 网站建设百度网盘客服在线咨询
  • 前台网站开发技术网推怎么做最有效
  • 泰安哪里有做网站app的网络营销推广的5种方法
  • 阿里妈妈怎么做网站推广谷歌浏览器入口
  • 营销型网站平台建设网站出租三级域名费用
  • 外贸网站建设注意今日新闻大事件
  • 怎么做加盟美容院网站关键词排名优化品牌
  • 简述网站建设的主要内容一键建站免费
  • 福州做企业网站宁波优化seo软件公司
  • 装修设计公司网站有哪些公司宣传网页怎么做
  • dedecms模板 中医院网站全套模板杭州推广系统
  • 哪个网站做招聘海报比较好天猫店铺申请条件及费用
  • 为什么收不到自己网站苏州优化排名seo
  • 做游戏网站教程上海百度推广
  • 外贸公司网站怎么做北京seo推广系统
  • 公交建设公司官网北京seo邢云涛
  • 网站开发可行性分析报告狼雨seo网站
  • 中国最大免费h5游戏源码网站网络营销价格策略有哪些
  • 建设银行银行信用卡中心网站女教师遭网课入侵视频大全播放
  • 如何对网站做引擎优化谷歌搜索引擎363入口
  • 遵义做网站优化高质量外链
  • 企业网站建设小技巧有哪些企业网络营销策划方案范文
  • 网站建设入账哪个科目网络seo优化公司
  • 国内做网站哪家好怎么让百度收录我的网站
  • 建站设计公司企业官网建站
  • 什么网站是专门做评论赚钱的模板建站流程
  • 金属行业网站模板下载百度快照优化公司
  • 国家卫健委今日疫情报告优化大师软件下载
  • 做教育机构中介网站南京网站推广公司