
Java架构师
Coder_Boy_
主攻【Java 微服务 云原生】,涉猎 web前端 、大数据 Linux运维 、嵌入式。
目前主要从事K8S DevOps CICD 容器云平台的开发设计工作,擅长使用DDD理念设计代码架构。
在团队开发中乐于分享自己的心得与经验,常于同事讨论业务与技术问题,担任项目组长一职。
并时刻关注并学习新技术,并将所学应用于研发中,对于已经处理解决的问题,事后从源码层研究报错原因。时刻保持技术敏感度
展开
-
SpringBoot自动装配执行原理图
SpringBoot核心注解核类原创 2023-01-15 17:52:50 · 256 阅读 · 0 评论 -
Spring bean的生命周期核心流程
Spring Bean的生命周期和不同时期的拓展点原创 2022-03-17 00:00:55 · 661 阅读 · 0 评论 -
SpringBoot启动内置Tomcat原理
总结:主要原理通过 SPI、配置注解@Import @Configuration条件注解@ConditionalXXX 、Spring的Bean生命周期拓展点xxxPostProcessor实现核心流程如下原创 2022-03-04 13:38:53 · 496 阅读 · 0 评论 -
手写Spring事务注解核心逻辑
Spring事务注解原理原创 2022-02-21 04:01:43 · 614 阅读 · 0 评论 -
常用设计模式汇总
一、单例模式类图1、类图2、时序图2、实现代码: package com.example.pattern.Singleton;public class Singleton { private static Singleton instance; private Singleton (){} // 0、原始写法// 这段代码简单明了,而且使用了懒加载模式,//但是却存在致命的问题。当有多个线程并行调用getIns...原创 2022-02-12 23:07:41 · 481 阅读 · 0 评论 -
Java面试复盘之非技术性面试题
Java面试题 非技术性面试题原创 2022-02-05 02:00:56 · 495 阅读 · 0 评论 -
Java面试复盘之架构类试题
Java面试题 架构设计类面试题原创 2022-02-05 01:55:15 · 342 阅读 · 0 评论 -
Java面试复盘之方案设计类试题
Java面试题 方案设计类面试题原创 2022-02-05 01:49:38 · 223 阅读 · 0 评论 -
Java面试复盘之场景类试题
Java面试题场景问题汇总原创 2022-02-05 01:45:50 · 841 阅读 · 0 评论 -
Java面试复盘之源码类试题
Java源码分析类面试题汇总原创 2022-02-05 01:35:45 · 327 阅读 · 0 评论 -
Java面试复盘之算法类试题
Java算法面试题汇总原创 2022-02-05 01:14:01 · 424 阅读 · 0 评论 -
Java核心知识体系之面试复盘
Java架构师常见面试题与自己面试中遇见的面试题汇总,作为Java知识体系复盘原创 2022-02-05 01:04:45 · 230 阅读 · 0 评论 -
ZooKeeper入门指南
ZooKeeper Getting Started GuideGetting Started: Coordinating Distributed Applications with ZooKeeper Pre-requisites Download Standalone Operation Managing ZooKeeper Storage Connecting to ZooKeeper Programming to ZooKeeper Running Replicate.翻译 2020-11-20 21:04:38 · 324 阅读 · 0 评论 -
Java高并发架构之并发编程-002
多线程并发编程 并发三大要素一、原子性原子,一个不可再被分割的颗粒。原子性,指的是一个或多个不能再被分割的操作。int i = 1; // 原子操作i++; // 非原子操作,从主内存读取 i 到线程工作内存,进行 +1,再把 i 写到主内存。虽然读取和写入都是原子操作,但合起来就不属于原子操作,我们又叫这种为“复合操作”。我们可以用synchronized 或 Lock 、原子变量类来把这个复合操作“变成”原子操作。案例演示:public class MultiThread原创 2022-01-20 15:53:28 · 702 阅读 · 0 评论 -
UML在软件工程中的使用 建模—类图
Enterprise Architect(EA) 是一个功能比较强悍的建模工具,本篇文章仅使用其 UML 建模功能,其他更多功能一、简单梳理Java中类与类、类与接口、接口与接口的关系一、继承 (子类 : 父类、子接口 : 父接口)子类 : 父类public abstract class Fruit {}public class Apple extends Fruit {}子接口 : 父接口public interface IBase {}public int原创 2022-01-19 22:33:41 · 5102 阅读 · 0 评论 -
Java高并发架构之并发编程-001
1、高并发产生的背景与价值更高效的使用CPU,提高CPU利用率。没有绝对定义说系统是高并发能力的强弱,只是相对的概念,指单位时间内处理的所能处理的请求数,只有相对比较时才能说谁的高并发能力高。2、衡量高并发能力的常用指标rt(响应时间) qps(每秒请求查询数) tps(每秒事务处理数)1. 响应时间(RT) :响应时间是指系统对请求作出响应的时间2、(QPS,Queries-per-second): 一般指每秒查询率。 每秒查询率业界参考原理:每天80%的访问集中在20%的时原创 2022-01-19 16:45:00 · 432 阅读 · 0 评论 -
UML在软件工程中的使用场景与简单使用
产品经理:写产品需求文档(PRD)做软件需求分析开发人员:技术架构图、概要设计、详细设计测试人员:测试架构图部署运维人员:部署架构图在软件设计和开发过程中会有不同的人参与其中,比如投资人、老板、客户、需求人员、开发人员等等,每个人都各有所长,涉及的工作内容也不尽相同,这就增加了不同人之间的沟通成本,有可能客户需要A,产品人员理解成了B,在传达给开发人员后开发出了C。。。为了尽量避免这样的事情发生,显然UML这张“图纸”还是很有必要存在的。主要掌握以下类型的图即可何为静态、.原创 2022-01-16 16:15:17 · 2417 阅读 · 0 评论 -
架构师的5大基本能力
java技术架构基础技能点原创 2022-01-15 17:28:35 · 2309 阅读 · 0 评论 -
kubernetes开发运维系列_基础篇-容器化开发基础
Kubernetes开发入门依赖准备核心依赖<dependency><groupId>io.fabric8</groupId><artifactId>kubernetes-client</artifactId><version>4.12.0</version></dependency>辅助依赖<dependency><...原创 2021-01-25 01:43:06 · 1067 阅读 · 0 评论 -
kubernetes开发运维系列_基础篇-YAML 文件
我们在安装 kubernetes 集群的时候使用了一些 YAML 文件来创建相关的资源, 所以我们先来简单看一看 YAML 文件是如何工作的,并使 用 YAML 文件来定义一个 kubernetes pod,然后再来定义一个 kubernetes deploymentYAML 基础 它的基本语法规则如下: 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格。 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 # 表示注释,从这个字..原创 2021-01-16 15:39:20 · 425 阅读 · 0 评论 -
Java整体技术体系——核心技术知识体系图
核心模块:具体细节:【设计模式、框架】原创 2020-12-18 14:54:34 · 1513 阅读 · 2 评论 -
数据库系列——Mysql主从复制作用和工作原理详解
简述主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库事务处理库,从库做查询库。一、什么是主从复制主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。在最常用的mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器;此时主服务器会将更新信息写入到一个特定的二进制文件中。并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到..原创 2020-12-09 19:17:10 · 1809 阅读 · 0 评论 -
数据库系列—MySQL 的二进制日志恢复数据库数据
1、开启 binlog 功能及基本操作要使用 MySQL 的 binlog 日志功能,首先要在 MySQL 的配置文件中开启该功能,操作很简单。找到 MySQL 的配置文件,在文件中添加一行 log_bin = mysql-bin 即可。其实在我安装的各种 MySQL 环境中,该功能通常都是默认开启的。开启 binlog 功能后,在 MySQL 的数据库目录下就会有诸如 mysql-bin.000001、mysql-bin.000002等文件,这就是 MySQL 的二进制日志文件。每当 MySQL原创 2020-12-08 16:12:09 · 1974 阅读 · 1 评论 -
任务调度处理系列之 Spring源码分析-【SchedulingConfigurer实现原理】
可能的场景在做业务平台的时候我们经常会遇到,某些跟时间打交道的需要修改状态,比如说在时间区间之前,属于未生效状态,区间之内属于有效期,区间之后,属于过期,或者需要每天 每周 每月,甚至是年为单位的做一些固定的操作。通过定时任务可以通过开启定时任务来完成这些需求。我做合同管理模块,合同有未生效,已生效,已过期,三个状态,不可能每次用户登录的时候去判断这个状态,然后修改,这样做会在登录的逻辑里边耦合了合同业务逻辑,同时消耗了登录时间,不太可取。还有一些需要报表统计类的批量处理任务,任务量大,类别也.原创 2020-12-05 04:27:19 · 3276 阅读 · 0 评论 -
Redis数据类型介绍——官网解读
官网地址:https://redis.io/topics/data-types-introRedis常用数据类型介绍An introduction to Redis data types and abstractionsRedis 数据类型和抽象的介绍Redis is not aplainkey-value store, it is actually adata structures server, supporting different kinds of values. Wha...翻译 2020-12-04 17:39:15 · 960 阅读 · 0 评论 -
架构设计原型草图汇总-【梳理知识碎片】定期增加草图都在这里
草图编号: AC_0001草图编号:MC_0001原创 2020-12-03 17:13:28 · 501 阅读 · 0 评论 -
Java必备技能之源码篇(Nginx源码研究之nginx限流模块)
概述:高并发系统有三把利器:缓存、降级和限流;限流的目的是通过对并发访问/请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务(定向到错误页)、排队等待(秒杀)、降级(返回兜底数据或默认数据);高并发系统常见的限流有:限制总并发数(数据库连接池)、限制瞬时并发数(如nginx的limit_conn模块,用来限制瞬时并发连接数)、限制时间窗口内的平均速率(nginx的limit_req模块,用来限制每秒的平均速率);另外还可以根据网络连接数、网络流量、CPU或内存负载等来限流。业界主原创 2020-12-02 14:39:14 · 513 阅读 · 0 评论 -
Java必备技能之环境搭建篇 (Nginx 限流访问模块的方法)
Nginx 的 limit 模块用于限制 Nginx 的访问。limit 模块包含有两个部分:limit_conn 用于对连接数量的限制 limit_req 用于对请求频率的限制limit_connlimit_conn 模块的实现比 limit_req 简单,直接对拥有相同变量值的连接进行计数,超过限制的连接返回 503 错误(Service Temporarily Unavailable)。实际上,由于某一时刻,一个连接上一般只有一个待处理请求,且由于 keepalive 和 p原创 2020-11-30 23:27:22 · 200 阅读 · 0 评论 -
Java必备技能之环境搭建篇之Nginx限流(简单实现)
Nginx现在已经是最火的负载均衡、反向代理中间件,高并发场景必用中间件,应用场景很多,这里介绍它的限流实现方案。场景接入:在流量陡增的互联网面前,接口限流也是很有必要的,尤其是针对高并发的场景。Nginx的限流主要是两种方式:限制访问频率和限制并发连接数。限流(rate limiting)是NGINX众多特性中最有用的,也是经常容易被误解和错误配置的特性之一。该特性可以限制某个用户在一个给定时间段内能够产生的HTTP请求数。请求可以简单到就是一个对于主页的GET请求或者一个登陆表格的POS..原创 2020-11-30 23:02:01 · 306 阅读 · 0 评论 -
Java8设计模式最佳实战-设计模式概述(第七天学习记录)
Explaining the FrontController patternIn the Java EE world, we commonly work with complex projects that have similar在javaee世界中,我们通常使用具有相似特性的复杂项目functionalities and processes. Sometimes, using various controllers to handle a request is a功能和流程。有时,使用不同的控原创 2020-11-30 13:17:06 · 210 阅读 · 0 评论 -
Java8设计模式最佳实战-设计模式概述(第六天学习记录)
Implementing the intercepting filter pattern using Java EE 8To implement this pattern with the best practices of Java EE 8, we will use the servlet filter为了用javaee8的最佳实践来实现这个模式,我们将使用servlet过滤器from the Java Servlet specification. With the servlet filter原创 2020-11-30 11:23:35 · 280 阅读 · 1 评论 -
Java8设计模式最佳实战-设计模式概述(第五天学习记录)
Presentation PatternsIn this chapter, we’ll cover each topic by explaining the concept and showing examples of在本章中,我们将通过解释概念和展示implementations. After reading this chapter, you will know about these concepts and will实现。读完这一章,你将了解这些概念be able to impleme原创 2020-11-30 10:54:28 · 239 阅读 · 0 评论 -
Java8设计模式最佳实战-设计模式概述(第四天学习记录)
Explaining enterprise patterns解释企业模式Over time, technology has evolved and new tools have emerged and helped to change随着时间的推移,技术不断发展,新的工具也出现了,并有助于改变some areas. Seeing the potential of these technologies, organizations increasingly began to一些地区。看到这些技术的.原创 2020-11-30 10:43:23 · 236 阅读 · 0 评论 -
Java8设计模式最佳实战-设计模式概述(第三天学习记录)
Explaining Abstract Factory解释抽象工厂Sometimes, we need to create a family of objects in a project. Imagine that we have an ecommerce and we have various kinds of products such as cell phones, notebooks, and有时,我们需要在项目中创建一个对象族。想象一下,我们有一个电子商务,我们有各种各样的产品,如手机、.原创 2020-11-30 10:28:30 · 222 阅读 · 0 评论 -
Java8设计模式最佳实战-设计模式概述(第二天学习记录)
Understanding the advantages of design了解设计的优势patterns模式Creating an object-oriented design is a tough task. This is because we have several创建面向对象的设计是一项艰巨的任务。这是因为我们有几个important elements to think about with regard to the scenario that we’ll work in and.原创 2020-11-30 09:41:27 · 232 阅读 · 0 评论 -
Java8设计模式最佳实战-设计模式概述(第一天学习记录)
Java8设计模式Explaining design patterns解释设计模式Design patterns are sets of solutions to common design problems that occur over and over设计模式是对反复出现的常见设计问题的一组解决方案in development. They work as a solution template in which an abstract solution for a正在开发中。它们用作解决原创 2020-11-30 09:09:37 · 355 阅读 · 0 评论 -
Java必备技能之环境搭建篇(基础环境)详细版之Git命令行
总结项目开发运维常用的git指令:(1)新建分支git branch 分支名(2)切换分支git checkout 分支名(3)进行项目上传git add .git commit -m "提交的信息"git remote add origin 远程仓库地址git push -u origin 分支名上面几个最常用!1、配置用户名密码git config --global user.name ""git config --globa...原创 2020-11-18 16:40:00 · 243 阅读 · 0 评论 -
Netty官方 入门示例详解
官网文档翻译: https://netty.io/downloads.htmlUser guide for 4.xNetty下载官方网站下载 : https://netty.io/downloads.htmlMaven 依赖可以从 Netty 官网下载页中获取:https://netty.io/downloads.html使用依赖环境Netty没有强制性的外部依赖关系。运行Netty只需JDK 1.5(对于Netty 4+,则为1.6)或更高版本。如果使用 Maven 进行项目开发.翻译 2020-11-18 04:18:11 · 1064 阅读 · 0 评论 -
Java必备技能之环境搭建篇(基础环境)详细版之Git
安装配置GitA、下载安装登录git官网进行下载:下载稳定版的最新的即可 目前是 2.29.2.2https://git-scm.com/进行安装 (这一步选择你的自定义路径)其他的就不截图了,都是默认next即可安装完成后鼠标右击即可看到git菜单选择Git Bash Here这个也是最常用的一个git客户端至此,安装Git ok!B、配置与使用为了能拉取远程代码实现分布式开发模式,实现本地开发,然...原创 2020-11-17 22:08:07 · 685 阅读 · 0 评论 -
Java必备技能之环境搭建篇(基础环境)详细版
1、Maven环境搭建(Window环境)前置环境:安装JDK下载与安装 浏览器打开官网 [https://maven.apache.org/] maven旧版本下载环境配置 新建环境变量MAVEN_HOME,赋值D:\DevResource\apache-maven-3.3.9 编辑环境变量Path,追加%MAVEN_HOME%\bin\; 至此,maven已经完成了安装,...原创 2020-11-13 20:38:54 · 614 阅读 · 0 评论