自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(154)
  • 收藏
  • 关注

原创 『Kubernetes(K8S) 入门进阶实战』资源管理

【代码】『Kubernetes(K8S) 入门进阶实战』资源管理。

2025-05-02 02:05:33 902

原创 『Kubernetes(K8S) 入门进阶实战』Kubernetes介绍

kubernetes 的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。目的是实现资源管理的自动化,主要提供了如下的主要功能:自我修复:一旦某一个容器崩溃,能够在 1 秒中左右迅速启动新的容器弹性伸缩:可以根据需要,自动对集群中正在运行的容器数量进行调整服务发现:服务可以通过自动发现的形式找到它所依赖的服务负载均衡:如果一个服务起动了多个容器,能够自动实现请求的负载均衡版本回退:如果发现新发布的程序版本有问题,可以立即回退到原来的版本存储编排。

2025-05-02 02:05:15 709

原创 『Kubernetes(K8S) 入门进阶实战』实战入门 - Namespace 与 Pod

Pod 是 kubernetes 集群进行管理的最小单元,程序要运行必须部署在容器中,而容器必须存在于 Pod 中Pod 可以认为是容器的封装,一个 Pod 中可以存在一个或者多个容器kubernetes 在集群启动之后,集群中的各个组件也都是以 Pod 方式运行的。可以通过下面命令查看。

2025-05-02 02:05:05 495

原创 『Kubernetes(K8S) 入门进阶实战』kubernetes集群环境搭建

13. (不建议安装 flannel)安装网络插件(用于解决上面的 NotReady),只在 master 节点操作即可。

2025-05-02 02:04:50 711

原创 『Kubernetes(K8S) 入门进阶实战』实战入门 - Label、Deployment、Service

在 kubernetes 中,Pod 是最小的控制单元,但是 kubernetes 很少直接控制 Pod,一般都是通过 Pod 控制器来完成的。Pod 控制器用于 Pod 的管理,确保 Pod 资源符合预期的状态,当 Pod 的资源出现故障时,会尝试进行重启或重建 Pod虽然每个 Pod 都会分配一个单独的 Pod IP,然而却存在如下两问题Pod IP 会随着 Pod 的重建产生变化Pod IP 仅仅是集群内可见的虚拟 IP,外部无法访问。

2025-05-02 02:04:39 535

原创 『Kubernetes(K8S) 入门进阶实战』安全认证、DashBoard 部署

【代码】『Kubernetes(K8S) 入门进阶实战』安全认证、DashBoard 部署。

2025-05-02 02:04:13 574

原创 『Kubernetes(K8S) 入门进阶实战』数据存储

前面已经学习了使用 NFS 提供存储,此时就要求用户会搭建NFS系统,并且会在yaml配置 nfs由于 kubernetes 支持的存储系统有很多,要求客户全都掌握,显然不现实。为了能够屏蔽底层存储实现的细节,方便用户使用, kubernetes 引入 PV 和 PVC 两种资源对象PV(Persistent Volume)是持久化卷的意思,是对底层的共享存储的一种抽象。一般情况下 PV 由 kubernetes 管理员进行创建和配置,它与底层具体的共享存储技术有关,并通过插件完成与共享存储的对接。

2025-05-02 00:37:26 1187

原创 『Kubernetes(K8S) 入门进阶实战』实战入门 - Service 详解

在前面课程中已经提到,Service 对集群之外暴露服务的主要方式有两种:NotePort 和 LoadBalancer,但是这两种方式,都有一定的缺点NodePort 方式的缺点是会占用很多集群机器的端口,那么当集群服务变多的时候,这个缺点就愈发明显LB 方式的缺点是每个 service 需要一个 LB,浪费、麻烦,并且需要 kubernetes 之外设备的支持。

2025-05-01 17:57:26 1013 1

原创 『Build with AI 2025』Gemini 实验

2. 生成人物动作与商品组合。

2025-05-01 17:08:04 295

原创 『MCP』初体验

5. 然后尝试问它:纽约明天的天气怎么样。这样就可以看到调用了自己的文件。

2025-05-01 16:06:29 677

原创 『Kubernetes(K8S) 入门进阶实战』实战入门 - Pod 控制器详解

什么是 Pod 控制器?Pod 控制器是管理 pod 的中间层,使用 Pod 控制器之后,只需要告诉 Pod 控制器,想要多少个什么样的 Pod 就可以了,它会创建出满足条件的 Pod 并确保每一个 Pod 资源处于用户期望的目标状态。如果 Pod 资源在运行中出现故障,它会基于指定策略重新编排 Pod。

