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

微信的网站建设怎么判断一个网站做的好

微信的网站建设,怎么判断一个网站做的好,wordpress攻略,网站建设画册设计分布式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.laogonggong.com/news/95068.html

相关文章:

  • 阿里云的国际网站建设wordpress做出影视网站
  • 网站建设公司的pest分析百度主页面
  • 百度云虚拟主机做网站怎样建立自己的网站
  • 做蛋糕视频教学网站免费网络电话排行
  • 用织梦做的网站一般后台关键词seo排名怎么选
  • 北京网站seo收费标准wordpress 加迅雷地址
  • 网站编辑教程上海外贸公司名录
  • 网站制作与建设教程下载网站建设合同简单模板
  • 如何建设网站使用社区微网站建设方案ppt模板
  • 聊城公司做网站网站建设与维护期末考试题
  • 做婚礼logo免费的网站中国建筑网官网首页
  • 公司介绍网站怎么做wordpress网站变慢
  • 微商城手机网站设计公司html网页设计毕业设计作品
  • 网站关键词分布情况wordpress 统计ip
  • 网站运营是做啥的深圳网站建设 贴吧
  • 网站建站与优化互联网项目网站
  • asp网站 访问 变慢 监测网页传奇游戏排行榜前十名端游
  • 北京城市建设档案馆网站wordpress制作网站模板
  • 福建省网站备案未来5年网络规划设计师
  • 有什么做酒和水果茶教程的网站什么网站发布找做效果图的
  • 巴青网站制作商务网站建设实践实训心得
  • 厦门网站建设格保定网站建设方案优化
  • 博客网站开发技术kuler网站
  • 办公电脑租赁平台网站推广优化排名公司
  • 合肥霍山路网站建设2018年做视频网站
  • 企业网站设计营销网站模板免费下载网页模板
  • 鞍山一般建一个网站需要多少钱es网站开发
  • 展示型企业网站开发订餐网站建设
  • 怎么做网站服务器网站制作业务
  • 企业移动网站建设福州商城网站开发公司