合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法 加了调度点会影响for循环的性能 至于为什么编译器不加调度点,这个go team在github上讨论过的 而且大部分情况下,项目代码里不可能出现那么简单的for循环 简单到没有任何函数调用的for循环,才有可能卡死调度器 如何定位 golang 进程 hang 死的 bug : https://studygolang.com/articles/11880 分别打印 Go的调度 runtime 大规模Go项目几乎必踏的几个大坑 - 实例分享 https://my.oschina.net/u/4062427/blog/3018969 索引优化: http://hedengcheng.com/?p=577 TCP:是一种面向连接的、可靠的、基于字节流的传输层通信协议 UTP:无连接,不可靠的数据报协议 left join(显示左表所有数据, 左表的每一条数据与右表匹配的条数) redis: 字符串,列表,哈希, 集合, 有序集合 memcahe: 可以缓存图片和视频, 数组时保存在内存的, 断电后消息 redis:支持持久化和复杂的数据结构 elasticsearch 分布式多用户能力的全文搜索引擎 数据库分库分表,提高数据查询,插入效率 我这边用两个队列实现一个降级开关,一个是go的chan作为本地消息队列,另一个是第三方消息队列nsq。 如果一个操作进来,能进入本地的消息队列,说明当前的数据库和系统负载量不是很高,能保证正常执行 如果入队失败,说明前面的操作没完成,被阻塞起来了。那就转到nsq里去处理 负载均衡的优化,之前是用轮询的策略,后面改成hash. 轮询的话比较均匀,但是需要将缓存放在第三方,比如redis,memcahe 。像redis,memcahe的话可能还用到分布式锁来确保数据的一致性 如果改成hash的话, 我就可以把缓存放到本机map map不是线程安全,之前参考网上,用了sync里的读写锁对map里操作做了一层封装, 后面1.9的时候,sync包提高了一个安全的并发字典,基于原子锁操作,锁的粒度更新,效能更好 map[时间戳]map[key]value 开一个协程去检查当前时间和map里的第一个时间戳 节省资源,没有主备模式,采用一致性hash算法, 将它分布到一个范围的机器 比较重要的数据采用冷备份(移到一个备份表里去,减少主表体积) 删除用户不必要的记录 普通索引,唯一索引,主键索引,组合索引,全文索引 数据库分库分表, 减少表操作, 确立表处理优先级 同步创建异步修改 更新缓存, 丢到一个队列里, 提示响应速度和吞吐量 降级开关 1.轮询 : 缓存放在第三方 2.hash(ip/ 用户id) : 缓存放在本机 (速度快1.5倍左右) 一致性hash算法 内存碎片:在申请内存空间的时候,不会分配刚好的空间, 可能有多一点 cgo 十亿, 百亿级别, 请求成功 -> 本地消息队列 -> 结束 请求失败 -> kfak ->结束 协程池 按时间范围分表 非事务性么 直接塞 es 或者要做etl仓库么进hadoop es 数据导入慢 mysql + keepalived 双主热备 Hadoop(三) 大数据离线计算与实时计算 : https://blog.csdn.net/qwlzxx/article/details/71218125