<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Archives on Mi&amp;Bee Blog</title><link>/en/archives/</link><description>Recent content in Archives on Mi&amp;Bee Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>蓝宝石的傻话</managingEditor><lastBuildDate>Wed, 30 Jan 2019 00:00:00 +0000</lastBuildDate><atom:link href="/en/archives/rss.xml" rel="self" type="application/rss+xml"/><item><title>Implementing a Lightweight File Backup System Based on OpenResty</title><link>/en/archives/06-openresty-backup-system/</link><pubDate>Wed, 30 Jan 2019 00:00:00 +0000</pubDate><guid>/en/archives/06-openresty-backup-system/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;There are tools like &lt;strong&gt;filebeat&lt;/strong&gt; for log collection, open-source cloud drives like &lt;strong&gt;seafile&lt;/strong&gt;, and simple distributed file systems like &lt;strong&gt;FastDFS&lt;/strong&gt;, among others. However, the remote backup logs of a certain enterprise SaaS platform still rely on traditional compressed file scp transfers to backup storage.&lt;/p&gt;
&lt;p&gt;Since filebeat&amp;rsquo;s log collection completeness is debatable, open-source cloud drives have cluttered features that are not conducive to management, distributed file systems&amp;rsquo; internal storage logic is not well-suited for the backup log management of the enterprise SaaS platform, and scp transfers pose security risks with private keys deployed on servers, we leveraged OpenResty&amp;rsquo;s features to implement a simple file backup API interface using Lua.&lt;/p&gt;</description></item><item><title>Linux High Availability and Load Balancing in Practice — From Keepalived to Performance Tuning</title><link>/en/archives/04-keepalived-and-haproxy/</link><pubDate>Tue, 19 Jun 2018 00:00:00 +0000</pubDate><guid>/en/archives/04-keepalived-and-haproxy/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In modern enterprise application architectures, high availability and load balancing are key technologies for ensuring stable system operation. This article provides a detailed introduction to achieving dual-machine hot standby with Keepalived, building internal network service load balancing with HAProxy, and resolving NIC soft interrupt issues for network performance optimization. Through real-world cases and detailed configuration explanations, this article helps readers understand the core principles and practical applications of these technologies.&lt;/p&gt;</description></item><item><title>JVM Performance Tuning and Off-Heap Memory Leak Troubleshooting in Practice</title><link>/en/archives/02-jvm-debug/</link><pubDate>Tue, 16 Jan 2018 00:00:00 +0000</pubDate><guid>/en/archives/02-jvm-debug/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;JVM performance tuning and memory issue troubleshooting have always been significant challenges for Java developers. This article starts from the three core goals of GC tuning and combines them with a real-world off-heap memory leak investigation case to provide a systematic approach to performance tuning and practical troubleshooting methods.&lt;/p&gt;
&lt;p&gt;In complex distributed systems, memory issues are often the hardest to diagnose. Off-heap memory leaks in particular, occurring outside the JVM heap, are difficult to detect with conventional GC monitoring tools and can easily cause systems to crash suddenly in production environments. This article shares a complete off-heap memory leak investigation process, hoping to provide valuable reference for readers.&lt;/p&gt;</description></item><item><title>Overseas Email Delivery Acceleration Architecture — Smart Delivery Network in Practice</title><link>/en/archives/07-sdn-oversea/</link><pubDate>Tue, 16 Jan 2018 00:00:00 +0000</pubDate><guid>/en/archives/07-sdn-oversea/</guid><description>&lt;h2 id="introduction-challenges-of-overseas-email-delivery"&gt;Introduction: Challenges of Overseas Email Delivery&lt;/h2&gt;
&lt;p&gt;In globalized business scenarios, email delivery faces numerous challenges. Overseas email delivery must not only overcome network latency issues but also navigate complex geopolitical network environments. Traditional direct overseas delivery methods often encounter connection timeouts, firewall blocking, and high delivery latency. At the same time, interoperability between domestic email systems and overseas networks also presents technical challenges.&lt;/p&gt;
&lt;p&gt;To address these issues, we designed and implemented a Smart Delivery Network (SDN) architecture that effectively improves the efficiency and reliability of overseas email delivery through multi-level proxying, intelligent routing, and load balancing mechanisms.&lt;/p&gt;</description></item><item><title>Advanced Bash Programming Techniques — Handling Message Queue Backlog with the Producer-Consumer Pattern</title><link>/en/archives/08-bash-dev-query/</link><pubDate>Wed, 05 Jul 2017 00:00:00 +0000</pubDate><guid>/en/archives/08-bash-dev-query/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In message system operations, queue backlog is a common and tricky problem. Especially during malicious attacks or system anomalies, the delivery queue may accumulate a large number of messages, severely impacting normal system operation. Traditional single-process processing is not only inefficient but may also cause problems to worsen due to delayed handling.&lt;/p&gt;
&lt;p&gt;This article shares a set of advanced Bash programming techniques based on the producer-consumer pattern. Through core technologies including multi-process concurrency, pipe communication, and efficient awk parsing, we achieve fast and effective handling of message queue backlog issues. This solution has been validated in multiple production environments, capable of improving processing efficiency several times over while ensuring system stability.&lt;/p&gt;</description></item><item><title>Practices and Pitfalls of Dockerizing Enterprise Applications — From Traditional Virtualization to Containerization</title><link>/en/archives/05-docker-enterprise-application/</link><pubDate>Mon, 17 Apr 2017 00:00:00 +0000</pubDate><guid>/en/archives/05-docker-enterprise-application/</guid><description>&lt;h2 id="introduction-why-containerize-enterprise-applications"&gt;Introduction (Why Containerize Enterprise Applications)&lt;/h2&gt;
&lt;p&gt;In the era of cloud computing, the way enterprise applications are deployed and managed is undergoing a profound transformation. While traditional virtualization technology solved the resource isolation problem, it still has many pain points in terms of operational efficiency, resource utilization, and deployment speed. The rise of Docker container technology has provided a brand-new solution for the modernization of enterprise applications.&lt;/p&gt;
&lt;p&gt;This article shares our practical experience in the containerization migration of an enterprise email system, including technology selection, infrastructure construction, the full process of migrating from OpenVZ virtualization to Docker, and various issues encountered in production along with their solutions. Through these practical cases, we hope to provide valuable reference for teams that are currently or planning to undertake containerization migration.&lt;/p&gt;</description></item><item><title>A Simple BBR Test on Linode</title><link>/en/archives/linode-bbr-test/</link><pubDate>Mon, 10 Apr 2017 00:00:00 +0000</pubDate><guid>/en/archives/linode-bbr-test/</guid><description>&lt;h2 id="overview"&gt;Overview:&lt;/h2&gt;
&lt;p&gt;TCP BBR solves two problems:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fully utilizing bandwidth on network links with some packet loss. Suitable for high-latency, high-bandwidth network links.&lt;/li&gt;
&lt;li&gt;Reducing buffer occupancy on network links, thereby lowering latency. Suitable for users with slow access networks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I remember when BBR was first merged into the Linux 4.9 kernel in 2017, this congestion control algorithm proposed by Google was extremely popular in the tech community. At the time, I was doing cross-border file transfers on Linode, where packet loss was commonplace, so I wanted to test the results firsthand.&lt;/p&gt;</description></item><item><title>Raspberry Pi Docker Cluster</title><link>/en/archives/rasp_pi_docker/</link><pubDate>Wed, 08 Mar 2017 00:00:00 +0000</pubDate><guid>/en/archives/rasp_pi_docker/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;At the time, I was learning Docker cluster management and wanted a low-cost lab environment to experiment with, so I thought of using Raspberry Pis. Following the &lt;a href="http://blog.hypriot.com/"&gt;Hypriot&lt;/a&gt; blog, I bought one Raspberry Pi 2 board and two Raspberry Pi 3 boards. The reasoning was that the Pi 2 was cheaper so it would be the master, and the Pi 3s had better performance for worker nodes — together they made a small cluster.&lt;/p&gt;</description></item><item><title>ARM Board Notes and Experiences</title><link>/en/archives/arm-board-note/</link><pubDate>Mon, 27 Feb 2017 00:00:00 +0000</pubDate><guid>/en/archives/arm-board-note/</guid><description>&lt;h2 id="raspberry-pi"&gt;Raspberry Pi&lt;/h2&gt;
&lt;p&gt;I originally got into Raspberry Pi to set up a Docker cluster environment — mainly because they were cheap and power-efficient. Bought 3 Raspberry Pi 2 boards for around 600+ yuan. Back then, running Docker on ARM was still a novel concept.&lt;/p&gt;
&lt;p&gt;I used Raspberry Pi to build a Docker cluster environment, following the &lt;a href="http://blog.hypriot.com/"&gt;Hypriot&lt;/a&gt; blog.&lt;/p&gt;
&lt;p&gt;&lt;img src="/archives/images/RaspPi_cluster_only.jpg" alt=""&gt;&lt;/p&gt;
&lt;h2 id="cubieboard"&gt;CubieBoard&lt;/h2&gt;
&lt;p&gt;Getting Docker running on ARM was a major challenge back then — official support was poor, community documentation was sparse, and it required a lot of trial and error.&lt;/p&gt;</description></item><item><title>Building a Blog on GitHub</title><link>/en/archives/blog-mickeyzzc-github/</link><pubDate>Sun, 26 Feb 2017 00:00:00 +0000</pubDate><guid>/en/archives/blog-mickeyzzc-github/</guid><description>&lt;h2 id="2023-blog-migration-from-hexo-to-hugo"&gt;2023 Blog Migration from &lt;code&gt;hexo&lt;/code&gt; to &lt;code&gt;hugo&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The main reason was getting tired of hexo taking forever to generate each time, plus the npm package dependency management issues — maintenance was indeed a burden. And hugo, as a static site generator written in Go, is genuinely much faster.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chose &lt;a href="https://gohugo.io/"&gt;hugo&lt;/a&gt; as the tool&lt;/li&gt;
&lt;li&gt;Chose &lt;a href="https://github.com/hugo-next/hugo-theme-next"&gt;Hugo.NexT&lt;/a&gt; as the theme&lt;/li&gt;
&lt;li&gt;Chose &lt;a href="https://www.cloudflare.com"&gt;CloudFlare&lt;/a&gt; for CDN&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The migration process was quite a hassle, mainly converting front matter format from YAML to TOML, and the various configuration differences between themes were quite significant, but eventually it all worked out.&lt;/p&gt;</description></item><item><title>Enterprise Mail System Architecture Design and Mail Flow Analysis</title><link>/en/archives/03-mail-system-design/</link><pubDate>Fri, 24 Feb 2017 00:00:00 +0000</pubDate><guid>/en/archives/03-mail-system-design/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In the digital era, email serves as a core communication tool for both internal and external enterprise interactions. Its architecture design directly impacts the stability, security, and performance of mail services. This article explores the three-tier architecture design of enterprise mail systems, provides a detailed analysis of the complete mail receiving and sending processes, and helps readers gain a comprehensive understanding of the technical implementation of modern mail systems.&lt;/p&gt;</description></item><item><title>MySQL Operations in Practice — From Optimization, Monitoring to Disaster Recovery</title><link>/en/archives/01-mysql-ops/</link><pubDate>Sat, 18 Feb 2017 00:00:00 +0000</pubDate><guid>/en/archives/01-mysql-ops/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In the operations and maintenance of business systems, MySQL databases serve as core components whose performance stability and data security are critical. Based on years of hands-on operational experience, this article comprehensively shares practical MySQL database operations knowledge — from performance optimization, monitoring systems, Binlog management, and high-availability deployment to disaster recovery. These insights come from real-world cases across multiple production environments, covering the full technology stack from daily tuning to emergency incident response. We hope this provides valuable reference for database administrators and operations engineers alike.&lt;/p&gt;</description></item><item><title>SSL Certificate Automation Management — Ansible Batch Deployment and Update Practices</title><link>/en/archives/11-ssl-auto/</link><pubDate>Mon, 13 Feb 2017 00:00:00 +0000</pubDate><guid>/en/archives/11-ssl-auto/</guid><description>&lt;p&gt;In modern IT infrastructure management, secure management of SSL certificates has become increasingly important. As the number of services grows and certificate renewal cycles shorten, manual certificate management becomes inefficient and error-prone. This article details how to use Ansible for automated batch deployment and renewal of certificates, improving management efficiency and reducing security risks.&lt;/p&gt;
&lt;h2 id="the-importance-of-ssl-certificate-management"&gt;The Importance of SSL Certificate Management&lt;/h2&gt;
&lt;p&gt;SSL certificates are the foundation of network communication security. They ensure:&lt;/p&gt;</description></item><item><title>Building a Cross-City LAN with Docker</title><link>/en/archives/mi-docker-net/</link><pubDate>Fri, 20 Jan 2017 00:00:00 +0000</pubDate><guid>/en/archives/mi-docker-net/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;At the time, I had servers both at home and at the office and wanted unified management, but the two internal networks were isolated. Traditional port forwarding was too cumbersome, and some services I didn&amp;rsquo;t want exposed to the public internet. After trying several approaches, I found Docker OpenVPN to be the most hassle-free solution.&lt;/p&gt;
&lt;p&gt;I chose Docker OpenVPN over traditional VPN mainly because containerized deployment is extremely convenient, and certificate management is much simpler. The end result was great — I could access various services on the remote internal network via domain names, saving a lot of configuration hassle.&lt;/p&gt;</description></item><item><title>Boosting Development Efficiency — Linux Development Environment Setup Guide</title><link>/en/archives/09-zsh-tmux-vim-git/</link><pubDate>Wed, 07 Dec 2016 00:00:00 +0000</pubDate><guid>/en/archives/09-zsh-tmux-vim-git/</guid><description>&lt;p&gt;In modern software development, having an efficient and convenient development environment can significantly improve productivity. This article provides a detailed guide on setting up a complete development environment on Linux, including configuration and usage of the tmux terminal multiplexer, vim code editor, enhanced zsh shell, and git version control.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;Before you begin, make sure your system meets the following minimum requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;tmux&lt;/strong&gt;: version &amp;gt;= 2.1&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;vim&lt;/strong&gt;: version &amp;gt;= 7.3&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;zsh&lt;/strong&gt;: oh-my-zsh recommended&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;git&lt;/strong&gt;: latest version&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="1-tmux-terminal-multiplexer-configuration"&gt;1. TMUX Terminal Multiplexer Configuration&lt;/h2&gt;
&lt;p&gt;TMUX is an excellent terminal multiplexer that allows you to create multiple sessions and windows within a single terminal window, making it ideal for developers who need to handle multiple tasks simultaneously.&lt;/p&gt;</description></item><item><title>Complete Distribution of the TCP/IP Protocol Suite in the OSI Model — Understanding Network Protocols at a Glance</title><link>/en/archives/10-tcp-ip-osi/</link><pubDate>Tue, 24 Feb 2015 00:00:00 +0000</pubDate><guid>/en/archives/10-tcp-ip-osi/</guid><description>&lt;p&gt;Network communication is the cornerstone of modern information technology, and understanding how network protocols work is crucial for every developer and system administrator. This article uses the OSI model framework to provide a detailed introduction to the distribution and roles of each protocol in the TCP/IP protocol suite within the network layer hierarchy.&lt;/p&gt;
&lt;h2 id="what-is-the-osi-model"&gt;What is the OSI Model?&lt;/h2&gt;
&lt;p&gt;The OSI (Open Systems Interconnection) model is a conceptual network model that divides the network communication process into seven layers. Although this model is less popular in practice than the TCP/IP model, it is very helpful for understanding how network protocols work.&lt;/p&gt;</description></item></channel></rss>