搬砖使我快乐!
码龄11年
关注
提问 私信
  • 博客:55,816
    社区:503
    问答:2,376
    58,695
    总访问量
  • 51
    原创
  • 751,800
    排名
  • 11
    粉丝
  • 0
    铁粉

个人简介:热爱技术,热爱生活.

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2013-11-29
博客简介:

小小李的博客

查看详细资料
个人成就
  • 获得27次点赞
  • 内容获得6次评论
  • 获得84次收藏
创作历程
  • 3篇
    2022年
  • 18篇
    2021年
  • 34篇
    2020年
  • 3篇
    2017年
  • 1篇
    2016年
成就勋章
TA的专栏
  • kafka
  • ebpf
  • es
  • golang
    9篇
  • mysql
    5篇
  • k8s docker
    7篇
  • redis
    6篇
  • 操作系统基础
    8篇
  • serviceMesh
    6篇
  • 分布式协议与算法
    5篇
  • 源码-sofamosn
    4篇
  • 源码-zk
  • 源码-grpc
  • 源码-netty
    2篇
  • 源码-etcd
    2篇
  • 源码-jdk
    2篇
兴趣领域 设置
  • 编程语言
    javagolang
  • 云原生
    kubernetes云原生
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

346人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

[golang]defer 别再记各种case了

golang defer简单理解,别再记各种case了
原创
发布博客 2022.08.04 ·
245 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

[golang] 零值和nil

golang 零值 nil
原创
发布博客 2022.08.03 ·
618 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[golang]channel源码

golang channel源码
原创
发布博客 2022.08.03 ·
343 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[golang]runtime!!!!

本文转自:https://zhuanlan.zhihu.com/p/95056679万字长文深入浅出 Golang Runtime腾讯技术工程​已认证的官方帐号已关注718 人赞同了该文章介绍本文主要内容如下:Golang Runtime 是个什么? Golang Runtime 的发展历程, 每个版本的改进 Go 调度: 协程结构体, 上下文切换, 调度队列, 大致调度流程, 同步执行流又不阻塞线程的网络实现等 Go 内存: 内存结构, mspan 结构, 全.
转载
发布博客 2021.01.31 ·
483 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

[jvm]gc相关

唠唠叨叨今天的肝货来了,作者已经肝吐血了,看书查资料整理了万字的垃圾回收相关知识,虽然很长,但是看完相信你一定会有很大的收货,诶,周末又没有了,心好痛。「面试必问」的垃圾回收,我们直接进入正题,读完你会学到以下的所有知识,「包括但不限于」:垃圾是怎么找到的?OopMap有什么作用?为什么需要STW?记忆集有什么作用?常用的7种垃圾回收器都有哪些??三色标记算法?CMS为什么会产生碎片化?G1居然会引起Full GC?......垃圾对象是怎么找到的?引用计
转载
发布博客 2021.01.29 ·
212 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

[redis]面试准备

1.不能再清晰的图了2.每一层涉及的知识点高性能主线:1.线程模型: 单reactor单线程. 这里只是说处理请求. 其他rdb/aof/主从复制等是起新的进程的.2.数据结构:内存层:每个数据结构的特点.跳表是什么,以及数据结构的时间复杂度存储层:aof:rdb:...
原创
发布博客 2021.01.29 ·
126 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[redis]cluster模式详解

问题.当数据量增加时,是需要横向扩展还是纵向扩展纵向就是增加内存,磁盘. 简单暴力.但是存在一些问题1.如果用rdb持久化,那么内存也会需要很多,fork时阻塞时间也会变长2.内存扩展受限.扩展1T内存因此redis3.0 推出了集群模式1.将数据分配在16384个槽里.数据通过hash+取模,计算key应该存放在哪个槽里.2.集群中每个实例都分配一部分,这个既可以平均分配,也可以手动指定,但是,每个槽必须都得分配完,不然无法工作.客户端如何知道自己要获取的key在哪..
原创
发布博客 2021.01.29 ·
646 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

[redis]哨兵原理解析.

本文主要学习https://time.geekbang.org/column/article/275337在 Redis 主从集群中,哨兵机制是实现主从库自动切换的关键机制,它有效地解决了主从复制模式下故障转移的这三个问题。主库真的挂了吗? 该选择哪个从库作为主库? 怎么把新主库的相关信息通知给从库和客户端呢?哨兵其实就是一个运行在特殊模式下的 Redis 进程,主从库实例运行的同时,它也在运行。哨兵主要负责的就是三个任务:监控、选主(选择主库)和通知流程:1.哨兵运行时,会向主从
原创
发布博客 2021.01.29 ·
197 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[serviceMesh]腾讯云对网络的优化,ebpf

转载自https://zhuanlan.zhihu.com/p/196743652深入了解服务网格数据平面性能和调优在腾讯,已经有很多产品已使用或者正在尝试使用istio来作为其微服务治理的基础平台。不过在使用istio时,也有一些对通信性能要求较高的业务会对istio的性能有一些担忧。由于envoy sidecar的引入,使两个微服务之间的通信路径变长,导致服务延时受到了一些影响,istio社区一直以来也有这方面的声音。基于这类抱怨,我们希望能够对这一通信过程进行优化,以更好的满足更多客户的.
转载
发布博客 2021.01.29 ·
1005 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

[mosn源码]路由逻辑 route

