自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黄规速博客:学如逆水行舟,不进则退

大道至简、专注精进,总结反思,做更好的自己!

  • 博客(348)
  • 资源 (33)
  • 问答 (1)
  • 收藏
  • 关注

原创 架构师技能9-深入mybatis:Creating a new SqlSession到查询语句耗时特别长

确保后续如何智慧地绕开同类问题。以下是排查问题的过程和思路:二、定位问题。

2024-02-22 17:12:02 1039

原创 k8s实践(14)--scheduler调度器和pod调度策略

负责资源的调度(Pod调度),通过API Server的Watch接口监听新建Pod副本信息, 按照预定的调度策略将Pod调度到相应的Node节点上;

2024-01-06 21:49:26 1499 2

原创 架构师技能:程序员如何体现价值

最近领导提到到一个话题:做得好更好死得更快。然后周末大雨闲在家里总结了关于程序员悖论的思考。

2023-07-30 23:23:26 419 1

原创 GO进阶(5) 垃圾回收机制

当程序的内存占用达到一定阈值时,整个应用程序就会全部暂停,垃圾收集器会扫描已经分配的所有对象并回收不再使用的内存空间,当这个过程结束后,用户程序才可以继续执行,Go 语言在早期也使用这种策略实现垃圾收集,但是今天的实现已经复杂了很多。在应用程序中会使用到两种内存,分别为堆(Heap)和栈(Stack) , GC负责回收堆内存,而不负责回收栈中的内存:栈是线程的专用内存,专门为了函数执行而准备的,存储着函数中的局部变量以及调用栈,函数执行完后,编译器可以将栈上分配的内存可以直接释放,不需要通过GC来回收。

2023-03-05 15:08:05 1560 1

原创 Go项目的目录结构基本布局

随着项目的代码量在不断地增长,不同的开发人员按自己意愿随意布局和创建目录结构,项目维护性就很差,代码也非常凌乱。良好的目录与文件结构十分重要,尤其是团队合作的时候,良好的目录与文件结构可以减少很多不必要的麻烦。项目目录结构规范的的本质是提高了代码的可读性,最终目的是提高团队协作效率,降低工程维护成本。

2023-03-05 09:58:12 3628 2

原创 GO进阶(4) 深入Go的内存管理

Go语言成为高生产力语言的原因之一自己管理内存:Go抛弃了C/C++中的开发者管理内存的方式,实现了主动申请与主动释放管理,增加了逃逸分析和GC,将开发者从内存管理中释放出来,让开发者有更多的精力去关注软件设计,而不是底层的内存问题。这篇文章采用层层递进的方式,依次会介绍关于存储的基本知识,Go内存管理的 “前辈” TCMalloc,然后是Go的内存管理和分配,最后是总结。GO应用程序的内存一般也会分成堆区和栈区,程序在运行期间可以主动从堆区申请内存空间,这些内存由内存分配器分配并由垃圾收集器负责回收。

2023-02-26 10:07:30 885

原创 Go进阶(3):上下文context

Context 也叫作“上下文”,是一个比较抽象的概念,一般理解为程序单元的一个运行状态、现场、快照。其中上下是指存在上下层的传递,上会把内容传递给下,程序单元则指的是 Goroutine。每个 Goroutine 在执行之前,都要先知道程序当前的执行状态,通常将这些执行状态封装在一个 Context 变量中,传递给要执行的 Goroutine 中。当一个goroutine在衍生一个goroutine时,context可以跟踪到子goroutine,从而达到控制他们的目的;

2023-02-21 14:37:42 738 1

原创 go进阶(2) -深入理解Channel实现原理

Go的并发模型已经在详细说明。Go的CSP并发模型,是通过goroutine和channel来实现的。channelgoroutinegoroutinechannel是Go提供goroutine间的通信方式,使用channel可以使多个goroutine之间通信。,通过channel传递对象的过程和调用函数时的参数传递行为比较一致,比如也可以传递指针等。channel是类型相关的,一个channel只能传递一种类型的值,这个类型需要在声 明channel时指定。

