- 博客(28)
- 收藏
- 关注
原创 什么是CDN?
CDN(Content Delivery Network,内容分发网络)是一种通过一系列分布在不同地理位置的服务器来加速网站或应用的内容加载速度的技术。它的基本原理是将网站或应用的静态内容(如图片、视频、JavaScript 文件、CSS 文件等)缓存到靠近用户的服务器上,当用户访问网站时,CDN 会根据用户的地理位置,从最近的服务器提供内容,从而提高访问速度,减少延迟。
2025-03-12 19:25:24
469
原创 CI/CD
CI/CD(持续集成与持续交付/部署)是一种软件开发实践,用于提高软件开发的效率和质量,尤其是在开发团队规模较大时。它通过自动化的方式,减少人工干预,使得开发过程更加高效和可靠。
2025-03-12 18:13:27
705
原创 Grafana Loki
Grafana Loki 是一个高效、易于扩展的日志聚合工具,旨在简化日志存储和查询的流程。它与 Prometheus 和 Grafana 紧密集成,适用于云原生和微服务架构。通过标签化的设计,Loki 能高效地索引和查询日志数据,为开发者和运维人员提供了强大的日志分析能力。
2025-03-09 17:20:04
1321
原创 OpenTelemetry
是一个开源的可观测性框架,旨在为分布式系统提供标准化的工具和接口,用于生成、收集和管理遥测数据(Telemetry Data),包括日志(Logs)指标(Metrics)和追踪(Traces)。它是CNCF(云原生计算基金会)的孵化项目,融合了早期的 OpenTracing 和 OpenCensus 两大标准,成为云原生领域可观测性的事实标准。
2025-03-07 20:41:46
1237
原创 Grafana
Grafana 是一个功能强大且灵活的数据可视化和监控工具,广泛应用于系统监控、应用性能分析、日志管理和业务数据可视化等领域。它的多数据源支持、丰富的可视化功能和插件生态系统,使其成为运维、开发和数据分析师的首选工具之一。无论是小型团队还是大型企业,Grafana 都能提供高效的解决方案。
2025-03-07 19:59:01
1078
原创 普罗米修斯链路
普罗米修斯链路”是指在一个分布式系统中,结合 Prometheus 和链路追踪技术来实现系统的综合监控。Prometheus 提供了关于系统状态和性能的关键指标,而链路追踪工具帮助开发者理解跨服务的请求流和瓶颈。二者结合使用,可以更高效地监控、分析和优化复杂的微服务系统。
2025-03-05 19:45:20
548
原创 可靠传输的三种实现方式
发送方在设定的超时时间内,若未收到某个数据包的ACK,或收到的ACK序号小于已发送数据包的序号,便会从出错的数据包开始,重传所有未被确认的数据包。- 对传输效率要求高且资源充足的场景:如实时高清视频流传输,既需要高效传输,又有足够的资源(如内存用于缓冲区)来支持协议运行。- 信道错误率较低的网络:在这种网络环境下,数据包出错的概率较小,回退N帧协议能充分发挥其高效传输的优势。- 发送方根据接收方的确认信息,仅重传丢失或出错的数据包,而不是像回退N帧协议那样重传多个数据包。
2025-03-04 11:25:59
309
原创 go易错点
在 Go 中,当你声明一个指针变量时,它并不会自动被初始化,默认值是。是函数的返回值,它的类型是。因此,必须显式地创建一个。,这会导致程序运行时出现。(空指针解引用)错误。
2025-02-18 02:51:03
300
原创 Consul
Consul 的核心原理围绕服务发现健康检查KV 存储和多数据中心支持展开,通过Gossip 协议和Raft 协议实现分布式一致性和高可用性。其设计目标是提供一个功能全面、易于扩展的分布式系统基础设施工具。
2025-02-17 01:25:57
660
原创 身份验证和会话管理的机制Sessions、JWT 和 PASETO
Sessions适用于传统的单体应用程序,但在分布式环境中可能需要复杂的会话管理。JWT提供了更好的可扩展性和无状态认证,适用于微服务架构和跨域身份验证,但需要小心密钥管理和签名的安全性。PASETO作为一种更安全的替代方案,避免了 JWT 的一些潜在安全问题,适用于需要高安全性和简洁设计的场景。
2025-02-12 15:05:34
595
原创 go小知识
声明了一个空的map,但没有初始化,因此其值为nil,需要手动初始化才能使用。声明并初始化了一个空的map,使得resp变为一个空的、可用的map。通常来说,如果你打算使用该map,建议使用make来初始化它,确保它不是nil。
2025-02-12 00:59:59
384
1
原创 Font Awesome和Bootstrap
是一个图标库,提供了大量的矢量图标,可以用于增强网页和应用程序的视觉效果,适合图标展示的场景。Bootstrap是一个前端开发框架,提供了丰富的组件、响应式布局、网格系统和 JavaScript 插件,用于快速构建网页和应用。两者常常一起使用,Font Awesome 提供图标,Bootstrap 提供布局和组件,结合使用能大大提高开发效率。
2025-02-10 18:32:09
468
原创 HTTP状态码
HTTP 状态码是客户端和服务器之间通信的重要部分。理解状态码的含义有助于快速定位和解决问题。在实际开发中,应根据业务需求合理使用状态码,确保接口的语义化和一致性。
2025-02-09 18:04:52
870
原创 proto和thritf
适合需要高效二进制序列化、跨语言支持和 RPC 功能的场景。特别适用于 Google 基础设施和大规模微服务架构,数据量大的时候性能表现非常好。
2025-02-09 00:55:46
810
原创 Kubernetes(K8s)
Kubernetes通过容器化技术和一系列强大的功能,极大地简化了应用的管理和部署过程。它帮助开发者和运维人员在复杂的微服务架构中实现高效的资源调度、扩展和自愈能力,使得大规模分布式系统的管理变得更加容易。
2025-02-09 00:45:01
1047
原创 CAP理论
CAP 定理告诉我们在一个分布式系统中,我们无法同时保证一致性、可用性和分区容错性。在微服务架构中,根据不同的需求,我们会根据一致性、可用性和分区容错性来权衡选择最合适的方案。
2025-02-07 22:22:31
656
原创 钩子函数(Hook Function)
钩子函数(也叫回调函数)是一种编程方式,指的是在特定事件或操作发生时,程序自动调用的函数。换句话说,钩子函数是在某个特定时刻由系统或框架触发执行的预定义函数,通常用于扩展系统的行为或执行特定操作。
2025-02-07 21:55:50
355
原创 异步日志(Asynchronous Logging)
异步日志是指日志的记录和输出过程不会直接影响到程序的运行。与同步日志不同,异步日志将日志数据放入一个缓冲区,由后台线程异步地将这些日志写入文件或者其他输出设备。
2025-02-07 21:53:09
382
原创 RPC和HTTP的区别
特性RPCHTTP协议二进制协议(如 gRPC, Thrift)文本协议(如 HTTP/1.1, HTTP/2)应用场景服务间通信(微服务)客户端与服务器通信(Web 服务)数据格式二进制格式(如 Protobuf)文本格式(如 JSON、HTML)性能高效、低延迟,适合高吞吐量服务较低,适合低频次请求或跨平台通信易用性需要生成代码,学习曲线较高简单易用,广泛支持请求方式方法调用,支持同步/异步请求-响应模式,基于 HTTP 方法。
2025-01-24 23:32:00
832
原创 SQL基础学习
case [expr] when [vall] then [res1]...else[default] end 如果expr的值等于vall,返回res1,否则返回default。eg:select * from emp where(salary,managerid)=(select salary,managerid from emp where name=‘张愿意’);
2024-06-02 19:37:41
644
原创 学习记录周报3
类似switch语句,但是select语句会随机执行一个可执行的case,如果没有case可以执行,要看是否有default,如果有就执行defualt,否则久进入阻塞,直到有case可以执行。通道是goroutine之间的连接,所以通道的发送和接收必须在不同goroutine中。wg.Add(),设置等待组中要执行的子goroutine的数量。定向通道:chan
2024-02-27 23:19:16
389
原创 学习记录周报2
D:对于不同包下,如果不存在依赖。O_EXCL int = syscall.0_EXCL// 和O_CREATE配合使用,文件必须不存在。3.init()函数可以定义在任意的包里,可以多个,main()只能在main包下,而且只有一个。O_TRUNC int = syscall.0_TRUNC //如果可能,打开时清空文件。O_WRONLY int = syscall.O_WRONLY //只写模式打开文件。O_SYNC int = syscall.0_SYNC //打开文件用于同步I/0。
2024-02-26 07:43:40
379
1
原创 学习记录周报
v原样输出,%T打印类型,%tbool类型,%s字符串,%f浮点,%d10进制整数,%b二进制整数,%o8进制,%x/%X16进制,%x:0~9,a~f,%X:0~9,A~F,%c字符,%p地址。指向一个底层数组,向切片中添加数据时,如果没超过容量,直接添加,如果超过容量,自动成倍扩容,一旦扩容,重新指向一个新的底层数组,引用类型,浅拷贝。一个外层函数中,有内层函数,该内层函数中,会操作外层函数的局部变量(外层函数中的参数,或者外层函数中直接定义的变量)
2024-01-26 18:01:49
939
2
空空如也
为什么只有13分 还差两分
2023-11-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人