2025-04-20 19:48:25 641

原创 『Kubernetes(K8S) 入门进阶实战』实战入门 - Pod 详解

Pod 的资源清单apiVersion: v1 #必选,版本号,例如v1kind: Pod   #必选,资源类型,例如 Podmetadata:   #必选,元数据name: string #必选,Pod名称namespace: string #Pod所属的命名空间,默认为"default"labels:    #自定义标签列表spec: #必选,Pod中容器的详细定义containers: #必选,Pod中容器列表- name: string #必选,容器名称。

2025-04-12 12:55:30 1178 1

原创 『MySQL 实战 45 讲』24 - MySQL是怎么保证主备一致的?

4. 执行一次删除语句,查看 delete 语句在 binlog 是怎么记录的。

2024-12-07 13:48:33 1122

原创 『MySQL 实战 45 讲』22 - MySQL 有哪些“饮鸩止渴”提高性能的方法?

由慢查询导致性能问题的三种可能情况,实际上出现最多的是前两种可以通过下面过程,预先发现问题上线前,把慢查询日志(slow log)打开,并且把设置成 0,确保每个语句都会被记录入慢查询日志在测试表里插入模拟线上的数据,做一遍回归测试观察慢查询日志里每类语句的输出,特别留意字段是否与预期一致新增的 SQL 语句不多,手动跑一下就可以。而如果是新项目的话,或者是修改了原有项目的表结构设计,全量回归测试都是必要的。这时候,你需要工具帮你检查所有的 SQL 语句的返回结果。

2024-06-29 13:23:10 1339 1

原创 『MySQL 实战 45 讲』21 - 为什么我只改一行的语句,锁这么多?

session A 的 delete 语句加了 limit 2,但是 c=10 的记录其实只有两条,因此加不加 limit 2,删除效果都一样,但是加锁的效果就不一样。

2024-05-04 19:39:57 866

原创 『MySQL 实战 45 讲』20 - 幻读是什么,幻读有什么问题?

3. 当执行 select * from t where d=5 for update 的时候,6 个记录加上了行锁,还同时加了 7 个间隙锁,这样就确保无法再插入新的记录。

2024-05-04 13:51:18 1247

原创 『MySQL 实战 45 讲』19 - 为什么我只查一行的语句,也执行这么慢?

4. 可以看出 905 号线程是问题根源,可以执行。2. 扫描 1 行但是执行还是很慢的情况。

2024-05-03 00:16:53 352

原创 『MySQL 实战 45 讲』18 - 为什么这些SQL语句逻辑相同,性能却差异巨大

4.5. 优化器可以选择遍历主键索引,也可以选择遍历索引 t_modified,优化器对比索引大小后发现,索引 t_modified 更小,遍历这个索引比遍历主键索引来得更快。因此。但是这里是全索引扫描6. 即使对于对于不改变有序性的函数,优化器也不会考虑使用索引(),例如。

2024-05-02 20:05:14 57

原创 『SpringBoot 源码分析』run() 方法执行流程:(4)刷新应用上下文-处理 @Import 注解

【代码】『SpringBoot 源码分析』run() 方法执行流程:(4)刷新应用上下文-处理 @Import 注解。

2023-09-09 12:27:41 387 1

原创 『SpringBoot 源码分析』run() 方法执行流程:(3)刷新应用上下文-处理 @ComponentScan 注解

【代码】『SpringBoot 源码分析』run() 方法执行流程:(3)刷新应用上下文-处理 @ComponentScan 注解。

2023-09-09 00:45:25 539

原创 『SpringBoot 源码分析』run() 方法执行流程:(2)刷新应用上下文-准备阶段

【代码】『SpringBoot 源码分析』run() 方法执行流程:(2)刷新应用上下文-准备阶段。

2023-09-02 00:00:25 614

原创 『SpringBoot 源码分析』run() 方法执行流程:(1)初始化 SpringApplication 、上下文环境、应用上下文

6. 然后根据调用栈,找到 main 入口,获取到主程序类,设置到。5. 设置完初始化器之后,开始设置监听器。的实现类,逐一初始化,并按照。找到所有 key 为。

2023-08-19 20:44:11 745 1

原创 『SpringBoot 源码分析』自动配置