2023-02-20 23:34:15 1626

原创 go进阶(1) -深入浅出goroutine并发运行调度机制

并发指的是同时进行多个任务的程序,Web处理请求,读写处理操作,I/O操作都可以充分利用并发增长处理速度,随着网络的普及,并发操作逐渐不可或缺。

2023-02-19 05:44:14 1052

原创 go进阶-GO创建web服务+websocket详解

go提供了一系列用于创建web服务器的标准,而非常简单。只需要调用net/http包中的ListenAndServe函数并传入网络地址和负责处理的处理器就ok了。net/http库实现了整套的http服务中的客户端、服务端接口,可以基于此轻松的发起HTTP请求或者对外提供HTTP服务。注1:如果网络地址为空,则默认使用hhtp的端口80进行网络连接。如果处理器参数为nil,则使用默认的多路复用转发器DefaultServeMux(Default默认 Serve服务器 Mux多路复用器)。

2023-02-13 12:06:15 109

原创 架构师技能8:springboot全局handler处理http 404错误引发登录失效的问题

一、背景过后由表及里分析问题的本质,复盘总结经验,并把总结内容记录下来。当你解决各种各样的问题,也就积累了丰富的解决问题的经验,解决问题的能力也将自然得到极大的提升。励志做一、背景国庆前我们线上出现一次故障:用户无法登录某个微服务,后面一段时间后就自动恢复了,然后我持续跟踪和分析这个问题好久找到原因,顺便在此记录下来。二、问题定位在接入层的其中一台nginx 统计日志:发现发生故障的时间段(晚上18xx~19:xx)内http 404错误特别多,这是一个异常的情况。

2022-12-01 22:51:05 1469 2

原创 思考思维(2):《极简思考》结构化思维

有一种人的口头禅是“我只说三点”,这种人通常很厉害。有人三句话说明白一件事,有人说半天别人也没听懂在说啥。这是表达能力出了问题吗?从根本上说,这是思维模式有待提升。随着信息浪潮时代的到来,如何快速应对大量信息,如何与他人展开更好的协作,是每个人都需要面临的问题。李笑来说,我们的大脑就是一个操作系统,只有不断升级才能跟上时代步伐。结构化思维,就是一种给大脑升级的方式,让大脑变得有序高效。

2022-11-21 20:19:31 849

原创 思考思维(1):思考和深度思考总结

为什么说是“不断逼近”呢?因为深度思考是一个思考的过程。很多时候我们都无法做到在第一次对某问题进行思考时就触其本质,但却可以在一次次的自我追问与深度思考后,越来越接近它的本质,直到有一天终于触及那个本质,并将它言简意赅的表达出来。比如“自由”是什么?清晰说出它的本质可不仅靠一次深度思考就能做到的。如果将这个定义具体化,可以看到它有如下5方面的表现。1、精准的用词和打比方著名的商业咨询顾问刘润曾说“所谓洞察本质,就是会打比方。”

2022-10-31 20:00:07 1094 3

原创 架构设计:线上服务故障应急机制讨论

海恩法则· 事故的发生是量的积累的结果。· 再好的技术、再完美的规章 , 在实际操作层面也无法取代人自身的素质和责任心。墨菲定律· 任何事情都没有表面看起来那么简单。· 所有事情的发展都会比你预计的时间长。· 会出错的事总会出错。· 如果你担心某种情况发生,那么它更有可能发生。警示我们,在互联网公司里,对生产环境发生的任何怪异现象和问题 都不要轻易忽视,对于其背后的原因一定要彻查。...

2022-08-30 10:58:57 835

原创 位运算应用:保存多状态标识应用

