暂时未有相关云产品技术能力~
暂无个人介绍
本次记录[利用etcd选主sdk实践master/slave故障转移], 并利用etcdctl客户端验证选主sdk的工作原理。
本次循环不该打印时,让线程代码自旋;等待另外的线程递增而引起本线程再次进入业务代码。
一直想比较Actor模型与golang的CSP模型,经过一段时间的实战记录了本文。
这里特意指出网络IO操作不会走上图的模型,否则要分配的系统线程M依然很多,程序很快就爆满了。这时G会和逻辑处理器P分离,并移动到netpoller,一旦网络轮询器通知网络读/写就绪,对应G就会重新分配到逻辑器处理器上来完成操作, 在此期间原系统线程M可以去做别的G。
http是我们最常见的客户端/服务端传输协议,在golang中,默认的net/http包有一些坑位,需要调整以获得更加性能。 在golang程序中,我也遇到因为不合理使用 http client导致的程序崩溃问题。
最近优化了一版程序:用到了golang的优雅退出机制。
最近部署的web程序,服务器上出现不少time_wait的tcp连接状态,占用了tcp端口,花费几天时间排查。
1.ioutil.ReadAll 读取大的response.body的风险:性能差且有内存泄漏的风险。 2.隐式内存泄漏:对于高并发、长时间运行的web程序,不及时释放内存最终也会导致内存耗尽。 3.json 序列化是兵家必争之地, json-iterator 是兼容标准encode/json api 用法的高性能序列化器。 4.pprof 内存诊断的姿势 & 调试指标的意义。
记一次go httpclient [读取响应Body超时]的排查过程。 今年度解锁的第一个技能
我自认为这篇生产实践是对大前端、 容器化、CI/CD的得意之作。
MemoryCache插值的实现过程很奇葩 尽量使用带明确大括号范围的using语法,C#8.0推出的不带大括号的using语法糖的作用时刻在函数末尾,会带来误导。
1.对常规html表单上传文件的功能,做协议级分析。 2.根据分析结果,HttpClient使用同样的姿势发送文件: 使用multipart/form-data(多部分表单媒体类型)发起上传请求。
今天给大家分享一个干货编程小技巧,上至架构师、下至开发者、运维男、QA, 得此利器,事半功倍。
目前所有的Http网络库都默认开启了HTTP Keep-Alive,今天我们从底层TCP连接和排障角度撕碎HTTP持久连接。
gRPCurl[1]是一个与gRPC服务器交互的命令行工具,可认为是gRPC的curl工具。
在基础架构部浸润了半年,有一些认知刷新想和童靴们交代一下, 不一定全面,仅代表此时的认知, 也欢迎筒靴们提出看法。
知道cookie hostonly属性的请举手🧐
本文基本没啥技能点, 单纯记录在Devops路上的一个小插曲,前人栽树后人乘凉
前天倒腾了一份[SignalR在react/go技术栈的实践], 步骤和思路大部分是外围框架的应用, 今天趁热打铁, 给一个我总结的SignalR避坑指南。
本文记录SignalR在react/golang 技术栈的生产小实践。
axios是一个基于 promise 的网络请求库,可以用于浏览器和 node.js;promise 类似于C#的Task async/await机制,以同步的代码风格编写异步代码; 而axios拦截器就类似于 C# HttpClient自定义message Handler, 给你一个请求/响应在被handler之前做一些自定义动作的机会。
你已经使用Create React App[1] 脚手架搭建了React应用,现在该部署了。
最近全权负责了一个前后端分离的web项目,前端使用create-react-app[1], 后端使用golang做的api服务。
打算用后端程序猿的视角记录一些{大前端}的知识快闪,也算是帮助读者构建完整的全栈技能体系。
本文是Jmeter操作笔记, 本文是Jmeter操作笔记, 本文是Jmeter操作笔记
本文依旧是#线程安全#、#锁# 这两个老生常谈的概念的延续, 我的知识体系也是在不断迭代更新,不断精炼。
同程艺龙基础架构部推出的数据获取组件DAL.Connection,我们要做到在切换连接配置时清空数据库连接池, 这就涉及到切换连接的时候,触发变更通知。
这是一个托管的值类型,表示array的一个片断, 在用做websocket接收数据的载体时我发现每次值传递后, 这个ArraySegment<byte>貌似发生了变化。这勾起了我的探究欲。
早先提及了端点路由app.UseEndpoints, 端点路由强调的是端点和路由,其核心目的是将请求落地点与路由寻址方式解耦。
状态机是一种行为设计模式,它允许对象在其内部状态改变时改变其行为。看起来好像对象改变了它的类。
一般我们的项目中会使用1到2个数据库连接配置,同程艺龙的数据库连接配置被收拢到统一的配置中心,由DBA统一维护,业务方通过某个配置字符串拿到的是开箱即用的Connection对象。
请大家仔细对比结论和下图,脱离场景和硬件环境谈性能就是耍流氓,理解不同并发模型的风格和能力是关键, 针对场景和未来的拓展性、可维护性、可操作性做技术选型 。
今天探讨下我对.NET并行编程库Task Parallel Library的理解,开足马力,准备压榨CPU了。
吃点好的,很有必要。今天介绍常见的两种并发模型:共享内存&Actor
本文记录了云原生系统的弹性模式:通过预设策略直面失败,补偿暂时不可用的请求、避免故障传播, 这对于实现微服务高可用、弹性容错相当重要。
难缠的布隆过滤器,这次终于通透了
本文从基础的线程安全、线程同步,认识到分布式锁是跨主机的资源线程/进程同步方案, 以步步为营的风格 演示了RedisSET命令做分布式锁的设计考量,好记性不如烂笔头。
"MD5加密"纯属口嗨,MD5不是加密算法,是摘要算法。
以下就是Redis Cluster科普级别的知识, 帮助大家快速全面了解Redis Cluster特性, 快速搭建Redis Cluster。 好记性不如烂笔头,倒腾一次,记录一次。
今天从两张诡异的编程图聊到了String的不可变性、内存分布, 延伸谈到了 String不可变性的设计设计考量(有先射箭再画靶的嫌疑☺️) 针对频繁修改的String如何做内存优化
本文带大家抓住异步编程async/await语法糖的牛鼻子: SynchronizationContext。
以下内容属自我思考,如理解有偏差、理解不透彻、现状梳理不清楚的请大家多指教。
Task.Factory提供了自定义选项、自定义调度器的能力,这也说明了Task.Run是Task.Factory.StartNew的一个特例,Task.Run 只是提供了一个无参、默认的任务创建和调度方式。
今日份的干粮: 1.什么叫线程安全? 2.线程安全与变量的关系? •变量又与堆/栈/静态存储区有密切关系
多年来,开发者一直在尝试以各种姿势规避HTTP障碍。 我们快速总结流行的几种技术,每种技术都有一个真实的轶事,以便于解释。
本文将利用WebSockets(SignalR的一部分)搭建一个可双向通信的ASP.NETCore5应用。
你可能经常听到CAP定理, 这个定理描述了在设计分布式系统时的天然约束。就像其他文章一样, 本文以现实场景对比理解CAP定理。 1.记忆公司
今天我们深入聊一聊[闭包], 查缺补漏! 1. 以面试题 · 投石问路 2. 以C#闭包 · 庖丁解牛 3. 跨越语言 ·追本溯源 • 头等函数 •自由变量 •词法作用域 4. 答面试题 · 返璞归真
本文我将回顾分享 foreach/yield return/async await语法糖的本质 如何使用异步流 附加探索: 编写一个更有意义的迭代效果
本文记录/分享 目前项目的 K8s 部署结构和请求追踪改造方案