<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[kwinH的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/kwinH</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; kwinH]]></copyright><item><title><![CDATA[1、一键安装高可用K8S集群脚本]]></title><link>https://blog.csdn.net/kwinH/article/details/125207267</link><guid>https://blog.csdn.net/kwinH/article/details/125207267</guid><author>kwinH</author><pubDate>Mon, 13 Jun 2022 16:34:21 +0800</pubDate><description><![CDATA[一键安装高可用K8S集群脚本]]></description><category></category></item><item><title><![CDATA[责任链模式]]></title><link>https://blog.csdn.net/kwinH/article/details/120870877</link><guid>https://blog.csdn.net/kwinH/article/details/120870877</guid><author>kwinH</author><pubDate>Wed, 20 Oct 2021 18:26:44 +0800</pubDate><description><![CDATA[责任链模式
在现实生活中，一个事件需要经过多个对象处理是很常见的场景。例如，采购审批流程、请假流程等。公司员工请假，可批假的领导有部门负责人、副总经理、总经理等，但每个领导能批准的天数不同，员工必须根据需要请假的天数去找不同的领导签名，也就是说员工必须记住每个领导的姓名、电话和地址等信息，这无疑增加了难度。
责任链（Chain of Responsibility）模式的定义：
为了避免请求发送者与多个请求处理者耦合在一起，于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链；当有请求发生时，]]></description><category></category></item><item><title><![CDATA[一招教你无阻塞读写Golang channel]]></title><link>https://blog.csdn.net/kwinH/article/details/120547695</link><guid>https://blog.csdn.net/kwinH/article/details/120547695</guid><author>kwinH</author><pubDate>Wed, 29 Sep 2021 14:20:08 +0800</pubDate><description><![CDATA[无论是无缓冲通道，还是有缓冲通道，都存在阻塞的情况，教你一招再也不遇到channel阻塞的问题。
这篇文章会介绍，哪些情况会存在阻塞，以及如何使用select解决阻塞。
阻塞场景
阻塞场景共4个，有缓存和无缓冲各2个。
无缓冲通道的特点是，发送的数据需要被读取后，发送才会完成，它阻塞场景：

通道中无数据，但执行读通道。
通道中无数据，向通道写数据，但无协程读取。

// 场景1
func ReadNoDataFromNoBufCh() {
	noBufCh := make(chan int)

	&lt;]]></description><category></category></item><item><title><![CDATA[Golang调度器]]></title><link>https://blog.csdn.net/kwinH/article/details/120501628</link><guid>https://blog.csdn.net/kwinH/article/details/120501628</guid><author>kwinH</author><pubDate>Mon, 27 Sep 2021 09:25:56 +0800</pubDate><description><![CDATA[为什么在内核的线程调度器之外Go还需要一个自己的调度器？

POSIX线程API是对已有的UNIX进程模型的逻辑扩展，因此线程和进程在很多方面都类似。例如，线程有自己的信号掩码，可以分配CPU affinity（进程要在某个给定的 CPU 上尽量长时间地运行而不被迁移到其他处理器的倾向性），可以放入 cgroups中，并且可以查询它们使用的资源。但是这些特性对于Go程序来说都是不必要的开销。
另外一个问题是基于Go语言模型，OS的调度决定并不一定合理。例如，Go的垃圾回收需要内存处于一致性的状态，这需要所有]]></description><category></category></item><item><title><![CDATA[深入Go的Map使用和实现原理]]></title><link>https://blog.csdn.net/kwinH/article/details/120495159</link><guid>https://blog.csdn.net/kwinH/article/details/120495159</guid><author>kwinH</author><pubDate>Sun, 26 Sep 2021 19:22:20 +0800</pubDate><description><![CDATA[开篇语

Map是一种常用的kv数据结构，程序设计中经常使用，且作为一种最基础的数据结构，很多编程语言本身提供的api都会有实现，Go也不例外，今天我们将从一下三个方面为大家分析Go中的Map。


