<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[A1L__的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/A1L__</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; A1L__]]></copyright><item><title><![CDATA[串、数组和广义表]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/123245065</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/123245065</guid><author>A1L__</author><pubDate>Sun, 29 Sep 2024 13:41:34 +0800</pubDate><description><![CDATA[串、数组和广义表
串：内容受限的线性表
数组、和广义表：线性结构的推广
串（string）
零个或多个任意字符组成的有限序列s(串名)="a1a2a3a4...an(串值) 串长n"
子串：串中任意个连续字符组成的子序列（含空串）称为该串的子串。
例如，“abcde”的子串有
“”，“a”,"ab","abc","adcd"和“abcde”等

真子串是指不包含自身的所有子串
主串：包含子串的串相应的称为主串
字符位置：字符在序列中的序号为该字符在串中的位置
子串位置：子串第一个字符在主串中的位置
空格串：]]></description><category></category></item><item><title><![CDATA[Lua脚本本地调试]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/131729154</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/131729154</guid><author>A1L__</author><pubDate>Sun, 29 Sep 2024 13:41:21 +0800</pubDate><description><![CDATA[这里主要使用日志的方式进行debug。]]></description><category></category></item><item><title><![CDATA[Kong 自定义插件安装和调试]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/131729230</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/131729230</guid><author>A1L__</author><pubDate>Fri, 14 Jul 2023 18:00:58 +0800</pubDate><description><![CDATA[我的插件主要是解开token王header里面塞了三个参数，在调试过程中已经完成。1、在本地安装(基于当前目录中的.rockspec)在加载过程中难免会有错误，需要自己打日志排查。2、打包已安装的文件。]]></description><category></category></item><item><title><![CDATA[Lua脚本本地调试]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/131729189</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/131729189</guid><author>A1L__</author><pubDate>Fri, 14 Jul 2023 17:59:32 +0800</pubDate><description><![CDATA[这里主要使用日志的方式进行debug。]]></description><category></category></item><item><title><![CDATA[Kong JWT鉴权]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/131729128</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/131729128</guid><author>A1L__</author><pubDate>Fri, 14 Jul 2023 17:55:36 +0800</pubDate><description><![CDATA[​		最简单的理解和配置consumer的方式是,将其于用户进行一一映射,即一个consumer代表一个用户（或应用）.但是对于KONG而言,这些都无所谓. Consumer的核心原则是您可以为其添加插件,从而自定义他的请求行为. 所以,或许您会有一个手机APP应用,并为他的每个版本都定义一个consumer, 又或者您有一个应用或几个应用,并为这些应用定义统一个consumer,这些都无所谓.]]></description><category></category></item><item><title><![CDATA[Kong 服务和路由的添加]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/131729098</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/131729098</guid><author>A1L__</author><pubDate>Fri, 14 Jul 2023 17:54:15 +0800</pubDate><description><![CDATA[这里参考DB-less-Mode，因为使用的是yaml配置文件的形式，所以所有的相关配置只需要往初始化的kong.yml文件中添加就可以了，就像nginx的配置文件。]]></description><category></category></item><item><title><![CDATA[Kong（Without DB）的安装和基本使用]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/131437923</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/131437923</guid><author>A1L__</author><pubDate>Wed, 28 Jun 2023 15:27:43 +0800</pubDate><description><![CDATA[这里以Centos为例。]]></description><category></category></item><item><title><![CDATA[Kafka是如何实现高性能IO]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/131378710</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/131378710</guid><author>A1L__</author><pubDate>Sun, 25 Jun 2023 15:23:42 +0800</pubDate><description><![CDATA[使用批量处理的方式来提升系统吞吐能力。基于磁盘文件高性能顺序读写的特性来设计的存储结构。利用操作系统的 PageCache 来缓存数据，减少 IO 并提升读性能。使用零拷贝技术加速消费流程。]]></description><category></category></item><item><title><![CDATA[重复消费和堆积]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/131311719</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/131311719</guid><author>A1L__</author><pubDate>Tue, 20 Jun 2023 17:21:41 +0800</pubDate><description><![CDATA[接受消息会重复这一现状，然后通过一些方法来消除重复消息对业务的影响。]]></description><category></category></item><item><title><![CDATA[确保消息不会丢失]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/131306742</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/131306742</guid><author>A1L__</author><pubDate>Tue, 20 Jun 2023 14:43:32 +0800</pubDate><description><![CDATA[现在主流的消息队列产品都提供了非常完善的消息可靠性保证机制，完全可以做到在消息传递过程中，即使发生网络中断或者硬件故障，也能确保消息的可靠传递，不丢消息。绝大部分丢消息的原因都是由于开发者不熟悉消息队列，没有导致的。虽然不同的消息队列提供的 API 不一样，相关的配置项也不同，但是在保证消息可靠传递这块儿，它们的实现原理是一样的。]]></description><category></category></item><item><title><![CDATA[利用事务消息实现分布式事务]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/131242646</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/131242646</guid><author>A1L__</author><pubDate>Fri, 16 Jun 2023 10:57:27 +0800</pubDate><description><![CDATA[​		之前提到的事务ACID大部分传统的单体关系型数据库(Mysql Oracle)都完整的实现了 ACID，但是，对于分布式系统来说，严格的实现 ACID 这四个特性几乎是不可能的，或者说实现的代价太大，大到我们无法接受。​		分布式事务就是要在分布式系统中的实现事务。在分布式系统中，在保证可用性和不严重牺牲性能的前提下，光是要实现数据的一致性就已经非常困难了，所以出现了很多“残血版”的一致性，比如顺序一致性、最终一致性等等。]]></description><category></category></item><item><title><![CDATA[消息队列的基本概念]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/131227989</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/131227989</guid><author>A1L__</author><pubDate>Thu, 15 Jun 2023 14:55:53 +0800</pubDate><description><![CDATA[每种消息队列都有自己的一套消息模型，像队列（Queue）、主题（Topic）或是分区（Partition）这些名词概念，在每个消息队列模型中都会涉及一些，含义还不太一样。为什么出现这种情况呢？因为没有标准。曾经，也是有一些国际组织尝试制定过消息相关的标准，比如早期的 JMS 和 AMQP。但让人无奈的是，标准的进化跟不上消息队列的演进速度，这些标准实际上已经被废弃了。]]></description><category></category></item><item><title><![CDATA[为什么要学习消息队列]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/131193946</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/131193946</guid><author>A1L__</author><pubDate>Tue, 13 Jun 2023 18:18:46 +0800</pubDate><description><![CDATA[消息队列作为使用最广泛、生命力最旺盛的中间件，无论技术如何发展，都离不开分布式系统的最基本需求：通信。它涉及的底层技术是非常全面的，比如：高性能通信、海量数据存储、高并发等。并且，消息队列具有功能简洁、结构清晰的特点，入门简单但具有足够的深度，适合用来进行深入地分析和学习学好消息队列，不应该仅仅停留在使用层面上，还需要深入了解它的。但是要注意循序渐进，由浅入深地去学习。]]></description><category></category></item><item><title><![CDATA[01 Linux操作系统]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/131083434</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/131083434</guid><author>A1L__</author><pubDate>Wed, 07 Jun 2023 10:57:49 +0800</pubDate><description><![CDATA[passwd。]]></description><category></category></item><item><title><![CDATA[紧急事故的流程管理]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/128673511</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/128673511</guid><author>A1L__</author><pubDate>Fri, 13 Jan 2023 14:12:21 +0800</pubDate><description><![CDATA[在事故处理中，让：每个人清楚自己的职责是非常重要的。有点反直觉的是，明嘶职费反而能够使每个人可以更独立自主地解决问题，因为他们不用怀疑和担心他们的同事都在干什么。如果一个人目前要处理的事情大多了，该人需要向计划负责人申请更多的人力资源。他们应该将一部分任务交接给其他人，有的时候这些人应该负责在事故流程管理系统中创建更多的子事故（即用来通知公司其他相关部门等。）另外一种方式是，某个负责人可以将某个系统组件完全交给同事来处理，由该同事直接向负责人汇报情识。以下是系统中可以分配给某个人的角色。]]></description><category></category></item><item><title><![CDATA[K8S configmap做配置中心]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/127226762</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/127226762</guid><author>A1L__</author><pubDate>Sun, 09 Oct 2022 14:55:15 +0800</pubDate><description><![CDATA[ConfigMap 是一种 API 对象，用来将非机密性的数据保存到键值对中。使用时，可以将其用作环境变量、命令行参数或者存储卷中的配置文件。ConfigMap 将你的环境配置信息和解耦，便于应用配置的修改。ConfigMap 并不提供保密或者加密功能。如果你想存储的数据是机密的，请使用， 或者使用其他第三方工具来保证你的数据的私密性，而不是用 ConfigMap。]]></description><category></category></item><item><title><![CDATA[数据结构和算法--排序]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/125294424</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/125294424</guid><author>A1L__</author><pubDate>Wed, 15 Jun 2022 11:51:46 +0800</pubDate><description><![CDATA[希尔排序(Shell Sort)是插入排序的一种，它是针对直接插入排序算法的改进。希尔排序又称缩小增量排序，因 DL.Shell 于 1959 年提出而得名。它通过比较相距一定间隔的元素来进行，各趟比较所用的距离随着算法的进行而减小，直到只比较相邻元素的最后一趟排序为止。希尔排序时间复杂度是 O(n^(1.3-2))，空间复杂度为常数阶 O(1)。希尔排序没有时间复杂度为 O(n(logn)) 的快速排序算法快 ，因此对中等大小规模表现良好，但对规模非常大的数据排序不是最优选择，总之比一般 O(n^2 ) ]]></description><category></category></item><item><title><![CDATA[树表的查找]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/125021519</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/125021519</guid><author>A1L__</author><pubDate>Sat, 28 May 2022 18:40:17 +0800</pubDate><description><![CDATA[树表的查找
当表插入，删除操作频繁时，为维护表的有序性，需要移动表中很多记录
改用动态查找表----几种特殊的树
表结构在查找过程中动态生成
对于给定值key
若表中存在，则成功返回；否则，插入关键字等于key的记录

二叉排序树

二叉树排序树（Binary Sort Tree）又称为二叉搜索树、二叉查找树

定义：
二叉排序树或是空数，或是满足以下性质的二叉树：

若其左子树非空，则左子树上所有节点的值均小于根节点的值；
若其右子树非空，则右子树上所有节点的值均大于等于根节点的值；
其左右子树本身又各是]]></description><category></category></item><item><title><![CDATA[将实例化对象的方法 给新的对象用]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/124307542</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/124307542</guid><author>A1L__</author><pubDate>Wed, 20 Apr 2022 21:14:28 +0800</pubDate><description><![CDATA[将实例化对象的方法  给新的对象用
class SharedKls:

    def __setattr__(self, key, value):
        if not hasattr(SharedKls, key):
            if callable(value):  # 是否可以调用
                # 不加staticmethod，会默认传self
                value = staticmethod(value)
            s]]></description><category></category></item><item><title><![CDATA[哈夫曼树及其应用]]></title><link>https://blog.youkuaiyun.com/A1L__/article/details/123245050</link><guid>https://blog.youkuaiyun.com/A1L__/article/details/123245050</guid><author>A1L__</author><pubDate>Thu, 03 Mar 2022 08:58:27 +0800</pubDate><description><![CDATA[哈夫曼树及其应用


判断树：用于描述分类过程的二叉树
假设 小于60分的同学有5% 60-70 15% 70-80 40%  80-90 30%   &gt;90 10%


显然：两种判别树的效率是不一样的
问题：能不能找到一种效率最高的判别树呢？ 这就是哈夫曼树(最优二叉树)研究的问题
哈夫曼树基本概念
树的路径长度：
从树根到每一个节点的路径长度之和，记作TL

权
将树种结点赋给一个有着某种含义的数值，则这个数值称为该结点的权
节点的带权路径长度
从根节点到该结点之间的路径长度与该节点的权的乘积
]]></description><category></category></item></channel></rss>