1.配置{ "servers": [ { "default_log_level": "DEBUG", "default_log_path": "stdout", "routers": [ { "router_config_name": "server_router", "virtual_hosts": [ { "name": "serverHost
原创
发布博客 2021.01.14 ·
292 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[sofamosn源码]健康检查源码

1.配置"cluster_manager": { "clusters": [ { "name": "serverCluster", "type": "SIMPLE", "lb_type": "LB_RANDOM", "max_request_per_conn": 1024, "conn_buffer_limit_bytes": 32768, "hosts": [ {"address":"127.0.
原创
发布博客 2021.01.14 ·
512 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[分布式协议]CAP的理解 五分钟深入理解

首先cap有两版,第一版是大家面试时候经常说的,第二版我觉得才是最准确的.参考首先cap是针对的数据读写,不是所有功能,例如zk的选举.zk的数据复制都不是.一致性.第一版:All nodes see the same data at the same time.所有节点在同一时刻都能看到相同的数据.第二版:A read is guaranteed to return the most recent write for a given client.对某个指定的客户端来说,读操
原创
发布博客 2021.01.13 ·
835 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[serviceMesh]iptables,cilium,ebpf学习

serviceMeshA Service Mesh is adedicated infrastructure layerfor handling service-to-service communication. It’s responsible for the reliable delivery of requests through the complex topology of services that comprise a modern, cloud native application..
原创
发布博客 2021.01.13 ·
922 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

[k8s]从BGP到Calico

之前文章,flannel的udp和vxlan模型.这两个有个共同特征.就是用户的容器都连接在 docker0 网桥上。而网络插件则在宿主机上创建了一个特殊的设备(UDP 模式创建的是 TUN 设备,VXLAN 模式创建的则是 VTEP 设备),docker0 与这个设备之间,通过 IP 转发(路由表)进行协作.网络插件真正要做的事情,则是通过某种方法,把不同宿主机上的特殊设备连通,从而达到容器跨主机通信的目的。1.host-gw模型当需要从容器1请求到容器2时.$ ip rout.
原创
发布博客 2021.01.13 ·
1265 阅读 ·
3 点赞 ·
0 评论 ·
4 收藏

[serviceMesh]陌陌实践

数据面: 使用java语言自研控制面:自研1.选型1.对接大量的内部系统,如果使用istio需要二次开发很多东西.2.istio重度依赖k8s,我们看到不管是阿里还是微博等,都是去除依赖了3.envoy使用c++开发.这个还是有很大成本的.所以基于自研4.当时istio也是不太稳定的状态. pilot性能.每次请求都要请求mix进程check2.关键点1.部署方式同一个pod,不同的container中2.流量接入没有采用iptables方式,而是sdk升
原创
发布博客 2021.01.13 ·
385 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

[golang]调度原理

协程的调度分为抢占式和调度式抢占式就是说.如果一个协程长期占用着P,那别的协程还过不过.这时候就会抢占P.runtime2.go
原创
发布博客 2021.01.13 ·
720 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

[golang]内存管理(涉及tcmalloc,gc等)

1.操作系统存储模型不赘述了,大学都学过.cpu寄存器-->L1/L2/L3缓存-->内存-->磁盘物理内存和虚拟内存.我们程序申请的内存都是虚拟内存,虚拟内存和物理内存通过页表进行关联. 而实际内存的分配也不是你申请了虚拟内存就会分配物理内存的,而是真正要用的时候,发送缺页异常,才会分配.虚拟内存的布局用户空间和内核空间内核空间:每个进程都有内核空间,但是他们映射的同一个物理段.内核空间虽然用户进程也知道,但是用不了,因为那是老大的空间,小弟不能乱用用
原创
发布博客 2021.01.13 ·
738 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

[golang]Writing a Memory Allocator

转载https://zhuanlan.zhihu.com/p/51056407本篇文章讲述了如何基于C实现一个简单的内存分配器。这是一篇入门级别的文章,不会涉及过深的内存分配算法及其相关实现。我们的目的是实现一个可以正常工作的内存分配器,但是它的性能和内存的利用率都不是最优的。我们将会实现malloc(),calloc(),realoc(),free()四个函数。翻译自:Memory Allocators 101 - Write a simple memory allocator1...
转载
发布博客 2021.01.12 ·
277 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

[golang]sync.Pool源码(PMG,false sharing,victim cache,环形链表)

1.为什么要有sync.Pool创建对象需要申请内存,例如你写了一个网关服务,每个请求过来都创建一个request对象.内存就会越申请越多,当不够的时候,还要gc用来释放不用的对象.因此,pool就是用来解决频繁申请内存和释放内存(gc)的问题. 注意gc的时候会stw,因此我们要写优雅的程序,减少gc的发生2.pool流程pool对外只暴露了两个方法以及一个参数设置Newget:获取池子中的对象,如果池子为空,就调用Newput:把使用过的对象归还池子.new:创.
原创
发布博客 2021.01.08 ·
491 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

[golang]fasthttp源码

一.核心逻辑func (s *Server) ListenAndServe(addr string) error { //1.监听端口 ln, err := net.Listen("tcp4", addr) if tcpln, ok := ln.(*net.TCPListener); ok { return s.Serve(tcpKeepaliveListener{ TCPListener: tcpln, keepalive: s.TCPKeepa.
原创
发布博客 2021.01.07 ·
512 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多