最近在梳理某个业务的服务状态,是前人牛人设计的使用位运算来记录表单字段的多个状态值。 位运算是大学的《计算机组成原理》学习的内容,而我们学习工作中很少用过位操作,经常阅读源码时人可能会偶尔看到使用位运算(因为直接使用位运算符效率更高),在此顺便把位运算做个简单的总结。我个人经常总结、不断反思做更好的自己............

2022-07-29 15:05:52 1028

原创 完整的电商系统

完善的b2b电商系统:管理端、商家端、用户端。资讯平台:资讯平台,基于vue,不影响seo。

2022-06-29 11:22:15 567

原创 程序员如何保住“金饭碗”

对于风口浪尖上的撸码人,这些只是一时的浪花,以后的职业道路还很长,在时代的变局中,程序员如何“保住”“金饭碗”:即想想找到支撑未来10年或者20年的赚钱之道。从第一性原理来思考,找到一些本质不变的东西,以不变应万变:......

2022-05-28 14:20:43 891 2

原创 架构师技能7:循环依赖引发的架构设计思考

面对大工程,仍然需要有一定的方法论,架构设计的本质是管理复杂性,因此做好架构设计就避免一些不应该出现的问题,如上面提到的循环依赖问题。

2022-05-04 22:27:01 1264

原创 认知系列4: 《认知突围》笔记

周末躺在床上翻阅有道笔记,发现几年前记录《认知突围》笔记,读完感慨:“懂得了很多道理,可依然过不好这一生”,但是想发布到这分享一下。 人生中有很多重要的东西, 但总有一些是相对来说更为重要的。 我们从与自己的关系讲到与他人的关系, 从金钱讲到知识再讲到时间, 这些都决定着我们的人生质量。 现在, 所有的认知汇集到这最后一章, 让我们开启智慧, 俯视自己的人生意义。人生如下图:长度:寿命长短,增加对身体的投资,让身体始终好用,增加长度。高度:决定事业,人生观。突............

2022-04-17 21:08:24 2368 2

原创 k8s实践(13)--有状态服务StatefulSet详解

最近项目搭建基于StatefulSet创建常驻pod的GPU虚机平台,项目接近尾声,在此顺便做了个总结,温故而知新,而不是走马观花,浅尝辄止懂些概念。一、k8s集群的服务分类在K8S运行的服务,从简单到复杂可以分成三类:无状态服务、普通有状态服务和有状态集群服务。下面分别来看K8S是如何运行这三类服务的。1、无状态服务(Stateless Service):1)定义:是指该服务运行的实例不会在本地存储需要持久化的数据,并且多个实例对于同一个请求响应的结果是完全一致的。2)随意扩容和缩

2022-04-17 14:07:02 4681

原创 架构师技能6:深入MySQL原理-Waiting for table metadata lock引发系统崩溃

一、背景我们在某个下午三点执行了某个库zone表的ddl操作,导致线上服务出现灾难性的后果:1、系统核心服务无法访问。2、系统基础服务依赖zone表的服务C出现线程阻塞进而导致服务C无法响应连接,使用apache的httpClient在获取链接超时报错:Read timed out。(不要被字面意思误解,httpClient的Read timed out不一定是响应超时,而是socket connect timeout,就是服务C无法接收请求连接)。由于此前从未遇到过Waiting for

2022-03-27 14:54:44 6186 2

原创 架构师技能5:如何做code review 代码简洁之道

前言CodeReview的目的是提升代码质量,尽早发现潜在缺陷与BUG,降低修复成本,同时促进团队内部知识共享,帮助更多人更好地理解系统。如何做好code review,可以参考谷歌code review 指南。原文地址:https://google.github.io/eng-practices/review/reviewecode review从大的方面来说:1、业务层面:业务逻辑是否正确等相关内容。例如 1)数据库字段的设计是否合理。 2)业务流程是否按............

2022-01-15 22:26:38 2089

原创 2021年简单总结

年终岁末总结回顾

2021-12-31 10:37:32 971 2

原创 架构师技能4-深入分析java进程CPU飙高和长耗时