【代码】『SpringBoot 源码分析』自动配置。

2023-08-08 01:32:19 330

原创 『SpringBoot 源码分析』依赖管理

【代码】『SpringBoot 源码分析』依赖管理。

2023-08-05 11:30:50 153

原创 『Dubbo SPI源码分析』@Adaptive 机制分析

【代码】『Dubbo SPI源码分析』@Adaptive 机制分析。

2023-07-23 01:04:54 118

原创 『Dubbo SPI源码分析』依赖注入机制分析

【代码】『Dubbo SPI源码分析』依赖注入机制分析。

2023-07-23 00:54:11 124

原创 『Dubbo SPI源码分析』Wrapper 机制分析

【代码】『Dubbo SPI源码分析』Wrapper 机制分析。

2023-07-22 23:56:18 111

原创 『Dubbo SPI源码分析』SPI 机制分析

【代码】『Dubbo SPI源码分析』SPI 机制分析。

2023-07-22 21:55:17 115

原创 『手撕 Mybatis 源码』11 - 二级缓存

/</</

2023-07-03 00:52:48 143

原创 『手撕 Mybatis 源码』10 - 一级缓存

【代码】『手撕 Mybatis 源码』10 - 一级缓存。

2023-07-02 00:23:54 219

原创 『手撕 Mybatis 源码』09 - MyBatis 插件

用于定义插件的类指定要拦截哪个对象里面哪个方法// 详细的配置要拦截那些对象里面的那些方法 }由于一个拦截器可以同时拦截多个对象的多个方法,,所以就使用了Signture数组,该注解定义了拦截的完整信息// 拦截的类 Class <?> type();// 举例:type = StatementHandler.class // 拦截的方法 String method();// 举例:method = "prepare" // 拦截方法的参数 Class <?

2023-06-30 00:50:20 224

原创 『手撕 Mybatis 源码』08 - 动态代理 invoke 方法

【代码】『手撕 Mybatis 源码』08 - 动态代理 invoke 方法。

2023-06-22 10:44:30 416

原创 『手撕 Mybatis 源码』07 - Proxy 对象创建

【代码】『手撕 Mybatis 源码』07 - Proxy 对象创建。

2023-06-22 10:19:52 570 1

原创 『手撕 Mybatis 源码』06 - Mapper 代理方式初始化

【代码】『手撕 Mybatis 源码』06 - Mapper 代理方式初始化。

2023-06-11 00:05:18 399 1

原创 『手撕 Mybatis 源码』05 - SqlSession 执行主流程

SqlSession 执行主流程获取 BoundSql经过加载完所有配置之后,继续梳理执行 sql 的过程public class MybatisTest { @Test public void test1() throws IOException { ... // 4. 委派给 Executor 来执行,Executor 执行时又会调用很多其他组件(参数设置、解析 sql 的获取,sql 的执行、结果集的封装) User user = sqlSession.selectOne("u

2023-06-10 16:14:03 686

原创 『MySQL 实战 45 讲』17 - 如何正确地显示随机消息?(随机抽取 3 个词)

取下一个行 (R’,rowid’),跟当前堆里面最大的 R 比较,如果 R’小于 R,把这个 (R,rowid) 从堆中去掉,换成 (R’,rowid’)5. 小结:order by rand() 使用了内存临时表,内存临时表排序的时候使用了 rowid 排序方法。对于这 10000 个准备排序的 (R,rowid),先取前三行,构造成一个堆。重复第 2 步,直到第 10000 个 (R’,rowid’) 完成比较。使用了优先队列排序算法,其实只要取 R 的最小的 3 个 rowid。

2023-05-25 00:12:14 408

原创 『手撕 Mybatis 源码』04 - 创建 sqlSession

【代码】『手撕 Mybatis 源码』04 - 创建 sqlSession。

2023-05-22 10:08:06 405

原创 『手撕 Mybatis 源码』03 - 解析映射配置文件

/</</</</

2023-05-21 00:09:23 364

原创 『MySQL 实战 45 讲』16 - “order by” 是怎么工作的

【代码】『MySQL 实战 45 讲』“order by” 是怎么工作的。

2023-05-18 01:16:02 488

原创 『手撕 Mybatis 源码』02 - 加载配置文件

对于返回至少 4 个参数以上的对象,最好使用。

2023-05-16 10:11:47 307

空空如也

空空如也

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

TA关注的人

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