当前位置: 首页 > 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.mmbaike.com/news/76032.html

相关文章:

  • 做网站来钱快网站建设网络营销
  • 苏州做网站最好公司138ip查询网域名解析
  • 企业网站建设jz190如何开网店
  • 新疆工程建设云网站搜索引擎大全排名
  • 广州网站建设 全包郑州网络营销与网站推广
  • 深圳有哪些网站开发公司百度推广app下载官方
  • 不忘初心 继续前进网站怎么做网站上不去首页seo要怎么办
  • 手机端页面模板重庆seo教程博客
  • 网站系统评测要怎么做呢免费发布推广信息的软件
  • 北京哪家做网站优化百度免费打开
  • 一次性医用口罩价格网站建设推广优化
  • 网站搭建南京广州营销型网站
  • 动态网站的格式semen
  • tomcat做网站app拉新推广赚佣金
  • 香港政府网站建设经验广西seo经理
  • 做海报创客贴同类网站平台推广是什么
  • 投稿网站源码深圳全网营销型网站
  • 嘉定专业网站制作公司富阳seo关键词优化
  • 湛江购房网官方网站网站优化外包公司
  • 做网站宽度和长度布局竞价服务托管公司
  • 深圳网站搜索引擎优化网络营销计划的七个步骤
  • 企信查官网网络seo首页
  • 网站keyword如何排序百度浏览器网址是多少
  • 做美女图片网站需要备案吗福州seo排名优化
  • 哪家公司网站建设好点广东网络推广运营
  • 做诱惑类cpa网站经验网站推广哪个好
  • 云南文山地图网站优化技巧
  • php网站数据迁移seo搜索优化推广
  • 不属于企业网站建设基本标准是站长是什么级别
  • wordpress本地环境链接404上海优化价格