以前也经常遇到java进程cpu飙高的问题,但是解决这次问题找到一个新方法:调整jvm的垃圾收集器从CMS改为G1,cpu飙高问题降低效果明显,故而把历史草稿笔记整理,温故而知新。

2021-11-28 15:26:10 8425 7

原创 架构师技能2:组件化思想之框架、脚手架、基础应用框架。

在《架构设计》https://blog.csdn.net/hguisu/category_5905793.html系列里面主要谈的是架构相关方法论,没有具体到代码层面。最近抽点时间来总结架构师如何站在巨人的肩膀上眺望远方。一、什么是框架这个在《架构设计(1)-谈谈架构》 已经明确:框架是组件实现的规范,例如:MVC、MVP、MVVM等,是提供基础功能的半成品,例如开源框架:Spring、spring boot、Django等,这是可以拿来直接使用或者在此基础上二次开发。框架是规范,架构是结构。

2021-09-12 12:30:13 3686

原创 架构师技能3-彻底深入理解和分析Java中内存溢出OutOfMemoryError

java开发人员经常遇到OutOfMemoryError的问题。要解决这些问题,要有对java虚拟机的内存管理有一定的认识,甚至对linux系统也要有一定的熟悉。昨天遇到了OutOfMemoryError:unable to create new native thread问题,再次把之前的草稿文章整理,顺便总结发出来。如果对jvm虚拟机还不了解,请先看我之前的总结:《java(5)-深入理解虚拟机JVM》和《java(9)-深入浅出GC垃圾回收机制》第一种OutOfMemoryError:

2021-08-21 17:22:54 1860 6

原创 架构师技能3:code review-高效代码50例

一、常量&变量1.1.直接赋值常量值,禁止声明新对象直接赋值常量值,只是创建了一个对象引用,而这个对象引用指向常量值。反例:Long i = new Long(1L);String s = new String("abc");正例:Long i = 1L;String s = "abc";1.2.当成员变量值无需改变时,尽量定义为静态常量在类的每个对象实例中,每个成员变量都有一份副本,而成员静态常量只有一份实例。反例:public class H...

2021-05-24 22:32:20 462

原创 架构师技能1:Java工程规范、浅析领域模型VO、DTO、DO、PO、优秀命名

java顶层文件结构:理解和浅析VO、DTO、DO(Entity)、PO把我们之前项目的相关规范做了个总结记录下来,仅供参考,望能有点帮助。

2021-05-23 00:53:47 11386 9

原创 认知系列3: 看看资深研发工程师的思维模式

同一个世界,同一个问题,每个人站到的角度不一样,看到的东西不一样,得出的结论不一样,采取的行动不一样,最终的结果不一样。就是你站在桥上看风景,看风景的人在楼上看你,等你在一层的时候...

2021-03-25 11:43:18 1774 2

原创 认知系列2:认知半径

一、认知半径美国气象学家J·马歇尔·谢博德(J. Marshall Shepherd)就在TED的舞台上,提出一个“认知半径”原理,把人的认知范围比作一个圆圈,认知半径越大,人的认知范围也就越广,也就是对事物的认识更清晰,掌握事物的本质更深入。认知半径,决定了一个人能力的大小人的认知是会受到很多因素限制的,包括信仰、偏见、文化素养和错误信息等等。人们很容易高估了自己所掌握的知识,或者低估了自己的无知。我们对世界的认知,正在被这3种思维误区毁掉。误区一:确认偏误确认偏误,就是人们.

2021-03-16 09:31:21 3214 11

原创 认知系列1:认知是什么

认知是近几年很火的一个词汇,特别是罗振宇们的贩卖焦虑后,认知升级频繁被各种鸡汤提到:“认知升级改变命运”,“认知升级带来自我突破”等等,如果我们只是停留在模糊概念层面,阅后即焚或者只保留在收藏夹里面,那“懂得这么多道理,但依然过不好这一生”。空谈认知是没有意义的。做到知行合一,“用好喝鸡汤的工具:汤勺,可以把这一生过的很好”。带着思考去实践,经过沉淀积累,然后厚积薄发,成长复利就慢慢变厚,由量变到达质变,就会感受认知升级的价值:提高思维能力,做出优秀的决定,找到解决问题的最短路径。一、认知是什么

