联合会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
longbozhan
搭轮子,玩开源组件,谈架构,日常DIY小玩意
博客园
首页
新随笔
联系
订阅
管理
随笔 - 20 文章 - 0 评论 - 12 阅读 -
15563
[置顶]
实现golang io.Writer支持按照天为单位分割日志
摘要: golang中的日志不支持按照天分割,很多开源的日志包都是只支持按照文件大小分割日志,不太利于生产环境中的使用。因此我实现了timewriter,支持: 实现按照天为单位分割日志,可以完美支持golang的log、grpclog、gorm。 旧日志用gz格式压缩。 日志文件名字的前缀默认是进程名。
阅读全文
posted @ 2018-12-28 16:33 bytesmover
阅读(1945)
评论(0)
推荐(1)
编辑
2024年3月11日
基于redis做分布式锁
摘要: 1. setnx其实是set key nx,做分布式锁的问题是担心获取到锁的那个线程还没执行del得时候挂了,key会永久存在,可以给key加上expire,其实就是setnx key ex xxx nx 但如何确定expire多大呢?没法确定,所以一般在expire之前做一个续期操作,用独立线程做
阅读全文
posted @ 2024-03-11 16:29 bytesmover
阅读(6)
评论(0)
推荐(0)
编辑
2024年2月29日
golang GMP调度模型
摘要: https://zhuanlan.zhihu.com/p/554812539?utm_id=0 1. 1:1:会有创建和销毁线程的开销 2. 1:N:饿死,或者一个阻塞后面的都不能执行 3. M:N: 1)word stealing: M偷其他M的P队列中的G 2)hand off:M阻塞了,要让出
阅读全文
posted @ 2024-02-29 15:44 bytesmover
阅读(9)
评论(0)
推荐(0)
编辑
2024年2月20日
限流算法
摘要: 固定时间窗 比如1秒钟限制访问100次,则用1秒作为时间窗,用个计数器,下个时间窗到了就把计数器置0;实现方式可以用一个线程定时1秒钟刷一次,但在某些系统中,可能会有很多个qps拦截器,这样会导致线程数很多,所以也可以改成记录上次时间窗的时间点,每次计数器+1之前算一下时间窗是否超过1秒了。 滑动窗
阅读全文
posted @ 2024-02-20 20:12 bytesmover
阅读(10)
评论(0)
推荐(0)
编辑
用C++实现string类
摘要: 今天用C++实现了一个string类,包括构造函数、拷贝构造、赋值构造、流输出、移动构造、重载+号, 发现很多细节都没有考虑到,细节都在注释中,贴在这里作为备忘吧。 1 #include <iostream> 2 #include <cstring> 3 4 using namespace std;
阅读全文
posted @ 2024-02-20 12:36 bytesmover
阅读(10)
评论(0)
推荐(0)
编辑
2022年3月25日
架构设计上的实践总结
摘要: 解决跨区数据一致问题,如果数据库不支持同步,则在业务层做双读或者双写,双读和双写的使用场景不同 灌库在线数据库,为了减少在线压力,尽量的把压力转移到离线数据库来(例如hbase支持大批量的scan) 对于读和写的权衡,如果是读多写少,则需要保证读优先,写尽量不要影响读;如果是读少写多,则要尽量避免写
阅读全文
posted @ 2022-03-25 11:47 bytesmover
阅读(116)
评论(0)
推荐(0)
编辑
2022年3月17日
mysql索引整理
摘要: 页结构 B+树结构 参考 https://www.cnblogs.com/chanmufeng/p/15992676.html https://www.cnblogs.com/chanmufeng/p/16012145.html
阅读全文
posted @ 2022-03-17 12:11 bytesmover
阅读(27)
评论(0)
推荐(0)
编辑
2022年3月16日
异地多活的数据一致性简单设计
摘要: 概述 异地多活,往往意味着夸机房读写延迟的增加,也就增加了读写失败的可能性,最终导致数据的延迟更长,同时,这种场景下也会影响在线系统的性能和时延。本文从数据低延迟、开发复杂度上考虑,总结了两种处理方式,分别是双写和双读,从而保证数据的最终一致性。对于异地多活的业务场景,往往也不需要保证强一致性,允许
阅读全文
posted @ 2022-03-16 15:02 bytesmover
阅读(1609)
评论(1)
推荐(0)
编辑
2022年3月11日
互联网广告竞价逻辑
摘要: 博弈的三方 广告主:希望每一次的展示或者点击付出最低的代价 平台方:充当了中间方,用流量来换广告,同时也要对广告做审核,避免一些不合法律道德的广告进入 流量方:一般是具体的媒体,例如抖音、百度搜索,希望自己的流量能带来最大的收益,同时也要把控各个广告展示的频率和场合 竞价 对于某个特定的媒体的某个广
阅读全文
posted @ 2022-03-11 21:51 bytesmover
阅读(569)
评论(0)
推荐(0)
编辑
2022年1月9日
C++高并发场景下读多写少的优化方案
摘要: C++高并发场景下读多写少的优化方案 概述 一谈到高并发的优化方案,往往能想到模块水平拆分、数据库读写分离、分库分表,加缓存、加mq等,这些都是从系统架构上解决。单模块作为系统的组成单元,其性能好坏也能很大的影响整体性能,本文从单模块下读多写少的场景出发,探讨其解决方案,以其更好的实现高并发。 不同
阅读全文
posted @ 2022-01-09 02:59 bytesmover
阅读(1990)
评论(11)
推荐(2)
编辑
2021年12月27日
基于内存的关系数据库memsql初探
摘要: 背景 广告系统中,算法模型预估需要根据广告的实时转化统计结果,才能做出更精准的预估;同时,支持多维度聚合查询(例如按照广告各个不同层级维度,按照时间不同粒度的维度),并跨大区合并。一开始的版本是基于mysql,但由于统计数据更新太频繁,异步定期从mysql捞统计结果,导致mysql经常出现活跃连接数
阅读全文
posted @ 2021-12-27 21:11 bytesmover
阅读(2026)
评论(0)
推荐(0)
编辑
下一页
版权声明:除非特别声明,本站内所有文章,欢迎转载,但转载文章之后必须在文章页面开头注明出处,否则保留追究法律责任的权利。
昵称:
bytesmover
园龄:
7年11个月
粉丝:
2
关注:
2
<
2025年3月
>
日
一
二
三
四
五
六
23
24
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
最新随笔
1.基于redis做分布式锁
2.golang GMP调度模型
3.限流算法
4.用C++实现string类
5.架构设计上的实践总结
6.mysql索引整理
7.异地多活的数据一致性简单设计
8.互联网广告竞价逻辑
9.C++高并发场景下读多写少的优化方案
10.基于内存的关系数据库memsql初探
我的标签
C++
(4)
mysql
(2)
windows小工具
(1)
gtest
(1)
gdb
(1)
exception
(1)
enml
(1)
coredump
(1)
主从同步
(1)
印象笔记
(1)
更多
积分与排名
积分 - 14891
排名 - 94242
随笔分类
(23)
C/C++(4)
go(3)
java(1)
mysql(2)
Python(3)
测试(1)
分布式技术(2)
高并发(2)
互联网广告(1)
架构设计(2)
数据库(1)
小工具(1)
随笔档案
(20)
2024年3月(1)
2024年2月(3)
2022年3月(4)
2022年1月(1)
2021年12月(2)
2021年11月(3)
2018年12月(1)
2018年9月(1)
2018年8月(1)
2018年6月(2)
2017年5月(1)
阅读排行榜
1. C++单元测试框架gtest使用(4131)
2. 基于内存的关系数据库memsql初探(2026)
3. C++高并发场景下读多写少的优化方案(1990)
4. 实现golang io.Writer支持按照天为单位分割日志(1945)
5. 异地多活的数据一致性简单设计(1609)
评论排行榜
1. C++高并发场景下读多写少的优化方案(11)
2. 异地多活的数据一致性简单设计(1)
推荐排行榜
1. C++高并发场景下读多写少的优化方案(2)
2. C++单元测试框架gtest使用(1)
3. 实现golang io.Writer支持按照天为单位分割日志(1)
最新评论
1. Re:异地多活的数据一致性简单设计
“如果对于数据库的操作是数据库级别的原子性操作,例如redis的incr命令,就可以避免写写冲突。”,但一样会有不一致的情况,例如执行因为网络超时重试了,但服务端如果在第一次执行成功了,这时候会导致执...
--longbozhan
2. Re:C++高并发场景下读多写少的优化方案
深度好文,厉害厉害,学到了,一定持续关注!
--蕙质兰心_zhong
3. Re:C++高并发场景下读多写少的优化方案
@longbozhan 我没有试过,只是看别人这么说:...
--Fun_with_Words
4. Re:C++高并发场景下读多写少的优化方案
@DarthVagen 会有这个时效性的问题,所以才强调的是读优先的场景...
--longbozhan
5. Re:C++高并发场景下读多写少的优化方案
@longbozhan 也就是前一个写线程未完成的时候,新的写线程只能等待。这样做是不是丧失了消息更新的实时性,读线程并不能总是读到最新的内容...
--DarthVagen
点击右上角即可分享