什么是Map？
Go中如何使用Map？
以及Go的Map实现机制是什么样？希望通过这几个方面的讲解，让大家真正理解Go的Map使用和实现。

什么是Map
key，value存储

最通俗的话说Map是一种通过key来获取value的一个数据结构，其底层存储方式为数组，在存储时key不能重复，当key重复时，v]]></description><category></category></item><item><title><![CDATA[elasticsearch入门使用]]></title><link>https://blog.csdn.net/kwinH/article/details/115348123</link><guid>https://blog.csdn.net/kwinH/article/details/115348123</guid><author>kwinH</author><pubDate>Wed, 31 Mar 2021 14:55:41 +0800</pubDate><description><![CDATA[安装
创建统一docker网路
docker network create -d bridge web

docker-composer方式安装
version: '3'
services:
    elasticsearch:
      image: elasticsearch:7.11.2
      container_name: es
      restart: always
      privileged: true
      ports:    #端口映射
        - 9200:]]></description><category></category></item><item><title><![CDATA[面试官：MYSQL单表数据达2000万性能严重下降，为什么]]></title><link>https://blog.csdn.net/kwinH/article/details/114583497</link><guid>https://blog.csdn.net/kwinH/article/details/114583497</guid><author>kwinH</author><pubDate>Wed, 10 Mar 2021 08:43:25 +0800</pubDate><description><![CDATA[原文：https://zhuanlan.zhihu.com/p/355302417
不知从什么时候开始，有着MySQL单表数据量超过2000万性能急剧下降的说法。
在中国互联网技术圈流传着这么一个说法：MySQL 单表数据量大于 2000 万行，性能会明显下降。事实上，这个传闻据说最早起源于百度。具体情况大概是这样的，当年的 DBA 测试 MySQL性能时发现，当单表的量在 2000 万行量级的时候，SQL 操作的性能急剧下降，因此，结论由此而来。然后又据说百度的工程师流动到业界的其它公司，随之也带去了这个]]></description><category></category></item><item><title><![CDATA[数据库两个神器【索引和锁】]]></title><link>https://blog.csdn.net/kwinH/article/details/114572597</link><guid>https://blog.csdn.net/kwinH/article/details/114572597</guid><author>kwinH</author><pubDate>Tue, 09 Mar 2021 08:59:59 +0800</pubDate><description><![CDATA[前言
只有光头才能变强
索引和锁在数据库中可以说是非常重要的知识点了，在面试中也会经常会被问到的。
本文力求简单讲清每个知识点，希望大家看完能有所收获
声明：如果没有说明具体的数据库和存储引擎，默认指的是MySQL中的InnoDB存储引擎
一、索引
在之前，我对索引有以下的认知：
索引可以加快数据库的检索速度
表经常进行INSERT/UPDATE/DELETE操作就不要建立索引了，换言之：索引会降低插入、删除、修改等维护任务的速度。
索引需要占物理和数据空间。
了解过索引的最左匹配原则
知道索引的分类：聚集]]></description><category></category></item><item><title><![CDATA[MySQL中VARCHAR最大长度是多少？CHAR和VARCHAR有哪些区别?]]></title><link>https://blog.csdn.net/kwinH/article/details/105790368</link><guid>https://blog.csdn.net/kwinH/article/details/105790368</guid><author>kwinH</author><pubDate>Mon, 27 Apr 2020 14:40:13 +0800</pubDate><description><![CDATA[本文转载于：https://learn.blog.csdn.net/article/details/103341778


如果要了解MySQL其他类型长度，可以参考《MySQL字段长度、取值范围、存储开销》