2021-03-16 09:26:09 1519 2

原创 善于总结、不断反思做更好的自己

在互联网混迹了11年,我已经坚持写技术博客有十多年。现在把过去两三年有道笔记学习、总结、记录做一个分享,一方面给自己一个梳理,另一方面坚持不断持续精进思考和总结。因为世界上最怕的就是认真和坚持。感触:从05年上大学到现在,已经北漂十多年,感触颇多,哲学家常思考的问题:" 我是谁?"" 我从哪里来?"" 要到哪里去?我想如果每个人都有自己对这三个问题有足够的认知,就能清楚:我为什么是现在的我?我现在之所以要过这种生活而不是那种生活?我之所以会这么想而不会那么想?.

2021-03-16 09:24:49 6617 18

原创 k8s(5)-kubernetes存储系统Volume和PV

一、Volume我们经常会说:容器和 Pod 是短暂的。其含义是它们的生命周期可能很短,会被频繁地销毁和创建。容器销毁时,保存在容器内部文件系统中的数据都会被清除。1、当容器崩溃 时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动。2、在 Pod 中同时运行多个容器时,这些容器之间通常需要共享文件。Kubernetes中的Volume抽象就很好的解决了 这些问题. 为了持久化保存容器的数据,可以使用 Kubernetes Volume。...

2021-02-20 16:32:48 501 2

原创 PostgreSQL入门和高维向量索引

一、安装1.添加PosgreSQL Yum Repositorywget https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-ppc64le/pgdg-centos96-9.6-3.noarch.rpmyum install pgdg-centos96-9.6-3.noarch.rpm ;2

2020-12-01 17:23:50 2267

原创 docker实践(7) 容器网络和网络SR-IOV插件

为了标准化网络的驱动开发步骤和支持多种网络驱动,Docker 将网络部分代码被抽离成为了单独的网络库(Libnetwork),Libnetwork 提供了可以用于开发多种网络驱动的标准化接口和组件。libnetwork是docker 在版本1.9中引入的项目,它有一整套的自定义网络命令和跨主机网络支持。

2020-10-15 17:43:53 271 1

原创 docker实践(5) 容器插件docker plugin

Docker Plugin 是 Docker 社区提供的一种扩展机制,可以通过插件来增强 Docker 引擎的功能。Docker Plugin 可以让我们快速、轻松地扩展 Docker 引擎的功能,将其变得更加灵活和可定制化。

2020-09-16 23:56:32 322 1

原创 docker实践(4) docker资源限制和lxcfs实现对容器资源视图隔离

docker 是通过 CPU cgroups 来限制容器使用的cpu上限,而和CPU groups有关的三个比较重要的参数是: cpu.cfs_quota_us、cpu.cfs_period_us、cpu.shares.

2020-09-09 18:22:35 177 1

原创 DevOps-深入浅出详解

提到DevOps这个词,我相信很多人一定不会陌生。作为一个热门的概念,DevOps近年来频频出现在各大技术社区和媒体的文章中,备受行业大咖的追捧,也吸引了很多吃瓜群众的围观。那么,DevOps是什么呢?有人说它是一种方法,也有人说它是一种工具,还有人说它是一种思想。更有甚者,说它是一种哲学。越说越玄乎,感觉都要封神啦!DevOps这玩意真的有那么夸张吗?它到底是干嘛用的?为什么行业...

2020-08-20 19:14:53 5215 2

原创 专栏总结:场景实践

专栏总结:场景实践

2020-08-18 17:34:18 451

原创 专栏总结:架构设计总结

专栏总结:架构设计总结

