摘要:         Tomcat作为Java技术栈最为熟悉、经典、最有代表性的Web容器,为了深入学习Tomcat优秀设计思想,先从Tomcat10.0.12源码编译开始,记录编译问题并解决,再手写一个简单Java Servlet内嵌Tomcat示例,从Tomcat配置文件窥探其底层设计如连接器、四大容器组件、管道等,非常清楚知道Tomcat全局实现功能,如果要手写一个简易Tomcat从Netty监听网络端口开始,待续。    阅读全文
Tomcat作为Java技术栈最为熟悉、经典、最有代表性的Web容器,为了深入学习Tomcat优秀设计思想,先从Tomcat10.0.12源码编译开始,记录编译问题并解决,再手写一个简单Java Servlet内嵌Tomcat示例,从Tomcat配置文件窥探其底层设计如连接器、四大容器组件、管道等,非常清楚知道Tomcat全局实现功能,如果要手写一个简易Tomcat从Netty监听网络端口开始,待续。    阅读全文
 Tomcat作为Java技术栈最为熟悉、经典、最有代表性的Web容器,为了深入学习Tomcat优秀设计思想,先从Tomcat10.0.12源码编译开始,记录编译问题并解决,再手写一个简单Java Servlet内嵌Tomcat示例,从Tomcat配置文件窥探其底层设计如连接器、四大容器组件、管道等,非常清楚知道Tomcat全局实现功能,如果要手写一个简易Tomcat从Netty监听网络端口开始,待续。    阅读全文
Tomcat作为Java技术栈最为熟悉、经典、最有代表性的Web容器,为了深入学习Tomcat优秀设计思想,先从Tomcat10.0.12源码编译开始,记录编译问题并解决,再手写一个简单Java Servlet内嵌Tomcat示例,从Tomcat配置文件窥探其底层设计如连接器、四大容器组件、管道等,非常清楚知道Tomcat全局实现功能,如果要手写一个简易Tomcat从Netty监听网络端口开始,待续。    阅读全文
posted @ 2021-12-20 22:31
itxiaoshen
阅读(892)
评论(0)
推荐(0)
        
 
                    
                
 云原生时代作为程序猿心怀好奇学习了Kubernetes从此对其不再陌生,本篇以kubeadm方式快速部署3台服务器v1.22.1版本的K8S集群,从部署规划到部署步骤一步步详细记录和说明,遇到问题逐个解决,并练习K8S常用的命令,通过Nginx部署及其快速扩缩容、基于yaml文件部署、容器DNS功能,而关于K8Sconfigmap、secrets、有状态应用、高可用k8s集群、helm以及基于微服务集群容器编排部署后续补充
