<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>编程技术笔记</title>
    <link>/</link>
    <description>Recent content on 编程技术笔记</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Fri, 02 May 2025 18:25:29 +0800</lastBuildDate>
    <atom:link href="/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>流媒体技术方案</title>
      <link>/posts/misc/2025/livestream-tech/</link>
      <pubDate>Fri, 02 May 2025 18:25:29 +0800</pubDate>
      <guid>/posts/misc/2025/livestream-tech/</guid>
      <description>&lt;p&gt;本文主要介绍流媒体的概念、协议与编码技术，并对点播与直播场景的差异，以及Web端支持与限制展开分析，为满足实时互动与低延迟需求提供参考。&lt;/p&gt;&#xA;&lt;p&gt;TIP：「流媒体方案」为重点章节。&lt;/p&gt;&#xA;&lt;h2 id=&#34;基础概念&#34;&gt;基础概念&lt;/h2&gt;&#xA;&lt;p&gt;什么是流媒体？&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;流媒体是一种通过互联网实时传输音频、视频或其他多媒体内容的技术。与传统的下载模式不同，流媒体允许用户在内容未完全下载的情况下，即时播放或观看内容。它的核心特点是数据会以连续的流形式传输到用户的设备上，而不是一次性下载整个文件。&lt;/p&gt;&#xA;&lt;p&gt;常见的流媒体应用包括视频流媒体（如 Netflix、YouTube）、音频流媒体（如 Spotify、Apple Music）以及实时直播（如 Twitch、抖音直播）。流媒体技术的优势在于节省存储空间、减少等待时间，并能够支持实时互动和广播。&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Elasticsearch Mapping</title>
      <link>/posts/tech/es/es-mapping/</link>
      <pubDate>Mon, 04 Nov 2024 21:16:42 +0800</pubDate>
      <guid>/posts/tech/es/es-mapping/</guid>
      <description>&lt;p&gt;Elasticsearch Mapping 类似关系数据的的 schema（模式），Mapping 记录了索引的字段、字段数据类型，以及 Lucene 是怎样索引数据的。&lt;/p&gt;&#xA;&lt;p&gt;在给新业务数据建索引时，需要进行的第一步就是 Mapping 设计，许多不重视的这个环节的，数据量增大后就暴露出了问题。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Elasticsearch 创建索引</title>
      <link>/posts/tech/es/create-index/</link>
      <pubDate>Sat, 02 Nov 2024 23:59:00 +0800</pubDate>
      <guid>/posts/tech/es/create-index/</guid>
      <description>&lt;p&gt;创建索引需要通常需要指定三部分内容：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;settings：索引配置，如索引分片数、副本数、索引刷新时长等&lt;/li&gt;&#xA;&lt;li&gt;mappings：索引字段的映射（mapping）&lt;/li&gt;&#xA;&lt;li&gt;aliases：索引的别名&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;settings&amp;#34;&lt;/span&gt;: {},&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;mappings&amp;#34;&lt;/span&gt;: {},&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;aliases&amp;#34;&lt;/span&gt;: {}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>简明 Elasticsearch 8x 安装教程</title>
      <link>/posts/guide/install-es-kibana-guide/</link>
      <pubDate>Fri, 01 Nov 2024 16:50:54 +0800</pubDate>
      <guid>/posts/guide/install-es-kibana-guide/</guid>
      <description>&lt;p&gt;Elasticsearch 8.x 默认开启了安全功能，在远程服务器配置多实例时很容易安装失败，官方的教程只适合本地单实例启动，对于那些想探索 Elasticsearch 高级特性的人需要折腾一大阵，不知折戟沉沙了多少人。&lt;/p&gt;&#xA;&lt;p&gt;本文主要介绍多实例 Elasticsearch 集群搭建，最后安装 Kibana 实现查询管理。&lt;/p&gt;&#xA;&lt;p&gt;注意本教程的软件版本，后期的版本可能不适用。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Elasticsearch &amp;amp; Kibana：8.15.3&lt;/li&gt;&#xA;&lt;li&gt;OS：CentOS 7&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Redis 实现发布订阅</title>
      <link>/posts/tech/redis/redis-pub-sub/</link>
      <pubDate>Wed, 07 Aug 2024 22:48:13 +0800</pubDate>
      <guid>/posts/tech/redis/redis-pub-sub/</guid>
      <description>&lt;p&gt;发布订阅(pub/sub)是一种&lt;strong&gt;消息通信模式&lt;/strong&gt;，本质是实现队列（先进先出）的远程操作功能。&lt;/p&gt;&#xA;&lt;p&gt;使用 redis 实现发布订阅有 3 种方式：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;使用列表（list）数据结构，通过 lpush、rpop（brpop）实现队列先进先出&lt;/li&gt;&#xA;&lt;li&gt;使用 redis 发布/订阅功能&lt;/li&gt;&#xA;&lt;li&gt;使用 redis 5.0 stream 数据结构（功能）&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;结论：虽然 redis 可以作为消息队列，但是严谨的生产环境还是应该选择专业的 MQ，因为可靠性是软件的基石。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Redis 缓存淘汰策略</title>
      <link>/posts/tech/redis/redis-elimination/</link>
      <pubDate>Sun, 04 Aug 2024 22:36:05 +0800</pubDate>
      <guid>/posts/tech/redis/redis-elimination/</guid>
      <description>&lt;p&gt;redis 有三种缓存淘汰策略，分别是 noeviction、volatile、allkeys。&lt;/p&gt;</description>
    </item>
    <item>
      <title>QPS、TPS、吞吐量的思考</title>
      <link>/posts/misc/2024/tps-qps-thrpt/</link>
      <pubDate>Sat, 03 Aug 2024 21:38:12 +0800</pubDate>
      <guid>/posts/misc/2024/tps-qps-thrpt/</guid>
      <description>&lt;p&gt;无论前后端，大家在提到性能时总爱用 QPS，这样表达性能合理吗？&lt;/p&gt;&#xA;&lt;p&gt;QPS 与 TPS，它们的区别是什么？&lt;/p&gt;&#xA;&lt;p&gt;本文围绕这些问题展开。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java 协程</title>
      <link>/posts/tech/java/20240714-java-coroutine/</link>
      <pubDate>Sun, 14 Jul 2024 18:55:49 +0800</pubDate>
      <guid>/posts/tech/java/20240714-java-coroutine/</guid>
      <description>&lt;p&gt;协程本质上和线程是一类概念，本质上是编程过程中对并发计算任务的一种抽象，只不过协程在调度层面上更轻量。&lt;/p&gt;&#xA;&lt;p&gt;线程的调度由于是操作系统实施的，有时间片/中断等较为复杂的机制，因此调度点对用户是透明的，可以认为调度理论上可以在任何地方触发。而协程的调度点往往是用户代码显式通过触发的（发生在用户态），需要用户代码自己相互“协作”来完成任务的调度和执行，这也是协程中”协“的来源。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kafka Rebalance</title>
      <link>/posts/tech/kafka/kafka-rebalance/</link>
      <pubDate>Thu, 13 Jun 2024 17:57:55 +0000</pubDate>
      <guid>/posts/tech/kafka/kafka-rebalance/</guid>
      <description>&lt;p&gt;Rebalance 是指，将一个 Topic 下的&lt;strong&gt;多个队列&lt;/strong&gt;，在同一个&lt;strong&gt;消费组的多个成员&lt;/strong&gt;之间进行重新分配。&lt;/p&gt;&#xA;&lt;p&gt;比如，一个 Topic 下 8 个队列，只有一个消费者时，一个消费者将处理 8 个队列的消息。如果在组内增加一个消费者，在不重启服务的情况，将 8 个队列分配给两个消费者，从而支持动态的并行处理消息。&lt;/p&gt;</description>
    </item>
    <item>
      <title>乌兰察布之旅</title>
      <link>/posts/misc/2023/wulanchabu/</link>
      <pubDate>Sun, 23 Jul 2023 18:09:06 +0800</pubDate>
      <guid>/posts/misc/2023/wulanchabu/</guid>
      <description>&lt;p&gt;上周末和朋友一起去了乌兰察布，广袤的草原和火山，整个景色给人的感觉很空旷，让人很放松，工作久了出来转一转还不错。我们游玩的顺序是：乌兰哈达的 5 号火山 -&amp;gt; 2 号火山 -&amp;gt; Day2 -&amp;gt; 黄花谷，整个旅程中除了在路上花费了一些时间外，体验还是不错的。&lt;/p&gt;&#xA;&lt;p&gt;在下面还有一些拍的视频。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
