关于作者
- 微信公众号、头条号、CSDN账号都是程序员欣宸
- 前腾讯、前阿里员工,从事Java后台工作;
- 对Docker和Kubernetes充满热爱;
- 所有文章均为作者原创;
关于这个代码仓库
- CSDN博客地址:http://blog.csdn.net/boling_cavalry
- 这个代码仓库里是博客中涉及的源码、文件等
- 如果对您有帮助,请给个Star,谢谢您!
文章分类
总的来说分为以下几大类,若有您感兴趣的内容,我将不胜荣幸:
- Java;
- 后台中间件;
- Docker;
- Kubernetes;
- 大数据;
- 综合兴趣,例如LeetCode、树莓派、群晖系统等;
- DevOps;
- 常用工具和技巧;
- 问题处理备忘;
Java领域
云原生技术,Quarkus专辑
quarkus长篇连载
综合实战
- 《quarkus实战之一:准备工作》
- 《quarkus实战之二:应用的创建、构建、部署》
- 《quarkus实战之三:开发模式(Development mode)》
- 《quarkus实战之四:远程热部署》
- 《quarkus实战之五:细说maven插件》
- 《quarkus实战之六:配置》
- 《quarkus实战之七:使用配置》
- 《quarkus实战之八:profile》
虚拟线程
- 支持JDK19虚拟线程的web框架,之一:体验
- 支持JDK19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用
- 支持JDK19虚拟线程的web框架,之三:观察运行中的虚拟线程
- 支持JDK19虚拟线程的web框架,之四:看源码,了解quarkus如何支持虚拟线程
- 支持JDK19虚拟线程的web框架,之五(终篇):兴风作浪的ThreadLocal
依赖注入
- 《quarkus依赖注入之一:创建bean》
- 《quarkus依赖注入之二:bean的作用域》
- 《quarkus依赖注入之三:用注解选择注入bean》
- 《quarkus依赖注入之四:选择注入bean的高级手段》
- 《quarkus依赖注入之五:拦截器(Interceptor)》
- 《quarkus依赖注入之六:发布和消费事件》
- 《quarkus依赖注入之七:生命周期回调》
- 《quarkus依赖注入之八:装饰器(Decorator)》
- 《quarkus依赖注入之九:bean读写锁》
- 《quarkus依赖注入之十:学习和改变bean懒加载规则》
- 《quarkus依赖注入之十一:拦截器高级特性上篇(属性设置和重复使用)》
- 《quarkus依赖注入之十二:禁用类级别拦截器》
- 《quarkus依赖注入之十三:其他重要知识点大串讲(终篇)》
数据库
- 《quarkus数据库篇之一:比官方demo更简单的基础操作》
- 《quarkus数据库篇之二:无需数据库也能运行增删改查(dev模式)》
- 《quarkus数据库篇之三:单应用同时操作多个数据库》
- 《quarkus数据库篇之四:本地缓存》
基础知识
- 《CentOS7安装JDK8》
- 《Ubuntu下安装OpenJDK10》
- 《Ubuntu环境下载OpenJDK11源码》
- 《体验RxJava和lambda》
- 《实战限流(guava的RateLimiter)》
- 《java.util.Optional学习笔记》
- 《org.springframework.util.StopWatch:简洁的耗时统计小工具》
- 《体验IntelliJ IDEA的远程开发(Remote Development)》
- 《20天等待,申请终于通过,安装和体验IntelliJ IDEA新UI预览版》
- 《浏览器上写代码,4核8G微软服务器免费用,Codespaces真香》
- 《Codespaces个性化后台服务器配置指南》
- 《桌面版vscode用免费的微软4核8G服务器做远程开发(编译运行都在云上,还能自由创建docker服务)》
进阶实战
- 《Java实战操作MongoDB集群(副本集)》
- 《Docker下Java文件上传服务三部曲之一:准备环境》
- 《Docker下Java文件上传服务三部曲之二:服务端开发》
- 《Docker下Java文件上传服务三部曲之三:wireshark抓包分析》
- 《实战Redis序列化性能测试(Kryo和字符串)》
- 《JavaCPP快速入门(官方demo增强版)》
畅游JVM世界
- 《极简,利用Docker仅两行命令就能下载和编译OpenJDK11》
- 《利用Docker极速下载OpenJDK11源码》
- 《制作Docker镜像,用来下载OpenJDK11源码》
- 《制作Docker镜像,用来编译OpenJDK11源码》
- 《Ubuntu环境编辑OpenJDK11源码》
- 《openjdk镜像的tag说明》
- 《ARM64架构下,OpenJDK的官方Docker镜像为何没有8版本?》
- 《ARM架构下的Docker环境,OpenJDK官方没有8版本镜像,如何完美解决?》
- 《极速体验编译openjdk8(docker环境)》
- 《在docker上编译openjdk8》
- 《修改,编译,GDB调试openjdk8源码(docker环境下)》
- 《环境变量_JAVA_LAUNCHER_DEBUG,它能给你更多的jvm信息》
- 《Java虚拟机学习:方法调用的字节码指令》
- 《Java的wait()、notify()学习三部曲之一:JVM源码分析》
- 《Java的wait()、notify()学习三部曲之二:修改JVM源码看参数》
- 《Java的wait()、notify()学习三部曲之三:修改JVM源码控制抢锁顺序》
玩转Maven
- 《Ubuntu部署和体验Nexus3》
- 《没有JDK和Maven,用Docker也能构建Maven工程》
- 《maven构建docker镜像三部曲之一:准备环境》
- 《maven构建docker镜像三部曲之二:编码和构建镜像》
- 《maven构建docker镜像三部曲之三:推送到远程仓库(内网和阿里云)》
- 《实战maven私有仓库三部曲之一:搭建和使用》
- 《实战maven私有仓库三部曲之二:上传到私有仓库》
- 《实战maven私有仓库三部曲之三:Docker下搭建maven私有仓库》
- 《修改gradle脚本,加速spring4.1源码编译构建速度》
- 《Docker与Jib(maven插件版)实战》
- 《Jib使用小结(Maven插件版)》
- 《Jib构建镜像问题从定位到深入分析》
- 《kubernetes下的jenkins如何设置maven》
- 《kubernetes下jenkins实战maven项目编译构建》
- 《Nexus3常用功能备忘》
- 《我把自己的java库发布到了maven中央仓库,从此可以像Jackson、Spring的jar一样使用它了》
玩转Gradle
Jackson学习特辑
- 《jackson学习之一:基本信息》
- 《jackson学习之二:jackson-core》
- 《jackson学习之三:常用API操作》
- 《jackson学习之四:WRAP_ROOT_VALUE(root对象)》
- 《jackson学习之五:JsonInclude注解》
- 《jackson学习之六:常用类注解》
- 《jackson学习之七:常用Field注解》
- 《jackson学习之八:常用方法注解》
- 《jackson学习之九:springboot整合(配置文件)》
- 《jackson学习之十(终篇):springboot整合(配置类)》
JUnit5学习特辑
《JUnit5学习》系列旨在通过实战提升SpringBoot环境下的单元测试技能,一共八篇文章,链接如下:
- 《JUnit5学习之一:基本操作》
- 《JUnit5学习之二:Assumptions类》
- 《JUnit5学习之三:Assertions类》
- 《JUnit5学习之四:按条件执行》
- 《JUnit5学习之五:标签(Tag)和自定义注解》
- 《JUnit5学习之六:参数化测试(Parameterized Tests)基础》
- 《JUnit5学习之七:参数化测试(Parameterized Tests)进阶》
- 《JUnit5学习之八:综合进阶(终篇)》
jetcd学习特辑
disruptor学习特辑
MyBatis学习(初级版)
- 《MyBatis初级实战之一:Spring Boot集成》
- 《MyBatis初级实战之二:增删改查》
- 《MyBatis初级实战之三:springboot集成druid》
- 《MyBatis初级实战之四:druid多数据源》
- 《MyBatis初级实战之五:一对一关联查询》
- 《MyBatis初级实战之六:一对多关联查询》
java版gRPC实战专辑
Java扩展Nginx专辑
- 《Java扩展Nginx之一:你好,nginx-clojure》
- 《Java扩展Nginx之二:编译nginx-clojure源码》
- 《Java扩展Nginx之三:基础配置项》
- 《Java扩展Nginx之四:远程调试》
- 《Java扩展Nginx之五:五大handler(系列最核心)》
- 《Java扩展Nginx之六:两大filter》
- 《Java扩展Nginx之七:共享内存》
- 《精选版:用Java扩展Nginx(nginx-clojure 入门)》
视图邻域
Spring领域
Spring基础
- 《实战spring自定义属性(schema):快速体验》
- 《spring的BeanFactory和ApplicationContext》
- 《ImportSelector与DeferredImportSelector的区别(spring4)》
- 《实战spring自定义属性(schema)》
Spring扩展实战专题
- 《spring4.1.8扩展实战之一:自定义环境变量验证》
- 《spring4.1.8扩展实战之二:Aware接口揭秘》
- 《spring4.1.8扩展实战之三:广播与监听》
- 《spring4.1.8扩展实战之四:感知spring容器变化(SmartLifecycle接口)》
- 《spring4.1.8扩展实战之五:改变bean的定义(BeanFactoryPostProcessor接口)》
- 《spring4.1.8扩展实战之六:注册bean到spring容器(BeanDefinitionRegistryPostProcessor接口)》
- 《spring4.1.8扩展实战之七:控制bean(BeanPostProcessor接口)》
- 《spring4.1.8扩展实战之八:Import注解》
畅游Spring源码世界
- 《修改和编译spring源码,构建jar(spring-context-4.0.2.RELEASE)》
- 《spring+mybatis启动NoClassDefFoundError异常分析三部曲之一:稳定重现问题》
- 《spring+mybatis启动NoClassDefFoundError异常分析三部曲之二:定位错误》
- 《spring+mybatis启动NoClassDefFoundError异常分析三部曲之三:改spring源码,取详细错误》
- 《SpringMVC源码分析:POST请求中的文件处理》
- 《下载Spring4.1.x源码并用IntelliJ IDEA打开》
- 《windows下修改、编译、构建spring-framework4.1.8.RELEASE源码》
- 《spring4.1.8初始化源码学习三部曲之一:AbstractApplicationContext构造方法》
- 《spring4.1.8初始化源码学习三部曲之二:setConfigLocations方法》
- 《spring4.1.8初始化源码学习三部曲之三:AbstractApplicationContext.refresh方法》
SpringBoot基础
- 《自定义spring boot starter三部曲之一:准备工作》
- 《自定义spring boot starter三部曲之二:实战开发》
- 《自定义spring boot starter三部曲之三:源码分析spring.factories加载过程》
- 《基于spring boot框架访问zookeeper》
- 《Docker下运行springboot》
- 《springboot线程池的使用和扩展》
- 《SpringBoot下用Kyro作为Redis序列化工具》
- 《springboot应用查询城市天气》
- 《立即可用的实战源码(springboot+redis+mybatis+restTemplate)》
- 《SpringBoot-2.3镜像方案为什么要做多个layer》
- 《体验SpringBoot(2.3)应用制作Docker镜像(官方方案)》
- 《详解SpringBoot(2.3)应用制作Docker镜像(官方方案)》
- 《掌握SpringBoot-2.3的容器探针:基础篇》
- 《掌握SpringBoot-2.3的容器探针:深入篇》
- 《掌握SpringBoot-2.3的容器探针:实战篇》
- 《springboot的jar为何能独立运行》
- 《SpringBoot(2.4)应用制作Docker镜像(Gradle版官方方案)》
SpringBoot进阶实战
- 《Docker下redis与springboot三部曲之一:极速体验》
- 《Docker下redis与springboot三部曲之二:安装redis主从和哨兵》
- 《Docker下redis与springboot三部曲之三:springboot下访问redis哨兵》
- 《SpringBoot应用使用自定义的ApplicationContext实现类》
- 《Spring Boot应用在kubernetes的sidecar设计与实战》
- 《Spring Native实战(畅快体验79毫秒启动springboot应用)》
- 《三分钟体验:SpringBoot用深度学习模型识别数字》
- 《SpringBoot用深度学习模型识别数字:开发详解》
SpringCloud基础
SpringCloud实战
- 《Docker下的Spring Cloud三部曲之一:极速体验》
- 《Docker下的Spring Cloud三部曲之二:细说Spring Cloud开发》
- 《Docker下的Spring Cloud三部曲之三:在线横向扩容》
- 《本地服务调用K8S环境中的SpringCloud微服务实战》
Eureka源码分析专题
- 《Spring Cloud源码分析之Eureka篇第一章:准备工作》
- 《Spring Cloud源码分析之Eureka篇第二章:注册中心启动类上的注解EnableEurekaServer》
- 《Spring Cloud源码分析之Eureka篇第三章:EnableDiscoveryClient与EnableEurekaClient的区别(Edgware版本)》
- 《Spring Cloud源码分析之Eureka篇第四章:服务注册是如何发起的》
- 《Spring Cloud源码分析之Eureka篇第五章:更新服务列表》
- 《Spring Cloud源码分析之Eureka篇第六章:服务注册》
- 《Spring Cloud源码分析之Eureka篇第七章:续约》
- 《Spring Cloud源码分析之Eureka篇第八章:服务注册名称的来历》
Spring Cloud Gateway从入门到提高
- 《Spring Cloud Gateway实战之一:初探》
- 《Spring Cloud Gateway实战之二:更多路由配置方式》
- 《Spring Cloud Gateway实战之三:动态路由》
- 《Spring Cloud Gateway实战之四:内置predicate小结》
- 《Spring Cloud Gateway实战之五:内置filter》
- 《Spring Cloud Gateway的断路器(CircuitBreaker)功能》
- 《Spring Cloud Gateway自定义过滤器实战(观测断路器状态变化)》
- 《Spring Cloud Gateway限流实战》
- 《Spring Cloud Gateway修改请求和响应body的内容》
- 《Spring Cloud Gateway过滤器精确控制异常返回(分析篇)》
- 《Spring Cloud Gateway过滤器精确控制异常返回(实战,控制http返回码和message字段)》
- 《Spring Cloud Gateway过滤器精确控制异常返回(实战,完全定制返回body)》
- 《Spring Cloud Gateway编码实现任意地址跳转》
spring-cloud-alibaba实战
- 《Docker下,两分钟极速体验Nacos》;
- 《Docker下的Nacos环境开发》;
- 《Docker下,两分钟极速体验Nacos配置中心》;
- 《Docker下Nacos配置应用开发》;
- 《Docker下Nacos持久化配置》;
spring-cloud-kubernetes特辑
- 《spring-cloud-kubernetes官方demo运行实战》
- 《你好spring-cloud-kubernetes》
- 《spring-cloud-kubernetes背后的三个关键知识点》
- 《spring-cloud-kubernetes的服务发现和轮询实战(含熔断)》
- 《spring-cloud-kubernetes与SpringCloud Gateway》
- 《spring-cloud-kubernetes与k8s的configmap》
- 《spring-cloud-kubernetes自动同步k8s的configmap更新》
spring-cloud-square特辑
- 五分钟搞懂spring-cloud-square
- spring-cloud-square开发实战(三种类型全覆盖)
- spring-cloud-square源码速读(spring-cloud-square-okhttp篇)
- spring-cloud-square源码速读(retrofit + okhttp篇)
dubbo实战特辑
java云原生系列
- strimzi实战之一:简介和准备
- strimzi实战之二:部署和消息功能初体验
- strimzi实战之三:prometheus+grafana监控(按官方文档搞不定监控?不妨看看本文,已经踩过坑了)
- Strimzi Kafka Bridge(桥接)实战之一:简介和部署
- Strimzi Kafka Bridge(桥接)实战之二:生产和发送消息
- Strimzi Kafka Bridge(桥接)实战之三:自制sdk(golang版本)
Docker
基础知识
- 《Docker的准备,安装,初体验》
- 《CentOS7安装docker》
- 《docker下载镜像慢怎么办?daocloud加速器来帮你》
- 《docker私有仓库搭建与使用实战》
- 《maven构建docker镜像三部曲之一:准备环境》
- 《maven构建docker镜像三部曲之二:编码和构建镜像》
- 《maven构建docker镜像三部曲之三:推送到远程仓库(内网和阿里云)》
- 《查看Docker容器的信息》
- 《Docker镜像制作实战:设置时区和系统编码》
- 《Docker镜像列表中的none:none是什么》
- 《Docker多阶段构建实战(multi-stage builds)》
- 《docker的/var/run/docker.sock参数》
- 《docker与gosu》
- 《Docker远程连接设置》
- 《TLS加密远程连接Docker》
- 《CentOS部署Harbor镜像仓库》
- 《Docker常用命令小记》
- 《一行命令安装docker和docker-compose(CentOS7)》
- 《极速体验docker容器健康》
- 《Java应用在docker环境配置容器健康检查》
- 《docker-compose下的java应用启动顺序两部曲之一:问题分析》
- 《docker-compose下的java应用启动顺序两部曲之二:实战》
- 《设置非root账号不用sudo直接执行docker命令》
- 《SpringBoot-2.3镜像方案为什么要做多个layer》
进阶实战
- 《Docker下的web开发和Tomcat部署》
- 《实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署》
- 《实战docker,构建nginx反向代理tomcat,学习link和docker-compose》
- 《在docker上编译openjdk8》
- 《修改,编译,GDB调试openjdk8源码(docker环境下)》
- 《让docker中的mysql启动时自动执行sql》
- 《Docker搭建disconf环境,三部曲之一:极速搭建disconf》
- 《Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像》
- 《Docker搭建disconf环境,三部曲之三:细说搭建过程》
- 《docker下使用disconf:极速体验》
- 《docker下使用disconf:细说demo开发》
- 《jedis使用入门(Docker环境下)》
- 《Docker下kafka学习,三部曲之一:极速体验kafka》
- 《Docker下kafka学习,三部曲之二:本地环境搭建》
- 《Docker下kafka学习,三部曲之三:java开发》
- 《Docker下部署dubbo,消费者应用无法使用link参数的问题》
- 《Docker下dubbo开发,三部曲之一:极速体验》
- 《Docker下dubbo开发,三部曲之二:本地环境搭建》
- 《Docker下dubbo开发,三部曲之三:java开发》
- 《Docker下实战zabbix三部曲之一:极速体验》
- 《Docker下实战zabbix三部曲之二:监控其他机器》
- 《Docker下实战zabbix三部曲之三:自定义监控项》
- 《极速体验编译openjdk8(docker环境)》
- 《Docker下HBase学习,三部曲之一:极速体验》
- 《Docker下HBase学习,三部曲之二:集群HBase搭建》
- 《Docker下HBase学习,三部曲之三:java开发》
- 《Docker下,极速体验mongodb》
- 《制作mongodb的Docker镜像文件》
- 《Docker下,实战mongodb副本集(Replication)》
- 《Docker下安装Rockmongo,图形化操作mongodb》
- 《Docker下的Kafka学习之一:制作集群用的镜像文件》
- 《Docker下的Kafka学习之二:搭建集群环境》
- 《Docker下的Kafka学习之三:集群环境下的java开发》
- 《Docker下,极速体验编译pinpoint1.6.x分支》
- 《把pinpoint编译环境做成Docker镜像文件》
- 《Docker下,极速体验pinpoint1.6.3》
- 《Docker下,pinpoint环境搭建》
- 《pinpoint插件开发之一:牛刀小试,调整gson插件》
- 《pinpoint插件开发之二:从零开始新建一个插件》
- 《docker下的Jenkins安装和体验》
- 《Docker下运行springboot》
- 《Docker下redis与springboot三部曲之一:极速体验》
- 《Docker下redis与springboot三部曲之二:安装redis主从和哨兵》
- 《Docker下redis与springboot三部曲之三:springboot下访问redis哨兵》
- 《实战maven私有仓库三部曲之三:Docker下搭建maven私有仓库》
- 《Docker下的Spring Cloud三部曲之一:极速体验》
- 《Docker下的Spring Cloud三部曲之二:细说Spring Cloud开发》
- 《Docker下的Spring Cloud三部曲之三:在线横向扩容》
- 《Docker下的OpenResty三部曲之一:极速体验》
- 《Docker下的OpenResty三部曲之二:细说开发》
- 《Docker下的OpenResty三部曲之三:OpenResty加Tomcat的服务》
- 《Docker下Java文件上传服务三部曲之一:准备环境》
- 《Docker下Java文件上传服务三部曲之二:服务端开发》
- 《Docker下Java文件上传服务三部曲之三:wireshark抓包分析》
- 《Docker下手工配置MySQL主从》
- 《Docker下MySQL主从三部曲之一:极速体验》
- 《Docker下MySQL主从三部曲之二:细说镜像制作》
- 《Docker下MySQL主从三部曲之三:binlog日志参数实战》
- 《Docker下ELK三部曲之一:极速体验》
- 《Docker下ELK三部曲之二:细说开发》
- 《Docker下ELK三部曲之三:K8S上的ELK和应用日志上报》
- 《Docker镜像制作实战:设置时区和系统编码》
- 《没有JDK和Maven,用Docker也能构建Maven工程》
- 《Docker下RabbitMQ延时队列实战两部曲之一:极速体验》
- 《Docker下RabbitMQ延时队列实战两部曲之二:细说开发》
- 《利用Docker极速下载OpenJDK11源码》
- 《极简,利用Docker仅两行命令就能下载和编译OpenJDK11》
- 《kafka的Docker镜像使用说明(wurstmeister/kafka)》
- 《如何使用Docker内的kafka服务》
- 《自己动手制作elasticsearch-head的Docker镜像》
- 《自己动手制作elasticsearch的ik分词器的Docker镜像》
- 《docker下,一行命令搭建elasticsearch6.5.0集群(带head插件和ik分词器)》
- 《docker下,极速搭建spark集群(含hdfs集群)》
- 《docker下的spark集群,调整参数榨干硬件》
- 《用golang官方Docker镜像运行项目》
- 《Docker下Prometheus和Grafana三部曲之一:极速体验》
- 《Docker下Prometheus和Grafana三部曲之二:细说Docker编排》
- 《Docker下Prometheus和Grafana三部曲之三:自定义监控项开发和配置》
- 《Docker与Jib(maven插件版)实战》
- 《Docker下,两分钟极速体验Nacos》
- 《Docker下的Nacos环境开发》
- 《Docker下,两分钟极速体验Nacos配置中心》
- 《Docker下Nacos配置应用开发》
- 《Docker下Nacos持久化配置》
- 《Docker下多机器免密码SSH登录》
- 《IDEA的Docker插件实战(Dockerfile篇)》
- 《IDEA的Docker插件实战(Docker Image篇)》
- 《IDEA的Docker插件实战(Docker-compose篇)》
- 《Docker Swarm从部署到基本操作》
- 《ARM64架构下,OpenJDK的官方Docker镜像为何没有8版本?》
- 《ARM架构下的Docker环境,OpenJDK官方没有8版本镜像,如何完美解决?》
- 《Docker部署flink备忘》
- 《用GitHub Actions制作Docker镜像》
- 《Docker下elasticsearch8部署、扩容、基本操作实战(含kibana)》
- 《docker-compose快速部署elasticsearch-8.x集群+kibana》
- 《群晖DS218+部署PostgreSQL(docker)》
kubernetes
kubernetes基础
- 《Kubernetes持久卷实战两部曲之一:极速体验》
- 《Kubernetes持久卷实战两部曲之二:细说开发》
- 《实战Kubernetes动态卷存储(NFS)》
- 《Spring Boot应用在kubernetes的sidecar设计与实战》
- 《Kubernetes源码学习之一:下载和编译源码》
- 《Kubernetes深入学习之二:编译和部署镜像(api-server)》
- 《k8s自定义controller三部曲之一:创建CRD(Custom Resource Definition)》
- 《k8s自定义controller三部曲之二:自动生成代码》
- 《k8s自定义controller三部曲之三:编写controller代码》
- 《查看k8s的etcd数据》
- 《kubernetes部署metrics-server》
- 《Kubernetes的Local Persistent Volumes使用小记》
- 《开发阶段,将SpringBoot应用快速部署到K8S》
- 快速搭建云原生开发环境(k8s+pv+prometheus+grafana)
kubernetes安装部署
- 《kubeadm搭建kubernetes集群之一:构建标准化镜像》
- 《kubeadm搭建kubernetes集群之二:创建master节点》
- 《kubeadm搭建kubernetes集群之三:加入node节点》
- 《rancher下的kubernetes之一:构建标准化vmware镜像》
- 《rancher下的kubernetes之二:安装rancher和kubernetes》
- 《rancher下的kubernetes之三:在linux上安装kubectl工具》
- 《CentOS7环境安装Kubernetes四部曲之一:标准化机器准备》
- 《CentOS7环境安装Kubernetes四部曲之二:配置模板和安装master》
- 《CentOS7环境安装Kubernetes四部曲之三:添加节点》
- 《CentOS7环境安装Kubernetes四部曲之四:安装kubectl工具》
- 《CentOS7环境部署kubenetes1.12版本五部曲之一:标准化机器》
- 《CentOS7环境部署kubenetes1.12版本五部曲之二:创建master节点》
- 《CentOS7环境部署kubenetes1.12版本五部曲之三:node节点加入》
- 《CentOS7环境部署kubenetes1.12版本五部曲之四:安装dashboard》
- 《CentOS7环境部署kubenetes1.12版本五部曲之五:安装kubectl》
- 《极速安装和体验k8s(Minikube)》
- 《Linux安装minikube指南》
- 《kubespray2.11安装kubernetes1.15》
- 《极速安装kubernetes-1.22.0(三台CentOS7服务器)》
kubernetes进阶实战
- 《kubernetes下的Nginx加Tomcat三部曲之一:极速体验》
- 《kubernetes下的Nginx加Tomcat三部曲之二:细说开发》
- 《kubernetes下的Nginx加Tomcat三部曲之三:实战扩容和升级》
- 《Kubernetes下web服务的性能测试三部曲之一:准备工作》
- 《Kubernetes下web服务的性能测试三部曲之二:纵向扩容》
- 《Kubernetes下web服务的性能测试三部曲之三:横向扩容》
- 《在windows电脑上配置kubectl远程操作kubernetes》
- 《本地服务调用K8S环境中的SpringCloud微服务实战》
- 《kubernetes下的jenkins如何设置maven》
- 《K8S环境的Jenkin性能问题处理》
- 《kubernetes1.15极速部署prometheus和grafana》
- 《K8S环境的Jenkin性能问题处理续篇(任务Pod设置)》
- 《K8S的StorageClass实战(NFS)》
- 《K8S环境快速部署Kafka(K8S外部可访问)》
- 《K8S的Kafka监控(Prometheus+Grafana)》
- 《Kubernetes的Group、Version、Resource学习小记》
- 《Kubernetes亲和性学习笔记》
- 《极速安装kubernetes-1.22.0(三台CentOS7服务器)》
kubernetes官方java客户端特辑
- 《Kubernetes官方java客户端之一:准备》
- 《Kubernetes官方java客户端之二:序列化和反序列化问题》
- 《Kubernetes官方java客户端之三:外部应用》
- 《Kubernetes官方java客户端之四:内部应用》
- 《Kubernetes官方java客户端之五:proto基本操作》
- 《Kubernetes官方java客户端之六:OpenAPI基本操作》
kubernetes官方go客户端特辑
- client-go实战之一:准备工作
- client-go实战之二:RESTClient
- client-go实战之三:Clientset
- client-go实战之四:dynamicClient
- client-go实战之五:DiscoveryClient
- client-go实战之六:时隔两年,刷新版本继续实战
- client-go实战之七:准备一个工程管理后续实战的代码
- client-go实战之八:更新资源时的冲突错误处理
- client-go实战之九:手写一个kubernetes的controller
Operator实战特辑
- kubebuilder实战之一:准备工作
- kubebuilder实战之二:初次体验kubebuilder
- kubebuilder实战之三:基础知识速览
- kubebuilder实战之四:operator需求说明和设计
- kubebuilder实战之五:operator编码
- kubebuilder实战之六:构建部署运行
- kubebuilder实战之七:webhook
- kubebuilder实战之八:知识点小记
helm实战
Serverless领域OpenFaaS特辑
- 部署
- 函数入门
- Java函数
- 模板操作(template)
- 大话watchdog
- of-watchdog(为性能而生)
- java11模板解析
- OpenFaaS实战之八:自制模板(maven+jdk8)
- OpenFaaS实战之九:终篇,自制模板(springboot+maven+jdk8)
大数据
hive学习笔记
CDH
Flink
- 《Flink1.7从安装到体验》
- 《开发第一个Flink应用》
- 《没有了可用Task slot,Flink新增任务会怎样?》
- 《Flink实战:消费Wikipedia实时消息》
- 《树莓派3B搭建Flink集群》
- 《Flink数据源拆解分析(WikipediaEditsSource)》
- 《Flink消费kafka消息实战》
- 《Docker部署flink备忘》
- 《Flink on Yarn三部曲之一:准备工作》
- 《Flink on Yarn三部曲之二:部署和设置》
- 《Flink on Yarn三部曲之三:提交Flink任务》
- 《IDEA上运行Flink任务》
- 《Flink1.9.2源码编译和使用》
- 《Flink的DataSource三部曲之一:直接API》
- 《Flink的DataSource三部曲之二:内置connector》
- 《Flink的DataSource三部曲之三:自定义》
- 《Flink的sink实战之一:初探》
- 《Flink的sink实战之二:kafka》
- 《Flink的sink实战之三:cassandra3》
- 《Flink的sink实战之四:自定义》
- 《Flink SQL Client初探》
- 《准备数据集用于flink学习》
- 《将CSV的数据发送到kafka(java版)》
- 《Flink SQL Client综合实战》
- 《Flink Native Kubernetes实战》
- 《Flink处理函数实战之一:深入了解ProcessFunction的状态操作(Flink-1.10)》
- 《Flink处理函数实战之二:ProcessFunction类》
- 《Flink处理函数实战之三:KeyedProcessFunction类》
- 《Flink处理函数实战之四:窗口处理》
- 《Flink处理函数实战之五:CoProcessFunction(双流处理)》
- 《理解ProcessFunction的Timer逻辑》
双流处理实战特辑
Spark
- 《部署spark2.2集群(standalone模式)》
- 《第一个spark应用开发详解(java版)》
- 《部署Spark2.2集群(on Yarn模式)》
- 《docker下,极速搭建spark集群(含hdfs集群)》
- 《spark实战之:分析维基百科网站统计数据(java版)》
- 《docker下的spark集群,调整参数榨干硬件》
- 《IDEA开发Spark应用实战(Scala)》
- 《查看Spark任务的详细信息》
- 《Mac部署spark2.4.4》
Kylin
HBase
Hive
Hadoop
数据集
中间件
配置中心
- 《Docker搭建disconf环境,三部曲之一:极速搭建disconf》
- 《Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像》
- 《Docker搭建disconf环境,三部曲之三:细说搭建过程》
- 《docker下使用disconf:极速体验》
- 《docker下使用disconf:细说demo开发》
zookeeper
缓存
- 《jedis使用入门(Docker环境下)》
- 《Docker下redis与springboot三部曲之一:极速体验》
- 《Docker下redis与springboot三部曲之二:安装redis主从和哨兵》
- 《Docker下redis与springboot三部曲之三:springboot下访问redis哨兵》
- 《实战Redis序列化性能测试(Kryo和字符串)》
注册中心
dubbo
nacos
- 《Docker下,两分钟极速体验Nacos》
- 《Docker下的Nacos环境开发》
- 《Docker下,两分钟极速体验Nacos配置中心》
- 《Docker下Nacos配置应用开发》
- 《Docker下Nacos持久化配置》
eureka
- 《Eureka的TimedSupervisorTask类(自动调节间隔的周期性任务)》
- 《实战监听Eureka client的缓存更新》
- 《Eureka的InstanceInfoReplicator类(服务注册辅助工具)》
- 《Eureka注册信息配置备忘》
- 《Wireshark抓包分析Eureka注册发现协议》
- 《Spring Cloud源码分析之Eureka篇第一章:准备工作》
- 《Spring Cloud源码分析之Eureka篇第二章:注册中心启动类上的注解EnableEurekaServer》
- 《Spring Cloud源码分析之Eureka篇第三章:EnableDiscoveryClient与EnableEurekaClient的区别(Edgware版本)》
- 《Spring Cloud源码分析之Eureka篇第四章:服务注册是如何发起的》
- 《Spring Cloud源码分析之Eureka篇第五章:更新服务列表》
- 《Spring Cloud源码分析之Eureka篇第六章:服务注册》
- 《Spring Cloud源码分析之Eureka篇第七章:续约》
- 《Spring Cloud源码分析之Eureka篇第八章:服务注册名称的来历》
消息队列
kafka
- 《Docker下kafka学习,三部曲之一:极速体验kafka》
- 《Docker下kafka学习,三部曲之二:本地环境搭建》
- 《Docker下kafka学习,三部曲之三:java开发》
- 《Docker下的Kafka学习之一:制作集群用的镜像文件》
- 《Docker下的Kafka学习之二:搭建集群环境》
- 《Docker下的Kafka学习之三:集群环境下的java开发》
- 《kafka的Docker镜像使用说明(wurstmeister/kafka)》
- 《如何使用Docker内的kafka服务》
- 《K8S环境快速部署Kafka(K8S外部可访问)》
- 《K8S的Kafka监控(Prometheus+Grafana)》
RabbitMQ
- 《Docker下RabbitMQ四部曲之一:极速体验(单机和集群)》
- 《Docker下RabbitMQ四部曲之二:细说RabbitMQ镜像制作》
- 《Docker下RabbitMQ四部曲之三:细说java开发》
- 《Docker下RabbitMQ四部曲之四:高可用实战》
- 《Docker下RabbitMQ延时队列实战两部曲之一:极速体验》
- 《Docker下RabbitMQ延时队列实战两部曲之二:细说开发》
数据库
MySQL
- 《让docker中的mysql启动时自动执行sql》
- 《Docker下,极速体验mongodb》
- 《制作mongodb的Docker镜像文件》
- 《Docker下,实战mongodb副本集(Replication)》
- 《Docker下安装Rockmongo,图形化操作mongodb》
- 《Java实战操作MongoDB集群(副本集)》
- 《Docker下的mysql设置字符集》
- 《Docker下手工配置MySQL主从》
- 《Docker下MySQL主从三部曲之一:极速体验》
- 《Docker下MySQL主从三部曲之二:细说镜像制作》
- 《Docker下MySQL主从三部曲之三:binlog日志参数实战》
- 《关于InnoDB表数据和索引数据的存储》
ElasticSearch
ElasticSearch实战
- 《CentOS7搭建ELK-6.2.3版本》
- 《Docker下ELK三部曲之一:极速体验》
- 《Docker下ELK三部曲之二:细说开发》
- 《Docker下ELK三部曲之三:K8S上的ELK和应用日志上报》
- 《Linux环境快速搭建elasticsearch6.5.4集群和Head插件》
- 《elasticsearch安装和使用ik分词器》
- 《自己动手制作elasticsearch-head的Docker镜像》
- 《自己动手制作elasticsearch的ik分词器的Docker镜像》
- 《docker下,一行命令搭建elasticsearch6.5.0集群(带head插件和ik分词器)》
- 《Elasticsearch6.1.2源码下载和编译构建》
- 《IntelliJ IDEA远程调试Elasticsearch6.1.2》
- 《极速导入elasticsearch测试数据》
ElasticSearch基本功专题
- 《elasticsearch实战三部曲之一:索引操作》
- 《elasticsearch实战三部曲之二:文档操作》 3《elasticsearch实战三部曲之三:搜索操作》
- 《Elasticsearch聚合学习之一:基本操作》
- 《Elasticsearch聚合学习之二:区间聚合》
- 《Elasticsearch聚合学习之三:范围限定》
- 《Elasticsearch聚合学习之四:结果排序》
- 《Elasticsearch聚合学习之五:排序结果不准的问题分析》
- 《Elasticsearch聚合的嵌套桶如何排序》
- 《理解elasticsearch的post_filter》
- 《elasticsearch的字符串动态映射》
- 《实战Elasticsearch6的join类型》
工具和技巧
- 《根据java代码生成UML图》
- 《设置Intellij idea和maven,支持lambda表达式》
- 《安装Genymotion模拟器运行Android studio的工程》
- 《Intellij idea远程debug连接tomcat,实现单步调试》
- 《docker下载镜像慢怎么办?daocloud加速器来帮你》
- 《Docker下的mysql设置字符集》
- 《用IntelliJ IDEA看Java类图》
- 《Wireshark的HTTP请求包和响应包如何对应》
- 《Wireshark抓包分析Eureka注册发现协议》
- 《免费申请和使用IntelliJ IDEA商业版License指南》
- 《发送kafka消息的shell脚本》
- 《github搜索技巧小结》
问题处理
- 《dubbo服务提供者在tomcat启动失败的问题》
- 《Docker下部署dubbo,消费者应用无法使用link参数的问题》
- 《adb shell无法连接到Genymotion上的虚拟设备的问题》
- 《spring+mybatis启动NoClassDefFoundError异常分析三部曲之一:稳定重现问题》
- 《spring+mybatis启动NoClassDefFoundError异常分析三部曲之二:定位错误》
- 《spring+mybatis启动NoClassDefFoundError异常分析三部曲之三:改spring源码,取详细错误》
- 《docker-compose中启动镜像失败的问题》
- 《Docker下No module named 'pymongo'问题处理》
- 《springboot启动失败的问题('hibernate.dialect' not set)》
- 《springboot的JPA在Mysql8新增记录失败的问题》
- 《Win10环境编译spring-framework4.1.9版本,报错"Failed to capture snapshot of input files for task 'distZip'"》
- 《maven编译遇到"编码GBK的不可映射字符"警告的处理》
- 《 docker问题备忘:"rpc error: code = 2 desc = containerd: container not found"》
- 《使用fabric8-maven-plugin插件的错误处理(No plugin found for prefix 'fabric8')》
- 《Linux下minikube启动失败(It seems like the kubelet isn't running or healthy)》
- 《Ubuntu18重启docker服务失败问题备忘》
- 《hadoop2.7集群初始化之后没有DataNode的问题》
DevOps
ansible
- 《ansible2.4安装和体验》
- 《超简单的CDH6部署和体验(单机版)》
- 《Flink on Yarn三部曲之一:准备工作》
- 《Flink on Yarn三部曲之二:部署和设置》
- 《Flink on Yarn三部曲之三:提交Flink任务》
- 《CDH+Kylin三部曲之一:准备工作》
- 《CDH+Kylin三部曲之二:部署和设置》
- 《CDH+Kylin三部曲之三:Kylin官方demo》
- 《ansible快速部署cassandra3集群》
Maven
- 《maven构建docker镜像三部曲之一:准备环境》
- 《maven构建docker镜像三部曲之二:编码和构建镜像》
- 《maven构建docker镜像三部曲之三:推送到远程仓库(内网和阿里云)》
- 《docker下的Jenkins安装和体验》
- 《实战maven私有仓库三部曲之一:搭建和使用》
- 《实战maven私有仓库三部曲之二:上传到私有仓库》
- 《实战maven私有仓库三部曲之三:Docker下搭建maven私有仓库》
- 《实战:向GitHub提交代码时触发Jenkins自动构建》
- 《修改gradle脚本,加速spring4.1源码编译构建速度》
- 《Docker与Jib(maven插件版)实战》
- 《Jib使用小结(Maven插件版)》
- 《Jib构建镜像问题从定位到深入分析》
- 《kubernetes下的jenkins如何设置maven》
- 《kubernetes下jenkins实战maven项目编译构建》
持续构建
- 《通过http请求启动jenkins任务》
- 《Jenkins流水线(pipeline)实战之:从部署到体验》
- 《让Jenkins执行GitHub上的pipeline脚本》
- 《Jenkins把GitHub项目做成Docker镜像》
- 《快速搭建Jenkins集群》
- 《Jenkins集群下的pipeline实战》
- 《kubernetes下的jenkins如何设置maven》
- 《K8S环境的Jenkin性能问题处理》
- 《K8S环境的Jenkin性能问题处理续篇(任务Pod设置)》
- 《远程触发Jenkins的Pipeline任务》
- 《远程触发Jenkins的Pipeline任务的并发问题处理》
- 《GitLab Runner部署(kubernetes环境)》
- 《GitLab CI构建SpringBoot-2.3应用》
- 《Gitlab Runner的分布式缓存实战》
- 《用GitHub Actions制作Docker镜像》
promethus
- 《Docker下Prometheus和Grafana三部曲之一:极速体验》
- 《Docker下Prometheus和Grafana三部曲之二:细说Docker编排》
- 《Docker下Prometheus和Grafana三部曲之三:自定义监控项开发和配置》
- 《kubernetes1.15极速部署prometheus和grafana》
- 《K8S的Kafka监控(Prometheus+Grafana)》
zabbix
- 《Docker下实战zabbix三部曲之一:极速体验》
- 《Docker下实战zabbix三部曲之二:监控其他机器》
- 《Docker下实战zabbix三部曲之三:自定义监控项》
- 《Docker下,极速体验编译pinpoint1.6.x分支》
pinpoint
- 《把pinpoint编译环境做成Docker镜像文件》
- 《Docker下,极速体验pinpoint1.6.3》
- 《Docker下,pinpoint环境搭建》
- 《pinpoint插件开发之一:牛刀小试,调整gson插件》
- 《pinpoint插件开发之二:从零开始新建一个插件》
- 《分布式系统快速接入pinpoint1.8.3指南》
jaeger
- 《分布式调用链跟踪工具Jaeger?两分钟极速体验》
- 《Jaeger开发入门(java版)》
- 《Java应用日志如何与Jaeger的trace关联》
- 《Jaeger的客户端采样配置》
- 《极简!一个注解就能创建Jaeger的Span》
- 《Jaeger知识点补充》
算法
- 《LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之一:解题思路》
- 《LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之二:编码实现》
- 《LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之三:两次优化》
- 《LeetCode46全排列(回溯入门)》
- 《LeetCode952三部曲之一:解题思路和初级解法(137ms,超39%)》
- 《LeetCode952三部曲之二:小幅度优化(137ms -> 122ms,超39% -> 超51%)》
- 《LeetCode952三部曲之三:再次优化(122ms -> 96ms,超51% -> 超91%)》
- 《LeetCode买卖股票之一:基本套路(122)》
- 《LeetCode297:hard级别中最简单的存在,java版,用时击败98%,内存击败百分之九十九》
- 《LeetCode279:完全平方数,动态规划解法超过46%,作弊解法却超过97%》
- 《LeetCode155:最小栈,最简单的中等难度题,时间击败100%,内存也低于官方》
- 《LeetCode98:验证二叉搜索树,居然有这么简单的中等难度,白捡(用时击败100%)》
Linux
- 《Ubuntu16环境安装和使用NFS》
- 《CentOS7安装Nginx1.10.1》
- 《CentOS7安装JDK8》
- 《Ubuntu下安装OpenJDK10》
- 《Ubuntu环境下载OpenJDK11源码》
- 《Ubuntu16安装nodejs10》
- 《Linux服务器端网络抓包和分析实战》
- 《Linux配置SSH免密码登录(非root账号)》
- 《CentOS7安装python3和pip3》
Mac
Windows
golang
- 《Ubuntu16安装Go语言环境》
- 《golang实战之flag包》
- 《用golang官方Docker镜像运行项目》
- 《vim设置go语法高亮》
- 云端golang开发,无需本地配置,能上网就能开发和运行
- Go语言基准测试(benchmark)三部曲之一:基础篇
- Go语言基准测试(benchmark)三部曲之二:内存篇
gRPC特辑
- 《gRPC学习之一:在CentOS7部署和设置GO》
- 《gRPC学习之二:GO的gRPC开发环境准备》
- 《gRPC学习之三:初试GO版gRPC开发》
- 《gRPC学习之四:实战四类服务方法》
- 《gRPC学习之五:gRPC-Gateway实战》
- 《gRPC学习之六:gRPC-Gateway集成swagger》
机器学习
- 《机器学习的开发环境准备》
- 《Docker下,五分钟极速体验机器学习》
- 《来自Java程序员的Python新手入门小结》
- 《NumPy学习笔记》
- 《Ubuntu16安装Nvidia驱动(GTX1060显卡)》
- 《Anaconda3+CUDA10.1+CUDNN7.6+TensorFlow2.6安装(Ubuntu16)》
深度学习
DL4J实战特辑
- 《DL4J实战之一:准备》
- 《DL4J实战之二:鸢尾花分类》
- 《DL4J实战之三:经典卷积实例(LeNet-5)》
- 《DL4J实战之四:经典卷积实例(GPU版本)》
- 《DL4J实战之五:矩阵操作基本功》
- 《DL4J实战之六:图形化展示训练过程》
深度学习工程化
- 《纯净Ubuntu16安装CUDA(9.1)和cuDNN》
- 《三分钟体验:SpringBoot用深度学习模型识别数字》
- 《SpringBoot用深度学习模型识别数字:开发详解》
- 《三分钟极速体验:Java版人脸检测》
- 《Java版人脸检测详解上篇:运行环境的Docker镜像(CentOS+JDK+OpenCV)》
- 《Java版人脸检测详解下篇:编码》
- 《三分钟:极速体验JAVA版目标检测(YOLO4)》
- 《制作JavaCV应用依赖的基础Docker镜像(CentOS7+JDK8+OpenCV4)》
- 《超详细的编码实战,让你的springboot应用识别图片中的行人、汽车、狗子、喵星人(JavaCV+YOLO4)》
多媒体
kurento
- 《Kurento实战之一:KMS部署和体验》
- 《Kurento实战之二:快速部署和体验》
- 《Kurento实战之三:知识点小导游》
- 《Kurento实战之四:应用开发指南》
- 《微信小程序+腾讯云直播的实时音视频实战笔记》
- 《Kurento实战之五:媒体播放》
- 《Kurento实战之六:云端录制》
JavaCV特辑
- 《JavaCV推流实战(MP4文件)》
- 《JavaCV的摄像头实战之一:基础》
- 《JavaCV的摄像头实战之二:本地窗口预览》
- 《JavaCV的摄像头实战之三:保存为mp4文件》
- 《JavaCV的摄像头实战之四:抓图》
- 《JavaCV的摄像头实战之五:推流》
- 《JavaCV的摄像头实战之六:保存为mp4文件(有声音)》
- 《JavaCV的摄像头实战之七:推流(带声音)》
- 《JavaCV的摄像头实战之八:人脸检测》
- 《JavaCV人脸识别三部曲之一:视频中的人脸保存为图片》
- 《JavaCV人脸识别三部曲之二:训练》
- 《JavaCV人脸识别三部曲之三:识别和预览》
- 《JavaCV的摄像头实战之十二:性别检测》
- 《JavaCV的摄像头实战之十三:年龄检测》
- 《最简单的人脸检测(免费调用百度AI开放平台接口)》
- 《JavaCV的摄像头实战之十四:口罩检测》
- 《Java版人脸跟踪三部曲之一:极速体验》
- 《Java版人脸跟踪三部曲之二:开发设计》
- 《Java版人脸跟踪三部曲之三:编码实战》
硬件
树莓派
- 《树莓派3B安装64位操作系统(树莓派无需连接显示器键盘鼠标)》
- 《64位树莓派上安装和配置golang1.9.2》
- 《树莓派3B搭建Flink集群》
- 《树莓派部署Elasticsearch6集群》
- 《树莓派4B安装64位Linux(不用显示器键盘鼠标)》
- 《树莓派4B安装docker-compose(64位Linux)》
群晖
- 《群晖DS218+做maven私服(nexus3)》
- 《群晖DS218+部署mysql》
- 《群晖DS218+部署kafka》
- 《K8S使用群晖DS218+的NFS》
- 《群晖DS218+部署GitLab》