- 博客(114)
- 资源 (18)
- 收藏
- 关注
原创 相遇十年,风雨无悔
楔子风雨如晦,鸡鸣不已。既见君子,云胡不喜。写在2020岁尾,记录相遇的十年,期待新的开始。一 初识 再一次翻了自己的文章列表,第一篇发布的博文是在2012年4月,下载资源更早一些,第一次是在2010-02-18。如此算来,与csdn的接触已经接近十年的时间了。往事如烟,不堪回首。二 回顾 回到2010年,那时才刚刚读研不久,从数学与应用数学专业转而考到计算机专业在当时也是不小的考研。尤其在2018-2019金融危机的背景之下,放弃了保研的机会选择背水一战,为此还与家里反复沟...
2020-12-25 10:35:40 242 4
原创 CSDN AI写作助手初体验
尝试使用过文心一言和chatgpt,主要在代码生成和问题智能搜索两个方面。从搜索质量上说,要比直接百度等效果要好,主要是相关性这个指标要高出很多;代码生成随着各大模型的不断发展,可用性也越来越高。
2023-06-18 14:30:03 603
原创 容器 & 服务:Helm Charts(二)安装与使用
系列文章:容器 & 服务:开篇,压力与资源容器 & 服务:一个 Java 应用的 Docker 构建实战容器 & 服务:Docker 应用的 Jenkins 构建容器 & 服务:Docker 应用的 Jenkins 构建 (二)容器 & 服务:K8s 与 Docker 应用集群 (一)容器 & 服务:K8s 与 Docker 应用集群 (二)容器 & 服务:Kubernetes 构件及 Deployment 操作容器 &
2021-10-04 11:50:33 1416
原创 9月,一些感慨
时间跟钱一样,都消耗得飞快。——作者前言度过了忙碌的两个月。正处于从0到1的阶段,基础设施也差得很多,所以一切都是从头开始。文档的匮乏,信息共享同步的漏洞,也增加了一些不必要的成本。自然,也少不了被背后捅刀的情况发生。是时候对过去一段时间做个小结了。关系工作中的关系,很奇妙,说白了倒也可以简单。不要自己为是,这句话包含很多内容。1、最浅显的一层,就是不要过于自信,当面临一个问题时,不要急于给出答案,因为接收到的信息往往是不够的。在浅显的理解之上给出的答案,必然存在着各种各样的问题,经不起
2021-10-02 20:18:17 384 2
原创 容器 & 服务:Helm Charts(一)
系列文章:容器 & 服务:开篇,压力与资源容器 & 服务:一个 Java 应用的 Docker 构建实战容器 & 服务:Docker 应用的 Jenkins 构建容器 & 服务:Docker 应用的 Jenkins 构建 (二)容器 & 服务:K8s 与 Docker 应用集群 (一)容器 & 服务:K8s 与 Docker 应用集群 (二)容器 & 服务:Kubernetes 构件及 Deployment 操作容器 &
2021-09-30 19:05:00 377
原创 一次爬虫的编写尝试
一 背景近期有想法,想要拿到指定时间段的新闻/文章信息,简单做个舆情分析。那么最基础的就是先获取文章列表。舆情相关的现成接口有一些,例如 微博的舆情监测平台,里面有比较成熟的api提供;阿里云,百度云也都有舆情接口。 不过受限于某些因素,或是费用问题,或是api本身能提供的新闻时间范围不符合预期,导致无法直接使用。那么就考虑临时通过spider去抓取一些信息,用于支持本次的工作内容。二 关于舆情检测舆情监测,是指根据关键词获取舆情信息,包括新闻、论坛、博客、微博、微信、贴吧等。这里补一句,京东云
2021-09-13 20:44:15 707
原创 Java 操作 Office:POI之word图片处理
系列文章:Java 操作 Office:POI 之 word 生成一 背景问题本系列旨在分享一些word操作框架POI的一些使用技巧,系统学习可直接参考官方文档,或上一篇中提到的Apache POI Word(docx) 入门示例教程。更多交流可添加公众号【程序员架构进阶】一起探讨。本篇是根据一个真实场景,探索的实现方法。我们有一些希望插入word的图片,在插入时也要对图片本身添加一些标注,例如红框标记等等,也可能是添加文字标注。如果是手工操作,这显然比较简单,使用美图秀秀、Photos
2021-08-07 12:20:19 1888
原创 Java 操作 Office:POI 之 word 生成
一 背景最近在项目开发中,有数据导出到word的需求。这就涉及代码生成word文档的操作,且有格式要求。 大家用word做过简历的都有了解,做简历时,会使用表格、图片、文字等元素。而且表格也可能有嵌套、合并单元格,以及插入图片到单元格的操作。该怎么做?二 Java操作Office方案百度一下Java Office操作,或者再直接一点搜索Java word,就比较容易搜到iText、POI等组件。在文章 Java导出word的几种方式 这篇文章中,提到了包括Jacob、Apache POI、J..
2021-08-06 19:22:37 1365
原创 权限与认证:JWT
一 背景最近在做的一个项目中,需要自己开发权限与角色功能,所以就再次调研了一下认证和授权框架及方案,JWT也是其中之一。因此做本篇整理。二 JWT简介及Token认证方案2.1 简介JWT,即JSON Web Tokens(JWT官网),也就是JSON结构的Web Token。完整描述参见rfc7519。JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transfe...
2021-06-03 21:11:13 334 2
原创 微服务注册中心:Consul——服务发现
系列文章:微服务架构:网关概念与 zuul微服务网关:Spring Cloud Gateway —— Zuul微服务网关:Spring Cloud Config- 配置中心微服务网关方案:Kong & NacosNacos 实践微服务网关:Nacos 源码实践(二)微服务注册中心:Consul——概念与基础操作微服务注册中心:Consul——服务注册一 概述说完了Consul的服务注册,那么就该到服务发现了。大家有过rpc框架使用经验的,例如nacos、.
2021-05-29 22:39:36 583
原创 微服务注册中心:Consul——概念与基础操作
系列文章:微服务架构:网关概念与 zuul微服务网关:Spring Cloud Gateway —— Zuul微服务网关:Spring Cloud Config- 配置中心微服务网关方案:Kong & NacosNacos 实践微服务网关:Nacos 源码实践(二)楔子好久不见。由于工作的原因停更了一段时间,今天开始继续更新。前面介绍过微服务相关的一些技术方案,注册中心除了Zookeeper、Nacos之外,其实Consul也可以,只不过使用比例上看并不算高。最.
2021-05-28 16:27:43 520
原创 微服务注册中心:Consul——服务注册
系列文章:微服务架构:网关概念与 zuul微服务网关:Spring Cloud Gateway —— Zuul微服务网关:Spring Cloud Config- 配置中心微服务网关方案:Kong & NacosNacos 实践微服务网关:Nacos 源码实践(二)微服务注册中心:Consul——概念与基础操作一 简介微服务注册中心:Consul——概念与基础操作介绍了consul的安装和基本操作,本篇开始在consul上进行服务注册与发现,语言使用Java.
2021-05-27 19:44:14 934
原创 五月,迟来的开篇
注:文章写于五月三日,恰逢工作变故后刚刚有了确定的结果,即将迎来新的开始。最近一直忙于新的工作环境适应,尽快融入团队并输出价值,所以停更了很多天。从今天开始更新会继续进行,脚踏实地,深耕技术、业务、管理领域。未来的我,与你同行。共勉。公众号:程序员架构进阶 https://mp.weixin.qq.com/s/GiVtzeVIeud2yAIkyNjayA五月开篇 时间已到五月三日,却刚刚准备做这个月的开篇。过去的一个多月估计会是难忘的经历。职业生涯中脱离工作状态最久的一次,期间每天从...
2021-05-23 22:15:30 226
原创 怎样做好服务提供方
一 摘要在日常的开发中,我们经常会接触到服务方、服务商、服务提供方这类的角色。简单来说,就是提供服务让我们使用。本篇会展开思考,如果我们作为服务提供方,那么应该做到哪些,才能保证服务的提供是“好”的。二 概念2.1 什么服务这个“服务”,可能是具体一点的资源对象,也可能是一些业务能力的抽象,还可能是支持类的能力提供。2.2 服务对象服务对象,可以理解为是我们的“客户”。大家有过相关经验的都能够理解,当面向不同的客户时,我们提供的内容或提供方式会有所差别,这是由客户本身的特性和需求决定
2021-05-23 21:20:00 252
原创 数据架构:数据冷热分离实践思考
系列文章:数据架构:概念与冷热分离公众号:程序员架构进阶一 概述上一篇文章数据架构:概念与冷热分离中介绍了数据架构的概念和意义。并抛出了数据冷热分离的问题。事实上,这并不是新的概念,各公司在很早之前就已经开始了落地实践。微软云有冷热 blob 存储,阿里云有 ots,都是为了在云服务层面提供冷热存储的解决方案。尽管有这些工具,如果很好地实现冷热分离,仍然是值得仔细思考和玩味的。二 冷热分离核心问题与案例2.1 关键问题回归话题,无论我们怎样选择冷热存储方案,首先,都还是需要.
2021-05-10 19:36:25 971 3
原创 数据架构:概念与冷热分离
一 什么是数据架构关于架构,大家都有了解和理解。通常一个业务或项目,在做架构设计时,可能会包含业务架构和技术架构。其中技术架构是我们作为开发角色,在做设计时重点的工作内容。但还有架构类型的划分方式,会包括业务架构、技术架构、数据架构和应用架构四种。数据架构管理的内容包括管理对象、管理流程、管理组织,管理对象又包括数据标准、数据模型、数据库、数据质量。总之,数据架构就是由一定的管理组织,通过一系列管理流程,来实现对数据对象的管理。数据架构构成如下图所示:二 为什么需要数据架构“经验来.
2021-05-07 22:52:54 435
原创 容器 & 服务:metrics-server 安装探索
系列文章:容器 & 服务:开篇,压力与资源容器 & 服务:一个 Java 应用的 Docker 构建实战容器 & 服务:Docker 应用的 Jenkins 构建容器 & 服务:Docker 应用的 Jenkins 构建 (二)容器 & 服务:K8s 与 Docker 应用集群 (一)容器 & 服务:K8s 与 Docker 应用集群 (二)容器 & 服务:Kubernetes 构件及 Deployment 操作容器 &
2021-04-28 02:15:54 976 2
原创 微服务网关方案:Kong & Nacos
系列文章:微服务架构:网关概念与 zuul微服务网关:Spring Cloud Gateway —— Zuul微服务网关:Spring Cloud Config- 配置中心公众号:程序员架构进阶一 摘要 前面我们介绍了 Spring Cloud 体系下的网关 Gateway(Zuul)。事实上,还有很多开源且广泛应用的网关方案,例如 Kong 和 Nacos。本篇将先介绍这两种网关,包括架构和主要原理,并给出集中网关方案的对比。二 Kong2.1 介绍 ...
2021-04-26 21:55:31 2716
原创 【Java 试题】AQS 解析
系列文章:【Java 试题】从一道题目再看 Java 继承公众号:程序员架构进阶一 背景AQS 即 AbstractQueuedSynchronizer,是 java.util.concurrent.locks 包的一个重要概念。Java 中锁实现/同步的几种方式:synchronized,ReentrantLock,CAS。其中,可重入锁 ReentrantLock 就是基于 AbstractQueuedSynchronizer(AQS)的。因此,理解 AQS 的实现原理,对 Java 锁
2021-04-08 10:39:19 237 4
原创 【leetcode题目】2. 两数相加
原题链接https://leetcode-cn.com/problems/add-two-numbers题目描述给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头。我的题解链接:https://leetcode-cn.com/problems/add-two-numbers/solution/lian-b...
2021-04-01 16:15:17 354
原创 算法:求两个单向链表的最早公共交点
链接:https://mp.weixin.qq.com/s/A4jjclVpd7Q03yJfARR3DA公众号:程序员架构进阶一 题目 求两个单向链表的最早公共交点;如果没有返回null。二 解析 链表是单向链表,即只有指向下一个节点的指针,而没有反向;公共节点,指地址相同的节点。即假设链表L1中有一个节点node1,L2中有一个节点node2,node1 = node2,注:这里的“=”,指的是node1 和 node2是同一个节点,也就是说,L1 和 L2都持有了对一个节点的...
2021-03-29 22:40:16 379 2
原创 Mac 下 brew 更新及安装 Prometheus+Grafana
一 背景 近来在做容器研究,本地也打算做一次基于原生k8s的动态扩容。k8s提供了基于cpu和内存的扩容方案,但如果需要根据其他规则,例如接口访问次数等等,就需要其他的一些辅助工具,例如监控:prometheus。本篇先准备好相关环境,并了解Prometheus和Grafana的安装和基本配置使用方式。二 brew重新安装 尝试安装监控工具prometheus的时候,由于换了自己的旧电脑,发现brew install失败,报错信息如下:当然,已经尝试过了各种切换brew源,并...
2021-03-28 22:55:45 1960 5
原创 设计模式沉思录:一 资源池
文章首发链接:https://mp.weixin.qq.com/s/pUjm_u6xaoFreK_36qITcg公众号:程序员架构进阶一 摘要 在工作中,经常会看到或者用到池化技术,例如数据库连接池、线程池、内存池等等。这类池化技术在很多经典框架中都存在,并且是设计中的重要部分。本篇将分析几种常见的池化技术框架,并结合业务案例来做资源池设计探索。二 资源2.1 什么是资源? 资源,百度上的解释是生产资料或生活资料的天然来源。在生活中可能这样描述没有问题,但似乎无法更准确地圈定...
2021-03-28 13:51:01 1055 2
原创 【Mysql 实战】问题分析利器之 binlog
一 摘要在【Mysql-InnoDB 系列】事务提交过程及系列文章中,对mysql(InnoDB引擎)的redolog、undolog、binlog及事务的提交过程有了一些介绍,本篇将尝试去实践binlog在日常操作中的查看、分析方式,以及可能遇到的问题和解决方法。二 binlog的位置2.1 寻找方式2.1.1 文件遍历直接简单粗暴地根据命名查找,因为binlog文件通常都是mysql-bin.000001这样的明明方式,所以sudo find / -name mysql-bin.00
2021-03-23 16:58:27 392
原创 源码分析 Netty:核心组件及启动过程分析
系列文章:源码分析 -Netty:开篇源码分析 -Netty:多线程在 Netty 中的应用源码分析-Netty: 并发编程的实践(二)源码分析-Netty: 架构剖析源码分析-Netty: 高性能之道一 Netty核心组件1.1 ChannelChannel(通道)是 NIO 基本的结构。JDK的NIO包中,有Channel接口的介绍:A nexus for I/O operations.A channel represents an open connect
2021-03-22 18:25:23 290
原创 源码分析-Netty: 并发编程的实践(二)
摘要 前面一篇介绍了多线程在Netty中的大概使用情况,本篇将结合源码,详细描述使用方式,以及值得我们思考、学习和借鉴的地方。一 synchronized使用 关键字synchronized,我们在并发编程的艺术系列文章中有过描述,用于保证在同一时刻,只有一个线程能够执行某个方法或代码块。同步的作用,既有互斥,也有保证共享变量的可见性:当某个线程修改了变量值并释放锁后,其他线程可以立即获取被修改变量的最新值。 以ServerBootstrap进行分析。在类中,定义了一个final...
2021-03-16 10:01:46 221
原创 源码分析-Netty:多线程在 Netty 中的应用
系列文章:源码分析 -Netty:开篇一 Netty线程模型需要注意的是,Netty的线程模型并非固定不变,而是取决于用户的启动参数配置。通过启动参数的设置,Netty可以支持Reactor单线程模型和多线程模型。二 Java内存模型与多线程2.1 Java内存模型(JMM)Java的内存模型JMM,我们在并发编程艺术相关文章中有过详细的阐述。感兴趣的可以回顾文章:【并发编程的艺术】Java 内存模型总结。简单来说,JVM规范定义了Java内存模型,来屏蔽各种操作系统
2021-03-15 17:38:06 743
原创 容器 & 服务:Kubernetes 构件及 Deployment 操作
系列文章:容器 & 服务:开篇,压力与资源容器 & 服务:Jenkins 本地及 docker 安装部署容器 & 服务:Jenkins 构建实例容器 & 服务:一个 Java 应用的 Docker 构建实战容器 & 服务:Docker 应用的 Jenkins 构建容器 & 服务:Docker 应用的 Jenkins 构建 (二)容器 & 服务:K8s 与 Docker 应用集群 (一)容器 & 服务:K8s 与
2021-03-10 11:05:36 378
原创 容器 & 服务:K8s 与 Docker 应用集群 (四)
公众号文章链接:https://mp.weixin.qq.com/s/LbHI2tHi_eOkuSgSROh3ng系列文章:容器 & 服务:开篇,压力与资源容器 & 服务:Jenkins 本地及 docker 安装部署容器 & 服务:Jenkins 构建实例容器 & 服务:一个 Java 应用的 Docker 构建实战容器 & 服务:Docker 应用的 Jenkins 构建容器 & 服务:Docker 应用的 Jenkins 构建
2021-03-08 22:04:44 374
原创 dubbo 源码 v2.7 分析:通信过程及序列化协议
系列文章dubbo 源码 v2.7 分析:结构、container 入口及线程模型dubbo 源码 v2.7 分析:SPI 机制dubbo 源码 v2.7 分析:核心机制(一)dubbo 源码 v2.7 分析:核心机制(二)关注公众号:程序员架构进阶,每天实时获取更新,上百份面试资料和其他福利等你拿~一 摘要前面我们介绍了dubbo的核心机制,今天将开始分析远程调用流程。毕竟,作为一个rpc框架,远程调用是理论的核心内容。通过对dubbo相关实现的探究,深入了解rpc原理及可能的
2021-03-05 16:52:57 493 4
原创 dubbo 源码 v2.7 分析:核心机制(一)
系列文章dubbo 源码 v2.7 分析:结构、container 入口及线程模型dubbo 源码 v2.7 分析:SPI 机制一 回顾上一篇我们介绍了SPI机制。本篇会先介绍dubbo中的核心机制,包括设计模式、bean加载、扩展点机制、动态代理和远程调用流程。二 设计模式2.1 装饰器&责任链模式2.1.1 装饰器模式装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作
2021-03-02 10:30:56 238
原创 【Linux 系统】关于守护进程
一 背景常驻进程,其实就是守护进程。在某家公司工作期间,会使用它来作为需要保活运行的机制,用以维护消费者进程。但当时对于守护进程的理解还是不够深入,所以现在再把这块做个整理,并结合当时遇到的一个问题实例进行分析。注:下面内容都针对Linux操作系统。(Mac上的launchd与systemd作用相同,而且据说systemd的很多概念来自launched)。二 守护进程2.1 init.d历史上,Linux 的启动一直采用init进程来启动服务。例如:service apache.
2021-02-28 09:06:47 624
原创 漫谈中台系列:《1 小时带你深入理解中台》学习整理
最近在做一些中台的设计和落地,所以一方面梳理现有业务、分析设计方案,另一方面也在不断地学习和吸取其他公司、业务的经验教训。前些天看到下面两份资料,感觉有比较深的感触,所以整理如下。资料地址:作为前阿里人,来扒一扒中台皇帝的外衣!1 小时带你深入理解中台作者:李云华,前阿里P9是骡子是马,拉出来溜溜:2个接入中台项目经验:电商中台、支付中台,从使用者角度来谈谈中台。一 中台价值,理想与现实1、中台的价值,你看到的是这样的可以让各业务部门保持相对的独立和分权,保证对业务的敏感性
2021-02-27 22:39:16 314 5
原创 【Mysql-InnoDB 系列】锁定读
系列文章:【Mysql-InnoDB 系列】InnoDB 架构【Mysql-InnoDB 系列】锁【Mysql-InnoDB 系列】事务模型【Mysql-InnoDB 系列】关于一致读一 概念锁定读,是相对于一致(非锁定)读来说的。当我们在同一个事务(T1)中先读数据,然后执行插入或更新相关数据时,普通的SELECT语句并不能给予足够的保护。其他事务也可能更新或删除我们在T1事务中查询的相同行。InnoDB支持两种类型的锁定读,来提供额外的保护:1、SELECT ...
2021-02-27 07:21:24 253
原创 【Mysql-InnoDB 系列】关于一致读
系列文章:【Mysql-InnoDB 系列】InnoDB 架构【Mysql-InnoDB 系列】锁【Mysql-InnoDB 系列】事务模型一 概念一致读(consistent read),在《MySQL技术内幕 第二版》中称为一致性非锁定读(consistent nonlocking read),是指InnoDB使用多版本控制(multi versioning)向查询提供数据库在某个时间点的快照。二 详细阐述一致读查询能够看到在该时间点之前提交的事务所做的更改,而不会看到
2021-02-27 07:11:29 243 1
原创 【Mysql-InnoDB 系列】锁
一 锁类型InnoDB支持的锁类型包括:共享锁和排它锁(Shared and Exclusive Locks)意向锁(Intention Locks)记录锁(Record Locks)间隙锁(Gap Locks)临键锁(Next-Key Locks)插入意向锁(Insert Intention Locks)自增锁(AUTO-INC Locks)空间索引的谓词锁(Predicate Locks for Spatial Indexes)二 详细描述2.1 共享锁和排它
2021-02-27 07:07:05 295 1
转载 【转】优化Kubernetes上的JVM Warm-up
原文地址:https://zhuanlan.zhihu.com/p/352523219作者:iyacontrolJVM 预热(warm-up)是一个臭名昭著的问题。尽管基于JVM的应用程序有着出色的性能,但是需要一个预热的过程,在预热期间,性能不是最佳的。它可以归因于即时(JIT)编译之类的事情,它通过收集使用情况配置文件信息来优化常用代码。最终的负面影响是,与平均时间相比,在预热期间收到的请求将具有非常高的响应时间。在容器化,高吞吐量,频繁部署和自动伸缩的环境中,此问题可能会加剧。在这篇.
2021-02-25 18:15:03 342
原创 进程管理:kill 命令之 -9 与 -15
相关系列文章:【Linux 系统】一个常驻进程问题的再次分析一 进程状态转换二 kill命令回顾kill :发送指定的信号到相应进程。不指定信号将发送SIGTERM(15)终止指定进程。若仍无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。2.1 kill命令参数在命令行输入kill,可以看到参数提示如下:
2021-02-25 18:01:09 7233
原创 【Mysql-InnoDB 系列】幻读、死锁与事务调度
系列文章:【Mysql-InnoDB 系列】InnoDB 架构【Mysql-InnoDB 系列】锁【Mysql-InnoDB 系列】事务模型【Mysql-InnoDB 系列】关于一致读【Mysql-InnoDB 系列】锁定读【Mysql-InnoDB 系列】事务提交过程一 幻读关于幻读,在网上可以搜到很多种解释。这里我们还是先看mysql官方文档中给出的定义:The so-calledphantomproblem occurs within a transact...
2021-02-20 17:34:49 266
美团供应链架构演进.pptx
2020-11-27
CleanWipeV14(赛门铁克卸载工具)
2017-10-22
android获取网页源码
2014-08-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人