以我多年经验来看，VARCHAR的最大长度、字符串类型选择，用MySQL的人中十之七八是不清楚的。网上文章鱼目混珠，以讹传讹居多。
本文不止介绍了原理，还提供了案例手把手教你自己分析，彻...]]></description><category></category></item><item><title><![CDATA[漫画 | 什么是跳跃表？]]></title><link>https://blog.csdn.net/kwinH/article/details/87258773</link><guid>https://blog.csdn.net/kwinH/article/details/87258773</guid><author>kwinH</author><pubDate>Thu, 14 Feb 2019 11:09:40 +0800</pubDate><description><![CDATA[这是发生在很多年以前的故事......几天以前......几天之后......拍卖行的商品总数量有几十万件，对应数据库商品表的几十万条记录。如果是按照商品名称精确查询还好办，可以直接从数据库查出来，最多也就上百条记录。如果是没有商品名称的全量查询怎么办？总不可能把数据库里的所有记录全查出来吧，而且还要支持不同字段的排序。所以，只能提前在内存中存储有序的全量商品集合，每一种排序方式都保存成独立的集合...]]></description><category></category></item><item><title><![CDATA[mysql集群技术：主主复制]]></title><link>https://blog.csdn.net/kwinH/article/details/78706695</link><guid>https://blog.csdn.net/kwinH/article/details/78706695</guid><author>kwinH</author><pubDate>Mon, 04 Dec 2017 10:51:11 +0800</pubDate><description><![CDATA[mysql集群技术：主主复制

主从复制,2台服务器地位有差别,一主一从. 
从服务器一是起到备份作用,一是起到分担查询压力的作用.

接下来的配置,2台服务器之间,没有明显的地位差距, 两者可以同步对方的内容. 
一般的格局如下图: 
两台服务器相互复制

Created with Raphaël 2.1.0主库A主库A主库B主库B主库A更新，则主库B也更新主库A与主库B的地位是平等的主库B更新]]></description><category></category></item><item><title><![CDATA[mysql集群技术：主从复制，读写分离]]></title><link>https://blog.csdn.net/kwinH/article/details/78686934</link><guid>https://blog.csdn.net/kwinH/article/details/78686934</guid><author>kwinH</author><pubDate>Fri, 01 Dec 2017 15:09:41 +0800</pubDate><description><![CDATA[服务器端读写分离的具体技术
1 数据库集群技术集群由 3 个概念
2 数据库复制  replication
数据库复制  replication  的实现原理
实现步骤 
具体实施
配置主服务器
配置从服务器
常用语句 
主服务器的日志格式用哪种好 
调试
方法一 重置slave
方法二
方法三 重设同步日志件及位置1查看slave状态
2暂停slave
3到主服务器上查看主机状态
4修改从服务同步]]></description><category></category></item><item><title><![CDATA[composer切换国内镜像]]></title><link>https://blog.csdn.net/kwinH/article/details/78678390</link><guid>https://blog.csdn.net/kwinH/article/details/78678390</guid><author>kwinH</author><pubDate>Thu, 30 Nov 2017 17:09:40 +0800</pubDate><description><![CDATA[切换国内镜像源全局配置composer config -g repo.packagist composer https://packagist.phpcomposer.com查看配置$ composer config -l
[repositories.packagist.org.type] composer
[repositories.packagist.org.url] https://packa]]></description><category></category></item><item><title><![CDATA[composer安装]]></title><link>https://blog.csdn.net/kwinH/article/details/78678189</link><guid>https://blog.csdn.net/kwinH/article/details/78678189</guid><author>kwinH</author><pubDate>Thu, 30 Nov 2017 16:55:26 +0800</pubDate><description><![CDATA[安装Liunx下安装curl -sS https://getcomposer.org/installer | phpmv composer.phar /usr/local/bin/composerWindows下安装下载并且运行 Composer-Setup.exe，它将安装最新版本的 Composer ，并设置好系统的环境变量，因此你可以在任何目录下直接使用 composer 命令。查看安装版本c]]></description><category></category></item><item><title><![CDATA[ssh别名免密登录]]></title><link>https://blog.csdn.net/kwinH/article/details/78402751</link><guid>https://blog.csdn.net/kwinH/article/details/78402751</guid><author>kwinH</author><pubDate>Tue, 31 Oct 2017 14:08:02 +0800</pubDate><description><![CDATA[编辑~/.ssh/config文件Host aliasName
HostName 192.168.1.188
Port 22
User root
默认用~/.ssh/id_rsa登录 
改用其他私钥登录，则添加以下语句 IdentityFile ~/.ssh/id_rsa_2048]]></description><category></category></item><item><title><![CDATA[Nginx之日志管理]]></title><link>https://blog.csdn.net/kwinH/article/details/75514641</link><guid>https://blog.csdn.net/kwinH/article/details/75514641</guid><author>kwinH</author><pubDate>Thu, 20 Jul 2017 13:34:47 +0800</pubDate><description><![CDATA[解析日志格式我们观察nginx的server段,可以看到如下类似信息 
access_log  logs/host.access.log   main;
  这说明 该server, 它的访问日志的文件是  logs/host.access.log , 
  使用的格式”main”格式. 
  除了main格式,我们可以自定义其他格式.
