IT技术博客大学习 共学习 共进步
首页 / 平凡的香草
IT 2016-06-06 23:35:11 / 累计浏览 4,640

go-kit 入门(一)

这篇讲的是Go语言微服务开发工具集go-kit的入门指南。文章从微服务的背景切入,系统性地介绍了go-kit的核心价值:它旨在解决分布式系统中的常见工程问题,让开发者能够将精力集中在业务逻辑上。 摘要重点梳理了文章详细拆解的八个核心组件。例如,Endpoint被抽象为构建RPC的基础单元;Circuit breaker和Rate limiter则为服务提供了弹性与稳定性保障。文章还深入介绍了如何通过Transport层绑定JSON/HTTP等序列化方式,以及如何借助Logging、Metrics和Request tracing模块实现服务的可观测性。对于服务间调用,go-kit通过loadbalancer模块整合了服务发现与负载均衡,支持Consul、etcd等多种后端。 作者进一步阐明了go-kit的设计目标,即作为一套可插拔、低侵入的函数库,无缝融入现有架构,并强调了使用vendoring进行依赖管理的建议。文章最后还列举了诸多受其启发或与之相关的开源项目,为读者勾勒出清晰的Go微服务生态图谱。对于刚接触微服务的Go开发者而言,这无疑是一份扎实的起点地图。

IT 2013-11-19 23:19:55 / 累计浏览 3,980

Intel 10-GbE 网卡性能优化[翻译]

这篇翻译文档详细拆解了如何将一块 10GbE 网卡的性能从默认的“可用”状态压榨到“极限”。作者指出,Linux 的默认网络栈配置(如缓冲区大小、TCP 内存分配)是为了可靠性而非峰值吞吐量设计的,这对万兆网卡尤其不利。 文章的核心思路是分层优化,并基于 Intel 官方驱动文档提供了实操步骤。优先级最高的操作是在交换机和服务器两端启用巨型帧(MTU 9000),这能大幅提升大流量传输效率。其次是调整内核的 `sysctl` 参数,例如关闭 SACK 和时间戳、将 TCP 收发缓冲区统一设为 10MB,并提高网络设备积压队列上限。更进阶的操作是通过 `setpci` 命令调整网卡 PCI-X 总线的 MMRBC 寄存器,将内存读块大小提升到 4KB,以增强对突发流量的处理能力。 文章最有说服力的部分在于其测试数据:经过上述优化,使用 `iperf` 测试的吞吐量从优化前的约 4.70 Gbits/sec 飙升至 9.90 Gbits/sec,几乎跑满了万兆带宽。作者强调,优化过程需配合压力测试(如 iperf、netperf)来验证效果,结果可能因硬件和网络环境而异。对于需要榨干网卡性能的 HDFS、高性能计算等场景,这套调优方法提供了清晰的参考路径。

IT 2013-09-02 13:30:13 / 累计浏览 3,660

关于Rsyslogd 的一些配置 (高性能、高可用 rsyslogd)

这篇讲的是作者公司日志传输服务器因带宽调整引发的日志堵塞实战。他们遇到的情况是,业务通过PHP syslog接口写日志时被“卡住”了,根源在于rsyslog默认配置追求“不丢任何数据”,但当传输链路异常时,队列堆积反而拖垮了业务。 排查发现,原有配置仅有基础传输逻辑,进程、队列、传输效率等关键参数全部使用了默认值。这种配置在理想环境下能运行,一旦出现网络波动或突发流量就暴露出问题。文章分享了如何通过调整队列参数来破解困境:例如定义`$MainMsgQueueFilename`和`$MainMsgQueueMaxDiskSpace`来控制磁盘队列大小,利用`$QueueHighWatermark`触发磁盘存储,并通过`$MainMsgQueueDiscardMark`与`$MainMsgQueueQueueDiscardSeverity`配合实现有策略的消息丢弃,避免业务被阻塞。 作者还附上了关键配置的截图和几份深入阅读的官方文档,特别是关于rsyslog队列机制的那篇。此外,文末也提及了RELP(可靠事件日志协议)等更健壮的传输方案,以及社区开发的syslog-safer工具作为补充。这是一次从故障现象到配置调优的完整经验梳理,对于使用rsyslog的日志架构很有参考价值。