2020-08-18 17:33:20 695

Ttrift 访问hive的php客户包

Ttrift 访问hive的php客户包

2014-02-11

计算机操作系统教程+张尧学+清华版 第三版.pdf

计算机操作系统教程+张尧学+清华版 第三版.pdf

2012-09-28

谷歌三大核心技术

TheGoogleFileSystem中文版, MapReduce中文版, BigTable中文版,

2012-02-09

高性能MySQL

高性能MySQL,架设高性能mysql 高性能MySQL,架设高性能mysql

2011-12-23

MySQL索引背后的数据结构及算法原理

MySQL索引背后的数据结构及算法原理,深入了解mysql的索引实现原理

2011-12-23

JAVA反射机制和原理

JAVA反射机制和原理JAVA反射机制和原理JAVA反射机制和原理

2010-08-15

详细介绍 jpa 开发文档

详细介绍 jpa 开发文档详细介绍 jpa 开发文档详细介绍 jpa 开发文档详细介绍 jpa 开发文档

2010-08-15

memcache软件和+教程

memcache软件和+教程memcache软件和+教程

2010-04-02

经典总结php效率高写法!

经典总结,php效率高写法,php效率高写法

2010-04-02

LAMP环境搭建教程!

LAMP环境搭建,相当经典!希望对初学者有用

2010-04-02

Flex初学者中文教程

Flex初学者中文教程,Flex初学者中文教程Flex初学者中文教程

2010-01-12

flex例子大全,对初学者很受用

flex例子大全,flex例子大全,flex例子大全

2010-01-12

Flex3企业级Web应用系统设计与实现

Flex3企业级Web应用系统设计与实现,很不错哦

2010-01-12

ajax与php源代码

ajax与php源代码ajax与php源代码ajax与php源代码ajax与php源代码

2009-05-22

EXCEL内容导入mysql

EXCEL内容导入mysqlEXCEL内容导入mysqlEXCEL内容导入mysqlEXCEL内容导入mysql

2009-05-22

php+JS使用大全

php+JS使用大全php+JS使用大全php+JS使用大全php+JS使用大全php+JS使用大全

2009-05-22

php单例模式和工厂模式

php单例模式php单例模式php单例模式php单例模式

2009-05-22

ajax无刷新上传图片实例

ajax无刷新上传图片实例,很实用!学习ajax的好帮手

2009-05-22

最全面的php图片上传类

最全面的php图片上传:对图像加水印和 缩略图片

2009-05-15

ajax开发大全应用实例

ajax开发大全应用实例 ,包括Xajax中文手册(第一版).mht

2008-12-13

PHP常用函数大全使用

PHP常用函数大全,有很多实例!欢迎使用

2008-12-13

mysql手册 包括mysql优化和管理

mysql手册 包括mysql优化和管理,最新最全面的mysql手册

2008-11-29

深入浅出的mysql优化大全

深入浅出的mysql优化大全!网易数据库专家写的

2008-11-29

PHPEXCEL使用小结

PHPEXCEL使用小结,告诉你PHPEXCEL使用

2008-11-08

Ajax与php课本源代码

Ajax与php课本源代码,这是最新的Ajax与php结合使用

2008-10-07

JAVASCRIPT经典教程

JAVASCRIPT经典教程,轻松学好JS

2008-10-07

Javascript特效大全

Javascript特效大全,学习JS不再烦恼

2008-10-07

apache+PHP+MySQL一键安装软件!

PHP一键安装软件,很实用,特别对那些php初学者很有用处

2008-10-07

VBA编程大全 学习VBA

VBA编程大全,包括所有控件的使用,和一些实现技巧

2008-09-25

Northwind(罗斯文+示例数据库)

Northwind(罗斯文+示例数据库)学习access和VBA好处

2008-09-25

access实例,轻松学习

access实例,轻松学习,运用VBA语言实现各种肝功能

2008-09-25

editor

editor editor editor

2008-02-29

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除