main格式是什么?main默认的日志格式:    log_f]]></description><category></category></item><item><title><![CDATA[Nginx之变量]]></title><link>https://blog.csdn.net/kwinH/article/details/75513132</link><guid>https://blog.csdn.net/kwinH/article/details/75513132</guid><author>kwinH</author><pubDate>Thu, 20 Jul 2017 13:24:03 +0800</pubDate><description><![CDATA[Nginx之变量
  变量
  意义  $status
  HTTP状态
  $body_bytes_sent
  请求体body长度
  $http_referer
  referer来源信息
  $http_user_agent
  http-user-agent用户代理/蜘蛛
  $http_x_forwarded_for
  在经过代理时,代理把你的本来IP加在此头信息中,传输你的原始IP]]></description><category></category></item><item><title><![CDATA[MYSQL之show status详解]]></title><link>https://blog.csdn.net/kwinH/article/details/73527844</link><guid>https://blog.csdn.net/kwinH/article/details/73527844</guid><author>kwinH</author><pubDate>Wed, 21 Jun 2017 10:48:46 +0800</pubDate><description><![CDATA[MySQL运行状态show status中文详解
  状态名
  作用域
  详细解释  Aborted_clients
  Global
  由于客户端没有正确关闭连接导致客户端终止而中断的连接数
  Aborted_connects
  Global
  试图连接到MySQL服务器而失败的连接数
  Binlog_cache_disk_use
  Global
  使用临时二进制日志缓存但超过b]]></description><category></category></item><item><title><![CDATA[MYSQL性能分析之show profiles]]></title><link>https://blog.csdn.net/kwinH/article/details/73527629</link><guid>https://blog.csdn.net/kwinH/article/details/73527629</guid><author>kwinH</author><pubDate>Wed, 21 Jun 2017 10:32:56 +0800</pubDate><description><![CDATA[打开profile分析语句show variables like ‘%profiling%’; 
#on开off关 开启 
set profiling=on;mysql> show variables like 'profiling';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| pr]]></description><category></category></item><item><title><![CDATA[MYSQL性能分析之SHOW PROCESSLIST]]></title><link>https://blog.csdn.net/kwinH/article/details/73527081</link><guid>https://blog.csdn.net/kwinH/article/details/73527081</guid><author>kwinH</author><pubDate>Wed, 21 Jun 2017 10:29:23 +0800</pubDate><description><![CDATA[SHOW PROCESSLIST命令 详解SHOW PROCESSLIST显示哪些线程正在运行。可以帮助识别出有问题的查询语句，两种方式使用这个命令。
  如果有 SUPER 权限，则可以看到全部的线程，否则，只能看到自己发起的线程（这是指，当前对应的 MySQL 帐户运行的线程）。 show processlist;只列出前100条，如果想全列出请使用show full processlist;]]></description><category></category></item></channel></rss>