云原生时代作为程序猿心怀好奇学习了Kubernetes从此对其不再陌生,本篇以kubeadm方式快速部署3台服务器v1.22.1版本的K8S集群,从部署规划到部署步骤一步步详细记录和说明,遇到问题逐个解决,并练习K8S常用的命令,通过Nginx部署及其快速扩缩容、基于yaml文件部署、容器DNS功能,而关于K8Sconfigmap、secrets、有状态应用、高可用k8s集群、helm以及基于微服务集群容器编排部署后续补充     当前Devops思想相当火热已经逐步渗透到企业实际运用当中,通过本篇完整学习你一定可以将CICD直接运用到学习或实际工作当中让周围同事、朋友对你另眼相看,构建一个基于容器化的CICD从Git提交源码后自动触发构建、打包、测试、部署到单个应用服务器Docker宿主机容器中运行,核心组件jenkins版本为2.306,容器化环境也可换为K8S或docker swarm
当前Devops思想相当火热已经逐步渗透到企业实际运用当中,通过本篇完整学习你一定可以将CICD直接运用到学习或实际工作当中让周围同事、朋友对你另眼相看,构建一个基于容器化的CICD从Git提交源码后自动触发构建、打包、测试、部署到单个应用服务器Docker宿主机容器中运行,核心组件jenkins版本为2.306,容器化环境也可换为K8S或docker swarm     如同JDK函数式、链式编程、Lambda表达式、Stream流编程,Docker也是Java技术栈开发人员必不可缺的一门容器化技术,本篇主要从Docker的由来开发,了解原理、常用命令以及容器卷技术,如何一步步写DockerFile,了解Docker网络以及Ngnix、ES集群的容器化部署实战入手。docker可以打包镜像发布实现一键运行,使用docker我们可以像搭积木一样增加一层层镜像实现,docker是内核级别的虚拟化,比虚拟机更少的抽象层,一台物理机上可以运行很多的容器示例,可以把服务器性能压榨到极致。
如同JDK函数式、链式编程、Lambda表达式、Stream流编程,Docker也是Java技术栈开发人员必不可缺的一门容器化技术,本篇主要从Docker的由来开发,了解原理、常用命令以及容器卷技术,如何一步步写DockerFile,了解Docker网络以及Ngnix、ES集群的容器化部署实战入手。docker可以打包镜像发布实现一键运行,使用docker我们可以像搭积木一样增加一层层镜像实现,docker是内核级别的虚拟化,比虚拟机更少的抽象层,一台物理机上可以运行很多的容器示例,可以把服务器性能压榨到极致。     本篇从Java定时器的基础理论原理开始首先认识大部分定时任务底层使用的算法如小顶堆和时间轮算法,并逐步从Jdk Timer、Jdk定时任务线程池、Spring Task、Quartz定时任务框架了解这边我们经常使用定时任务解决方案;分布式的系统存在分布式问题,底层基于Quartz的分布式调度ElasticJob正是用来解决分布式系统中常见的任务重复执行、任务负载均衡、统一任务调度、任务故障转移等,也提供了静态和动态创建定时任务代码示例
本篇从Java定时器的基础理论原理开始首先认识大部分定时任务底层使用的算法如小顶堆和时间轮算法,并逐步从Jdk Timer、Jdk定时任务线程池、Spring Task、Quartz定时任务框架了解这边我们经常使用定时任务解决方案;分布式的系统存在分布式问题,底层基于Quartz的分布式调度ElasticJob正是用来解决分布式系统中常见的任务重复执行、任务负载均衡、统一任务调度、任务故障转移等,也提供了静态和动态创建定时任务代码示例     Spring之所以能打败其他所有同类型Java开发框架屹立不倒的重要原因之一就是提供很多扩展点,让其他组件和框架很容易就整合到Spring框架里,所以也就诞生很多基于Spring的二次开发项目,接下来我们一起聊聊Spring提供的扩展点和一个Mybatis和Spring整合工程简易开发示例,充分认识Spring框架另一强大能力-扩展,Jdk动态代理及反射机制,借助FactoryBean特性,FactoryBean可以返回动态代理的对象及类型,通过ImportBeanDefinitionRegistrar通过Import注解将FactoryBean通过BeanDefinition注册到BeanDefinitionRegistry通过后续Bean的生命周期最终放到Spring的容器里。
Spring之所以能打败其他所有同类型Java开发框架屹立不倒的重要原因之一就是提供很多扩展点,让其他组件和框架很容易就整合到Spring框架里,所以也就诞生很多基于Spring的二次开发项目,接下来我们一起聊聊Spring提供的扩展点和一个Mybatis和Spring整合工程简易开发示例,充分认识Spring框架另一强大能力-扩展,Jdk动态代理及反射机制,借助FactoryBean特性,FactoryBean可以返回动态代理的对象及类型,通过ImportBeanDefinitionRegistrar通过Import注解将FactoryBean通过BeanDefinition注册到BeanDefinitionRegistry通过后续Bean的生命周期最终放到Spring的容器里。     Kubernetes发展历史从公有云Iaas、Paas、Saas的云计算时代开始诞生,与Docker Swarm容器化集群和Apache Mesos分布式资源管理框架竞争并最终成为容器化编排主流引领者。本篇搭建实战K8s集群,初步了解k8s及简单命令,k8s进阶内容configmap、secrets、有状态应用、高可用k8s集群、helm以及基于微服务集群容器编排部署实战等后续再学习。Kubernetes是一个go语言开发(docker也是go语言开发,可见go语言的厉害和趋势,其兼具Python等动态语言的开发速度和 C/C++等编译型语言的性能与安全性,部署简单、并发性好、语言设计良好、执行性能高,后续我们专题学习)用于跨多个主机管理容器化应用程序的开放源代码系统。它为应用程序的部署、维护和扩展提供了基本机制。
Kubernetes发展历史从公有云Iaas、Paas、Saas的云计算时代开始诞生,与Docker Swarm容器化集群和Apache Mesos分布式资源管理框架竞争并最终成为容器化编排主流引领者。本篇搭建实战K8s集群,初步了解k8s及简单命令,k8s进阶内容configmap、secrets、有状态应用、高可用k8s集群、helm以及基于微服务集群容器编排部署实战等后续再学习。Kubernetes是一个go语言开发(docker也是go语言开发,可见go语言的厉害和趋势,其兼具Python等动态语言的开发速度和 C/C++等编译型语言的性能与安全性,部署简单、并发性好、语言设计良好、执行性能高,后续我们专题学习)用于跨多个主机管理容器化应用程序的开放源代码系统。它为应用程序的部署、维护和扩展提供了基本机制。     作为笔者见解,Spring Boot 不算是一个全新的框架,Spring Boot 底层还是大量依赖于Spring Framework,而Spring Framework很早以前版本就已提供基于注解、Java Config而不仅是XML配置编程;Spring Boot采用约定大于配置方式替代xml配置,是Spring Framework一个大升级版本,整合很多自动装配组件,让开发者开箱即用,接下来我们一起来学习下Spring Boot三个重要的特性和大名鼎鼎开箱即用starter开发简易剖析。
作为笔者见解,Spring Boot 不算是一个全新的框架,Spring Boot 底层还是大量依赖于Spring Framework,而Spring Framework很早以前版本就已提供基于注解、Java Config而不仅是XML配置编程;Spring Boot采用约定大于配置方式替代xml配置,是Spring Framework一个大升级版本,整合很多自动装配组件,让开发者开箱即用,接下来我们一起来学习下Spring Boot三个重要的特性和大名鼎鼎开箱即用starter开发简易剖析。     Redis作为目前最主流缓存数据库毫无疑问独霸一方,使其作为大厂Java后台开发面试的必考点之一,本篇将剖析Redis为什么性能高和快的原因,Redis也是分布式锁的实现方案之一,此外还涉及到缓存预热、缓存穿透、缓存雪崩、缓存击穿、缓存更新、缓存降级等介绍。Redis常见使用场景:计数器、分布式ID生成器、海量数据统计bitmap、会话缓存、分布式阻塞队列、分布式锁、热点数据、社交需求好友推荐、延迟队列(sortset)等。Redis提供丰富的数据结构,如字符串、哈希、列表、集合、带范围查询、位图、超对数、地理空间索引和流的排序集。Redis具有内置的复制、Lua脚本、LRU驱逐、事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster的自动分区提供高可用性。
Redis作为目前最主流缓存数据库毫无疑问独霸一方,使其作为大厂Java后台开发面试的必考点之一,本篇将剖析Redis为什么性能高和快的原因,Redis也是分布式锁的实现方案之一,此外还涉及到缓存预热、缓存穿透、缓存雪崩、缓存击穿、缓存更新、缓存降级等介绍。Redis常见使用场景:计数器、分布式ID生成器、海量数据统计bitmap、会话缓存、分布式阻塞队列、分布式锁、热点数据、社交需求好友推荐、延迟队列(sortset)等。Redis提供丰富的数据结构,如字符串、哈希、列表、集合、带范围查询、位图、超对数、地理空间索引和流的排序集。Redis具有内置的复制、Lua脚本、LRU驱逐、事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster的自动分区提供高可用性。     将原理与实际操作经验相结合,本章不讲sql用法,主要针对的是开发人员需掌握的一些MySQL面试的知识点,涉及索引、事务、优化等方面,以及大厂SQL使用规约
将原理与实际操作经验相结合,本章不讲sql用法,主要针对的是开发人员需掌握的一些MySQL面试的知识点,涉及索引、事务、优化等方面,以及大厂SQL使用规约     浙公网安备 33010602011771号
浙公网安备 33010602011771号