<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wei_bo_cai的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wei_bo_cai</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wei_bo_cai]]></copyright><item><title><![CDATA[start minikube with Kubernetes 1.26]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/130485217</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/130485217</guid><author>wei_bo_cai</author><pubDate>Thu, 04 May 2023 13:49:06 +0800</pubDate><description><![CDATA[之后的版本，可以使用docker驱动运行。]]></description><category></category></item><item><title><![CDATA[Fleet Spring Boot]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/132976725</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/132976725</guid><author>wei_bo_cai</author><pubDate>Fri, 03 Mar 2023 13:26:00 +0800</pubDate><description><![CDATA[前言
Fleet 是 JetBrains 的一款新的IDE，包罗万象(夸张)。
示例项目在，有一个父项目和多个子项目构成

菜单 Run
菜单 Run &amp; Debug

点击创建 run.json

文件内容：
{
	"configurations": [
		{
			"type": "spring-boot",
			"name": "demo",   // 运行名称
			"mai...]]></description><category></category></item><item><title><![CDATA[https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/repodata/repomd.xml: [Errno -1...]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/132976726</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/132976726</guid><author>wei_bo_cai</author><pubDate>Tue, 14 Feb 2023 11:59:00 +0800</pubDate><description><![CDATA[yum 安装时，出现以下异常：
yum install -y kubelet kubeadm kubectl
# 出现异常
https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/repodata/repomd.xml: [Errno -1] pygpgme is not working so repomd.xm...]]></description><category></category></item><item><title><![CDATA[failure: repodata/repomd.xml from base: [Errno 256] No more mirrors to try.]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/132976722</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/132976722</guid><author>wei_bo_cai</author><pubDate>Tue, 14 Feb 2023 11:44:00 +0800</pubDate><description><![CDATA[异常
yum makecache

failure: repodata/repomd.xml from base: [Errno 256] No more mirrors to try.
http://mirrors.aliyun.com/centos/$releasever/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - N...]]></description><category></category></item><item><title><![CDATA[Gradle 运行Java Main 类]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/128465362</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/128465362</guid><author>wei_bo_cai</author><pubDate>Wed, 28 Dec 2022 11:08:24 +0800</pubDate><description><![CDATA[在这个教程中，我们将探索使用Gradle执行Java Main的不同的方法。]]></description><category></category></item><item><title><![CDATA[java.lang.IllegalStateException: org.apache.rocketmq.remoting.exception.RemotingSendRequestException...]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/132976720</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/132976720</guid><author>wei_bo_cai</author><pubDate>Fri, 21 Oct 2022 17:40:00 +0800</pubDate><description><![CDATA[坑爹的 org.apache.rocketmq:rocketmq-spring-boot-starter
org.apache.rocketmq:rocketmq-spring-boot-starter:2.2.2 和 com.alibaba:fastjson:2.0.15 一起使用的时候，会报错
java.lang.RuntimeException: java.lang.IllegalStat...]]></description><category></category></item><item><title><![CDATA[输入提示 数据算法  Trie]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/117125956</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/117125956</guid><author>wei_bo_cai</author><pubDate>Fri, 21 May 2021 16:18:16 +0800</pubDate><description><![CDATA[基本功能


实现上述功能，输入提示
数据结构：Trie 字典树 多叉树 根节点为空值
缺点：数据要求比较高，会占用大量的空间。例如：26个字母，组成完全的 Trie树的话，就会有26层，总共有26的26次方个节点

实现代码
from copy import deepcopy
from collections.abc import Iterable
from collections import defaultdict


class Trie:
    def __init__(self, nodes:]]></description><category></category></item><item><title><![CDATA[Django 异步 视图基类]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/117083072</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/117083072</guid><author>wei_bo_cai</author><pubDate>Thu, 20 May 2021 16:56:57 +0800</pubDate><description><![CDATA[from functools import update_wrapper

from django.views import View as Django_View


class View(Django_View):

    @classmethod
    def as_view(cls, **initkwargs):
        """Main entry point for a request-response process."""
        for key in initkwargs]]></description><category></category></item><item><title><![CDATA[数据结构 树  python]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/116801761</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/116801761</guid><author>wei_bo_cai</author><pubDate>Fri, 14 May 2021 18:49:32 +0800</pubDate><description><![CDATA[基本功能

顺序存储
前序遍历
中序遍历
前序遍历
层级遍历
顺序存储数据/中序数据+前序数据/中序数据+后序数据 确定一棵树

代码
from queue import Queue


class BinaryNode:

    def __init__(self, right=None, left=None, node=None):
        self.right = right
        self.left = left
        self.node = node


class ]]></description><category></category></item><item><title><![CDATA[数据结构 python：树简单操作]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/116025077</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/116025077</guid><author>wei_bo_cai</author><pubDate>Thu, 22 Apr 2021 18:18:38 +0800</pubDate><description><![CDATA[数据结构：树的生成原始数据生成树代码
原始数据

child: 子节点
parent：父节点
如果parent==child，则为根节点（这里是森林的结构）

child,parent
a,b
b,c
c,c

生成树

获取根节点
获取父与子的对应关系，利用列表存储每一层的父子对应关系
获取树结构
时间复杂度：层级*每层节点个数的最大值

代码
def main():
    original = [{}]
    data = dict()
    with open('origin.csv', new]]></description><category></category></item><item><title><![CDATA[心无所依之地]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/115480283</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/115480283</guid><author>wei_bo_cai</author><pubDate>Wed, 07 Apr 2021 10:43:15 +0800</pubDate><description><![CDATA[心无所依之地致北京的夜
致北京的夜
夜里，好像我只属于你
你，躲在我的梦里，悄无声息
是我梦里的公主
而我，不过是黑夜的骑士
游荡在这梦里
守护着有你的梦，梦里的你
那里，风是你忠实的使者
夹携着你的气息
抚摸着梦的世界
我，骑着马儿，逆着风
追寻你的方向
雨，夜的精灵，总是那么调皮
淅淅沥沥的下着，冲淡了你那美妙的气息
我，努力地辨别着风的方向
可惜，只剩下滴滴答答地雨
夹杂着那达达的马蹄声
想饮一些酒
吟唱着“今朝醉”，醉倒在这风里
想来，我不过是你黑夜的骑士
守护你，才是我的职责
又何必苦苦追寻
酒，]]></description><category></category></item><item><title><![CDATA[Elasticsearch + logstash 获取 存储 mysql 的 general_log 日志]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/115381416</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/115381416</guid><author>wei_bo_cai</author><pubDate>Thu, 01 Apr 2021 19:31:39 +0800</pubDate><description><![CDATA[logstash mysql general_log 配置脚本实现功能general_log实现步骤代码
实现功能
解析 general_log.log

过滤特定用户
为每一条数据添加用户

general_log

general_log 只记录了 Time, Id, Command, Argument，没有对应的用户
general_log 会记录所有的操作，可能会出现一部分冗余的数据

/usr/sbin/mysqld, Version: 8.0.99 (MySQL Community Server]]></description><category></category></item><item><title><![CDATA[ELK 之 logstash 利用 IP 获取地理位置]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/113869474</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/113869474</guid><author>wei_bo_cai</author><pubDate>Fri, 19 Feb 2021 18:23:47 +0800</pubDate><description><![CDATA[ELK 之 logstash 利用 IP 获取地理位置 geoip摘要解决方案解析结果
摘要
在平常使用时，利用logstash获取日志信息，有时需要将日志中的IP地址转换成坐标或是实际的位置，这里提供一种可行的解决方案。（笔者实际生产环境中使用这种方案，仅供参考）
解决方案
将原始IP，利用Maxmind GeoLite2 databases数据库转换成geoip。可以参考官方文档
这里利用两种过滤器，首先利用dissect解析日志，其次利用geoip将IP转换成坐标地址。
input {
    fil]]></description><category></category></item><item><title><![CDATA[Elasticsearch IK 插件 热更新词库]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/113700131</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/113700131</guid><author>wei_bo_cai</author><pubDate>Fri, 05 Feb 2021 17:05:41 +0800</pubDate><description><![CDATA[修改配置文件
&lt;!--用户可以在这里配置远程扩展字典 --&gt;
&lt;entry key="remote_ext_dict"&gt;location&lt;/entry&gt;
	&lt;!--用户可以在这里配置远程扩展停止词字典--&gt;
&lt;entry key="remote_ext_stopwords"&gt;location&lt;/entry&gt;

其中 location 是指一个 url，比如 http://192.168.1.147:8000/group/essay/sb]]></description><category></category></item><item><title><![CDATA[Elasticsearch in 查询 和not in 查询的实现方式]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/113694738</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/113694738</guid><author>wei_bo_cai</author><pubDate>Fri, 05 Feb 2021 14:14:54 +0800</pubDate><description><![CDATA[in
POST products/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "terms": {
            "product_id": ["1","2"]
          }
        }
      ]
    }
  }
}

或是
POST products/_search
{
  "query": {
    "bool": {
      "must": [
    ]]></description><category></category></item><item><title><![CDATA[Elasticsearch Arrays datatype 数组数据类型]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/107934970</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/107934970</guid><author>wei_bo_cai</author><pubDate>Tue, 11 Aug 2020 14:35:50 +0800</pubDate><description><![CDATA[Elasticsearch Arrays datatype 数组数据类型

]]></description><category></category></item><item><title><![CDATA[Python functools.lru_cache 实现高速缓存及其原理 源码解析]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/107860395</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/107860395</guid><author>wei_bo_cai</author><pubDate>Sat, 08 Aug 2020 17:00:39 +0800</pubDate><description><![CDATA[Python functools.lru_cache 实现高速缓存及其原理

]]></description><category></category></item><item><title><![CDATA[IOS APNS 推送，利用HTTP2.0 特性以及异步实现多用户推送]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/107845291</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/107845291</guid><author>wei_bo_cai</author><pubDate>Thu, 06 Aug 2020 17:50:44 +0800</pubDate><description><![CDATA[IOS APNS 推送，利用HTTP2.0 特性以及异步实现多用户推送

原生的apns不支持直接多用户推送，如果单纯的使用HTTP2.0， 而不考虑其特性直接利用循环推送会非常慢（每个推送大概会花费1秒左右的时间）
httpx，python中，支持http2.0请求的第三方包。简单教程
http2.0的特性，这里就不仔细说明了，可以自行查询。
以下提供了Django和aiohttp两个版本的服务器代码，可自行选择。（django只支持3.0以上版本）

import httpx
import asynci]]></description><category></category></item><item><title><![CDATA[python 使用 httpx 发送http2.0 请求]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/107846010</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/107846010</guid><author>wei_bo_cai</author><pubDate>Thu, 06 Aug 2020 17:45:37 +0800</pubDate><description><![CDATA[待续

]]></description><category></category></item><item><title><![CDATA[Elasticsearch Analyze API]]></title><link>https://blog.youkuaiyun.com/wei_bo_cai/article/details/106782675</link><guid>https://blog.youkuaiyun.com/wei_bo_cai/article/details/106782675</guid><author>wei_bo_cai</author><pubDate>Tue, 16 Jun 2020 11:12:36 +0800</pubDate><description><![CDATA[请求
GET /_analyze

POST /_analyze

GET /&lt;index&gt;/_analyze

POST /&lt;index&gt;/_analyze

参数
路径里的参数：index，指定索引。如果指定，则analyzer或者 &lt;field&gt;参数将覆盖此值。如果未指定分析器或字段，则分析API使用默认分析器作为索引。如果未指定索引，或者该索引没有默认分析器，则分析API使用标准分析器。




参数
含义




analyzer
（可选，字符串）应应用于提供的]]></description><category></category></item></channel></rss>