阿里云短信接口: https://github.com/KenmyZhang/aliyun-communicate
分布式ID雪花算法-解析 | 分布式唯一id:snowflake算法思考
zap是uber用Go语言编写的开源日志
一个类型声明语句创建了一个新的类型名称,和现有类型具有相同的底层结构。
新命名的类型提供了一个方法,用来分隔不同概念的类型,这样即使它们底层类型相同也是不兼容的。
type Celsius float64 // 摄氏温度
type Fahrenheit float64 // 华氏温度
Go实战--golang中使用JWT(JSON Web Token):https://blog.csdn.net/wangshubo1989/article/details/74529333
JWT(json web token)http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html
gorm : github.com/jinzhu/gorm
mysql第三方集群库
redis第三方集群库
Zookeeper 分布式锁
当用户A修改订单前,会根据订单号到Zookeeper找对应的值,如果找到了,说明有用户在操作相同订单号的数据,
这时用户A需要等待,如果没有获取到则在Zookeeper中创建订单号为5的节点,
然后在去操作数据库A,把订单5的价格改为20,然后把数据库数据同步到数据库B,
此时如果用户B想操作订单为5的数据,它先去zookeeper判断是否有值,这是肯定有,所有用户B等待,等A操作结束后,
本次会话结束,Zookeeper自动删除此节点,此时B在去操作数据库,这样就实现了分布式锁问题。
修改数据时, 判断有没有改节点,如果没有,就创建一个当前类型的节点,修改数据, 删除节点,结束
如果创建节点失败,就需要等待节点的释放
分布式锁,如果你有多个机器在访问同一个共享资源,
那么这个时候,如果你需要加个锁,让多个分布式的机器在访问共享资源的时候串行起来
那么这个时候,那个锁,多个不同机器上的服务共享的锁,就是分布式锁
分布式锁当然有很多种不同的实现方案,redis分布式锁,zookeeper分布式锁
二阶段提交
分布式锁服务:DistributedLock,根据各自的业务创建分布式锁;
价格精度问题
Price Int64 没有小数,通过专门字段表示小数位数
Decimal Int 小数位数
rpc 负载均衡方案 https://www.cnblogs.com/yjmyzz/p/rpc-load-balance-design.html
易百教程 : https://www.yiibai.com/go/golang-sha1-hashes.html
Kafka入门教程 Golang实现Kafka消息发送、接收 : https://blog.csdn.net/tflasd1157/article/details/81985722
go专门提供了一个神器,go tool trace
DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,
用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合
分布式是按功能加机器,集群是按瓶颈加机器
微服务是分布式系统的一种
分布式锁比较复杂,分阶段提交相对来说比较容易
这种自旋的机制不适合client服务器较多的情况
比如上千台,一次只有一台服务器抢到锁,其他都在不停重试,这种行为跟DDoS没区别
标准的无锁队列是没有锁的,因此无法等待就绪,队列满插不进去,数据就丢了
阻塞队列使用锁解决了上面的问题,但是又牺牲了性能
自旋锁(spinlock)和互斥锁(mutex)
大端 小端和网络字节序说明
网络版贪吃蛇 : https://github.com/maq128/gosnake
可以考虑以后把zookeeper换成etcd,zk的写延迟过高,qps上不去
浅谈数据库并发控制 - 锁和 MVCC : https://draveness.me/database-concurrency-control
- 111
- 日记
- 工具11
- 20200723
- 20200724
- 20201019
- 更多阅读
- 回收站
- kafka 消费失败和重复消费问题
- ABC
- 20200127
- MySQL从删库到跑路
- PHP从放弃到入门
- help
- 我的日志
- 博客验证码
- 项目版本管理
- C++ Json序列化
- 20190425
- 图片
- 关键字
- 链接
- 分布式, 分库, 分表
- 游戏开发
- goLand 编辑器
- 区块链
- A-计划
- B-计划
- gin框架
- 锁
- 力扣-答题
- 数据库
- mysql 索引优化
- 挖矿
- 分布式锁
- 跨域问题
- kafka
- 长连接
- 面向对象 面向过程 函数式编程
- websocket
- 其它问题
- zeroMq
- 工具
- linux - systemctl
- gitbook 部署
- Ubantu 基础配置
- 备注服务
- 更换身份证(身份证到期了)
- 资源05
- 备注服务2
- 分布式
- TODO
- 资料准备
- 文章阅读
- mysql 高可用
- 日志1
- 日记2 - 区块链
- centos7 系统服务脚本
- copy_service 服务替换
- go kafka 孤人自嘲 - 偏移量 - kafka
- go vendor
- golang 显示git工具栏
- 图片资源
- 资讯01
- 资源01
- 资源02
- 资源03-数据库
- 资源04
- php历史数据
- golang 数据
- 文件1
- 文件2
- 文件3
- 文件4
- 文件5
- 文件6
- 文件7
- 文件8
- 文件9
- 文件10
- Flutter
- 管理后台系统
- 重装系统