- 博客(340)
- 收藏
- 关注
原创 【从程序员到架构师】【01】数据持久化层—冷热分离
本文探讨了数据持久化层的冷热分离架构设计。冷热分离通过将频繁访问的热数据与不常使用的冷数据分开存储,有效提升系统性能。文章详细介绍了冷热分离的实现方案:一期采用MySQL存储冷热数据,重点解决数据判断、触发机制、迁移流程中的并发控制、数据一致性和批量处理等问题;二期针对冷数据查询性能问题,提出将冷数据迁移至HBase等更适合海量只读数据的存储方案。实现过程中需特别关注锁机制、批量处理和失败重试的数据一致性问题。该架构适用于订单等达到终态后只有读需求的数据场景,能够显著改善系统性能,但需要确保业务上不存在同时
2026-02-12 18:10:41
527
原创 【Android第一行代码学习笔记】【2】网络_协程_主题颜色_状态栏融合_沉浸式_Jetpack_深色主题
本文主要介绍了Android开发中的网络请求、协程编程以及UI主题相关技术。在网络部分,详细讲解了HttpURLConnection、OkHttp和Retrofit三种网络请求方式,重点分析了Retrofit基于接口封装的优点及其使用方法。协程部分阐述了协程的概念优势,并给出了Kotlin协程的基本使用示例。此外还涉及了Android主题颜色、状态栏设置、Jetpack组件以及深色主题的实现方法。这些内容涵盖了Android开发中常见的网络通信、异步编程和UI定制等重要知识点。
2026-02-09 13:37:03
581
原创 【Android第一行代码学习笔记】Android架构_四大组件_权限_持久化_通知_异步_服务
本文总结了Android开发的基础知识,重点介绍了Android系统架构、四大组件、生命周期等重要概念。主要内容包括: Android系统架构分层及各版本特性 应用开发四大核心组件:Activity、Service、BroadcastReceiver和ContentProvider SQLite数据库等持久化存储方式 Activity的四种状态(运行/暂停/停止/销毁)和七个生命周期回调方法 开发配置项minSdk和targetSdk的区别 ViewBinding的基本使用方法 作者记录了转岗后端后重新接触
2026-02-06 17:19:41
1025
1
原创 【Docker进阶-07】Dockerfile
Dockerfile由一行行命令语句组成,并且支持以#开头的注释行。一般而言,Dockerfile可以分为四部分:基础镜像信息、维护者信息、镜像操作指令、启动时执行指令学习更多Dockerfile的写法:https://github.com/docker-library/例子:# 这是我的Dockerfile#给镜像加个标签abc=def \#运行的指令,安装了软件,修改了文件,默认是用id=0 也就是root,这个基础系统的root用户#代表镜像构建过程中运行的命令。
2026-02-06 10:30:15
664
原创 【Docker进阶-06】docker-compose & docker swarm
本文介绍了Docker Compose和Docker Swarm的集群部署方案。Docker Compose通过YAML文件定义多容器应用(如nginx+web+mysql+redis),使用docker-compose up/down一键启停。文章提供了安装方法、官方示例(Python+Redis应用)及多个配置案例,包括MySQL+Redis组合和Gitea+MySQL部署。 Docker Swarm部分讲解了集群搭建:通过docker swarm init创建主节点,其他节点使用join命令加入集群,
2026-02-05 11:02:49
552
原创 【Docker进阶-05】Docker网络
本文介绍了Docker网络的三种主要方式:端口映射、容器互联和自定义网络。端口映射通过-p参数实现容器与主机的端口绑定;容器互联使用--link参数建立单向连接,但存在IP变更不更新的问题;自定义网络模式更灵活可靠,支持容器间通过名称直接通信,并可创建自定义子网。文章还分析了Docker默认网络bridge模式的原理,比较了host、container等不同网络模式的特点,推荐使用自定义网络模式实现容器间通信。最后提供了创建自定义网络和跨网络连接的实用命令示例。
2026-02-05 09:46:58
559
原创 【Docker进阶-04】容器挂载&docker cp
本文介绍了Docker容器的三种数据挂载方式:自动卷挂载(VOLUME)、手动绑定挂载(bind mount)和内存临时挂载(tmpfs)。重点讲解了volume卷的使用,包括匿名卷和具名卷的创建与管理,以及bind mount的注意事项。文章还对比了两种挂载方式的区别,并提供了docker cp命令的使用说明。通过具体命令示例,展示了如何实现容器与主机间的数据共享和持久化存储,同时提醒注意bind mount可能导致的数据覆盖问题。
2026-02-04 10:17:46
730
原创 【Docker进阶-02】Docker命令
docker.io/library/redis:alpine3.13 我们的 docker.io/leifengyang/mynginx:tagname。所有Docker命令手册:https://docs.docker.com/reference/cli/docker/docker images的时候镜像缩略了全名 默认官方镜像没有docker.io/library/docker.io/leifengyang/mynginx:v4 我的镜像的全称。docker hub一个完整镜像的全路径是。
2026-02-03 09:50:52
582
原创 【Docker进阶-01】Docker隔离原理与可视化界面-Portainer
本文介绍了Docker的架构原理与可视化工具Portainer。Docker利用Linux内核的namespace技术实现容器隔离,通过cgroups进行资源限制。其架构包含客户端、主机、守护进程、容器、镜像和仓库等组件。与虚拟机相比,Docker更轻量高效。Portainer是一个功能强大的开源容器管理工具,提供GUI界面简化容器部署管理。文章详细说明了Portainer服务端和agent端的部署命令,只需简单docker run即可启动,通过9000端口访问管理界面。该工具支持Docker、Swarm、
2026-02-02 17:34:41
653
原创 【云原生-00】生态解读
云计算是一种新型互联网服务模式,通过公有云或私有云资源提供按需使用、弹性扩展的IT基础设施服务。云原生技术基于容器、微服务、服务网格等核心组件,构建松耦合、易管理的分布式系统。其关键技术包括Kubernetes容器编排、不可变基础设施和声明式API等,实现了从传统单体架构向微服务架构的转型。云平台具有稳定性高、弹性扩展等优势,但也面临安全管控等挑战。云原生生态涵盖CI/CD、可观测性、服务网格等完整技术栈,正推动企业IT架构的全面革新。
2026-01-13 16:07:12
1090
2
原创 【TODO】2026学习目标
本文梳理了2026年技术学习规划,主要包含五个方向:1)项目经验积累,通过视频教程和开源项目学习;2)Java核心技术,涵盖JVM、并发编程、数据库、中间件及新特性;3)前端与移动端开发,包括Vue3、Android及鸿蒙入门;4)云计算技术,重点学习SpringCloud、K8s和DevOps;5)软技能提升,如技术博客写作和开源贡献。学习资源包括B站、GitHub优质教程及业内专家课程,强调理论深度与实践结合。
2025-12-30 13:43:34
436
原创 HTTP+XML形式完成请求交互
本文记录了通过HTTP+XML形式与精友系统进行数据交互的实现方案。主要内容包括:1) 定义了请求和响应的XML格式模板,包含HEAD和BODY结构;2) 列出了必要的Maven依赖,如jaxb和httpclient;3) 提供了Java POJO类的实现,使用JAXB注解进行XML绑定,包含Packet、Head、Body等核心类。其中请求类使用@Data简化代码,响应类展示了成功/失败的构建方法。该方案可用于保险公司与精友系统之间的数据交换场景。
2025-12-03 17:34:57
268
原创 【周志明-凤凰架构—阅读笔记】演进中的架构
本文总结了周志明《凤凰架构》中关于系统架构演变的要点。单体架构适合小型系统,但随着规模扩大面临性能瓶颈。微服务架构通过服务拆分解决了分布式问题,但带来了服务治理、通信协议等复杂性。后微服务时代借助虚拟化技术(如Kubernetes),将部分分布式问题下沉到基础设施层。无服务架构(Serverless)进一步简化开发,通过BaaS和FaaS让开发者专注业务逻辑,但存在冷启动等限制,适合短链接、无状态场景。架构选择需权衡业务需求和技术特点,没有普适方案。
2025-11-21 17:58:14
1100
原创 WebService — apache axis 1.4 — wsdl — 整合第三方短信
本文记录了使用Apache Axis 1.4整合第三方短信服务的过程。首先搭建环境,下载Axis 1.4并配置环境变量,添加必要的jar包。获取短信服务的WSDL文件(本地或在线),示例使用了http://ip:port/WSSMSIF/services/SmsService?wsdl。文中详细描述了WSDL文件结构,包含SmsMessage、SmsMessages等复杂类型定义,为后续接口调用提供基础。整个流程涵盖了从环境配置到接口文档解析的关键步骤,适用于对接老旧WebService系统。
2025-11-21 16:23:41
478
转载 如何提高面试成功率
如何提高面试成功率 面试成功需做好三方面准备:面试前研究公司主营业务和技术栈,针对性优化简历,突出优势项目;面试中重点展示专业技能、沟通能力和技术热情,坦诚面对不会的问题;面试后及时复盘不足,避免重复失误。系统化的准备与真诚表现是提升成功率的关键。
2025-11-06 12:14:33
72
原创 颜群JVM【05】强软弱虚引用
价值: 当gc回收一个对象,如果gc发现此对象还有一个虚引用,就会将虚引用放入到引用队列中,之后(当虚引用出队之后)再去回收该对象。因此虚引用不会单独使用,必须和引用队列(java.lang.ref.ReferenceQueue)一起使用。特殊情况:如果虚引用对象重写了finalize(),那么JVM会延迟虚引用的入队时间。map.put(id, 软引用(obj) );C/C++中,对象产生:构造方法() ,对象释放:析构函数()GC->如果有虚引用->虚引用入队->虚引用出队->回收对象。
2025-10-10 07:51:53
594
原创 颜群JVM【04】助记符
Invokespecial: init, private , super.method() : <init>存放的是初始化代码的位置。注意:特殊:-1 – 5不是bipush iconst_m1(-1) iconst_0 iconst_1 …注意:无论是定义int或short 等,只要在 -128 --127以内 都是bipush,否则是sipush.javap反编译的是class文件,应该:xx.java -> xx.class ->javap。aload_0: 装载了一个引用类型。
2025-10-08 10:43:15
284
原创 颜群JVM【02】JVM运行时的内存区域
本文介绍了JVM运行时内存区域的划分,主要包括5个部分:程序计数器、虚拟机栈、本地方法栈、堆和方法区。 程序计数器是线程私有的行号指示器;虚拟机栈和本地方法栈分别用于Java方法和本地方法的执行;堆是最大的内存区域,存放对象实例,分为新生代和老生代,采用不同的GC策略;方法区存储类的元数据、常量池等信息。 文章详细说明了各区域的功能特点、内存分配机制及可能出现的异常情况,如StackOverflowError和OutOfMemoryError,并介绍了相关虚拟机参数设置。通过划分不同区域,JVM能更高效地管
2025-09-17 19:58:19
1051
原创 颜群JVM【01】类的生命周期_JMM_volatile
JDK中包含了JVM和“屏蔽操作系统差异的组件”jvm各个操作系统之上是一致的屏蔽操作系统差异的组件:在各个PC上各不相同(不同系统[Windows,Linux]需要下载不同版本的jdk)
2025-09-16 08:53:04
1071
原创 coolshell文章阅读摘抄
(千万不要觉得,整几个服务RPC一下,加个缓存,加个队列,就能叫架构,那只是系统集成罢了)圈养的动物没有斗志,是被自己意识所限制。主动让自己成为一个瞎子和聋子,主动把自己的能力阉割掉,这是一件令人痛心的事。对技术从来没有什么偏见,有什么就玩什么,每做一个项目,就算是一样的他都要用新的技术做一遍。不限制自己的人,会穷举各种方法来解决问题,限制自己的人,只会找各式各样的问题或借口。不限制自己的人,会努力改变自己的问题和缺陷,限制自己的人,会放任自己。“艺多不压身”,有什么就学什么,有更高的就去向更高的迈进。
2025-09-15 10:01:37
332
转载 怎样变得更好——认知
《如何自然落后于大多数人》一文以反讽手法揭示了当代人陷入信息茧房和低效成长的陷阱。作者指出,只需沉溺于百度搜索、微信公众号和知乎碎片信息,沉迷微博大V和抖音短视频,热衷八卦争论和民族主义情绪,就能轻易丧失深度思考能力。在学习和认知层面,通过推崇快餐式学习、资料囤积、死记硬背和工具依赖,让人产生成长幻觉却停滞不前。更通过鼓吹996、暴富神话、体制内稳定等观念,使人陷入短视焦虑,最终成为低效劳动力。文章以黑色幽默方式警示:当前互联网环境正系统性培养浅薄认知,唯有跳出这些陷阱才能获得真正成长。
2025-09-15 10:01:26
61
原创 正确的学习
任何知识,只在点上学习不够的,需要在面上学习,这叫系统地学习这需要我们去总结并一个知识面会有多个知识板块组成,一个板块又有各种知识点,一个知识点会导出另外的知识点,各种知识点又会交叉和依赖起来学习就是要系统地学习整个知识树(图)。而我们都知道,所以,学好基础知识也是非常重要的对于一个陌生的地方,有一份地图是非常重要的,没有地图的你只会乱窜,只会迷路、练路、走冤枉路!
2025-09-15 10:01:11
435
原创 MySQL整理【04】锁
本文主要介绍了MySQL中解决并发事务问题的两种基本方式:MVCC和加锁机制。首先分析了并发事务中的三种访问情况(读-读、写-写、读-写或写-读)及可能引发的问题。详细阐述了MVCC的工作原理,包括ReadView的生成和使用,以及不同隔离级别下如何解决脏读、不可重复读和幻读问题。同时介绍了锁定读的概念,包括共享锁(S锁)和独占锁(X锁)的特性及兼容性。文章还讨论了写操作(DELETE、UPDATE、INSERT)的加锁规则,以及表级锁、意向锁等多粒度锁机制。最后对比了InnoDB与其他存储引擎(如MyIS
2025-09-14 15:51:16
1236
原创 MySQL整理【03】事务隔离级别和MVCC
本文主要介绍了MySQL事务隔离级别和MVCC机制。首先分析了事务并发执行时可能出现的四种问题:脏写、脏读、不可重复读和幻读,并按严重性进行排序。然后介绍了SQL标准中的四种隔离级别(READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ和SERIALIZABLE),以及它们在解决这些问题上的差异。重点阐述了MVCC(多版本并发控制)的实现原理,包括版本链的构建和ReadView的工作机制,解释了不同隔离级别下如何通过ReadView判断数据版本的可见性。最后指出RE
2025-09-10 08:38:46
923
原创 MySQL整理【02】事务与日志
事务是数据库操作的逻辑单元,确保数据一致性。本文从转账案例出发,阐述了事务的四大特性(ACID):原子性(不可分割的操作)、隔离性(并发操作互不干扰)、一致性(数据符合约束条件)和持久性(修改永久生效)。通过分析事务状态(活动、部分提交、失败、中止、提交)和redo日志机制(记录修改而非整页刷新),解释了MySQL如何保证事务的持久性,避免系统崩溃导致数据丢失。redo日志通过记录精确修改内容而非整页数据,既节省I/O资源,又确保故障恢复时能重建事务修改。
2025-09-08 11:51:43
901
原创 MySQL整理【01】索引及其结构_回表_Explain
本文介绍了MySQL数据库的核心技术要点:1. SQL执行顺序与MySQL服务端逻辑架构,包括连接管理、查询缓存(已在MySQL 8.0移除)、语法解析和查询优化;2. 重点对比了MyISAM和InnoDB存储引擎的特性差异;3. 详细解析了InnoDB的存储结构体系,包括表空间、区、页(16KB基本单位)和行格式设计;4. 深入讲解了聚簇索引原理和B+树索引的五大适用场景:全值匹配、左列匹配、前缀匹配、范围查询及复合条件查询。文章通过示意图和SQL示例,系统性地阐述了InnoDB的存储机制和索引优化策略。
2025-09-06 08:49:48
1027
原创 【JAVA面试指导】03—SSM框架篇
文章摘要: 本文系统梳理了Java主流框架的核心知识点,涵盖MyBatis、Spring、SpringMVC、SpringBoot和SpringCloud。MyBatis部分重点解析Mapper接口与XML配置的协作机制及四大核心对象;Spring强调IOC/DI的解耦思想与AOP的切面编程应用;SpringBoot突出自动装配原理与Starter机制;SpringCloud详解Eureka服务注册、Ribbon/Feign负载均衡及Hystrix熔断器设计。全文通过架构图与代码示例结合,适合开发者快速掌握
2025-08-21 12:51:49
886
原创 【JAVA面试指导】01—如何准备面试
JAVA面试准备指南 面试需重点准备常见技术问题(如ArrayList/HashMap原理、排序算法、设计模式、Spring核心机制等)及个人简历中的技术栈,深入理解优缺点、使用场景及解决方案。注意避免“精通”等夸大表述,突出实际掌握能力。技术列表应精简且有亮点,避免标准化培训痕迹。 项目经验是考察重点,需准备真实项目细节,包括技术难点、优化方案及实际应用场景,体现解决问题的能力。加分项包括高并发/分布式经验、性能调优、开源贡献或个人技术博客等。面试中要展现独立思考能力、沟通技巧及积极解决问题的态度。 (摘
2025-08-20 09:11:51
553
原创 【JAVA面试指导】02—如何脱颖而出
1. 拒绝千篇一律:避免与多数应聘者答案雷同,结合《阿里巴巴编程规范》等深度积累;2. 创新答案:仅参考面试题题目,通过GitHub、博客等自主研究(如用Semaphore替代常规线程通信方案);3. 源码级解答:通过阅读源码(如ArrayList扩容机制)展现技术深度;4. 适时展示技能:在项目经验中穿插解决实际问题的案例;5. 通用亮点:如JVM调优、SQL优化等实战经验;6. 技术沉淀:维护博客、GitHub等;7. 大厂侧重点:算法、分布式等核心能力;8. 心态建设:灵活应对质疑,用同类技术经验回答
2025-08-20 08:47:42
926
原创 【premiere教程】【01】【跑个流程】
本文介绍了Premiere Pro视频剪辑的基本操作流程,包括时间轴序列管理、效果控件调整、画面对齐等核心功能。主要内容为:1)通过时间轴组织素材;2)使用效果控件调整图片大小和细节;3)掌握对齐工具精确排版;4)提醒及时保存项目。教程以B站UP主"oeasy"的鬼畜视频制作为参考案例,适合PR初学者快速上手基础剪辑操作。文章强调持续学习的重要性,整体内容简明实用。
2025-05-27 20:32:53
242
原创 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【29】Sentinel
A 服务调用 B 服务的某个功能,由于网络不稳定问题,或者 B 服务卡机,导致功能时间超长。如果这样子的次数太多。我们就可以直接将 B 断路了(A 不再请求 B 接口),凡是调用 B 的直接返回降级数据,不必等待 B 的超长执行。这样 B 的故障问题,就不会级联影响到 A。整个网站处于流量高峰期,服务器压力剧增,根据当前业务情况及流量,对一些服务和页面进行有策略的降级:停止服务,所有的调用直接返回降级数据。缓解服务器资源的的压力,保证核心业务的正常运行,保持了大部分客户得到正确的响应。
2024-07-20 18:08:06
1326
原创 让AI帮你写代码—通义灵码入门及使用
让AI帮你写代码—通义灵码入门及使用简介及安装简单使用通义灵码的解释代码功能1通义灵码的解释代码功能2通义灵码的生成测试功能通义灵码的生成注释功能通义灵码的生成优化建议功能通义灵码的搜索功能1通义灵码的搜索功能2
2024-07-19 18:09:46
3910
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