随笔分类 -  Java

摘要:新一代Java程序员必学的Docker容器化技术基础篇如同JDK函数式、链式编程、Lambda表达式、Stream流编程,Docker也是Java技术栈开发人员必不可缺的一门容器化技术,本篇主要从Docker的由来开发,了解原理、常用命令以及容器卷技术,如何一步步写DockerFile,了解Docker网络以及Ngnix、ES集群的容器化部署实战入手。docker可以打包镜像发布实现一键运行,使用docker我们可以像搭积木一样增加一层层镜像实现,docker是内核级别的虚拟化,比虚拟机更少的抽象层,一台物理机上可以运行很多的容器示例,可以把服务器性能压榨到极致。 阅读全文
posted @ 2021-12-14 21:24 itxiaoshen 阅读(1227) 评论(2) 推荐(1)
摘要:Java定时器演进过程和生产级分布式任务调度ElasticJob代码实战本篇从Java定时器的基础理论原理开始首先认识大部分定时任务底层使用的算法如小顶堆和时间轮算法,并逐步从Jdk Timer、Jdk定时任务线程池、Spring Task、Quartz定时任务框架了解这边我们经常使用定时任务解决方案;分布式的系统存在分布式问题,底层基于Quartz的分布式调度ElasticJob正是用来解决分布式系统中常见的任务重复执行、任务负载均衡、统一任务调度、任务故障转移等,也提供了静态和动态创建定时任务代码示例 阅读全文
posted @ 2021-12-13 21:19 itxiaoshen 阅读(800) 评论(2) 推荐(1)
摘要:手写Mybatis和Spring整合简单版示例窥探Spring的强大扩展能力Spring之所以能打败其他所有同类型Java开发框架屹立不倒的重要原因之一就是提供很多扩展点,让其他组件和框架很容易就整合到Spring框架里,所以也就诞生很多基于Spring的二次开发项目,接下来我们一起聊聊Spring提供的扩展点和一个Mybatis和Spring整合工程简易开发示例,充分认识Spring框架另一强大能力-扩展,Jdk动态代理及反射机制,借助FactoryBean特性,FactoryBean可以返回动态代理的对象及类型,通过ImportBeanDefinitionRegistrar通过Import注解将FactoryBean通过BeanDefinition注册到BeanDefinitionRegistry通过后续Bean的生命周期最终放到Spring的容器里。 阅读全文
posted @ 2021-12-12 15:27 itxiaoshen 阅读(368) 评论(0) 推荐(1)
摘要:走进Spring Boot源码学习之路和浅谈入门v2.5.3作为笔者见解,Spring Boot 不算是一个全新的框架,Spring Boot 底层还是大量依赖于Spring Framework,而Spring Framework很早以前版本就已提供基于注解、Java Config而不仅是XML配置编程;Spring Boot采用约定大于配置方式替代xml配置,是Spring Framework一个大升级版本,整合很多自动装配组件,让开发者开箱即用,接下来我们一起来学习下Spring Boot三个重要的特性和大名鼎鼎开箱即用starter开发简易剖析。 阅读全文
posted @ 2021-12-09 19:10 itxiaoshen 阅读(489) 评论(0) 推荐(0)
摘要:Apache RocketMQ分布式消息传递和流数据平台及大厂面试宝典v4.9.2今天我们又来学习一个Apache顶级项目Apache RocketMQ,RocketMQ由国人阿里团队采用Java语言开发和开源的,曾获得2016、2018中国最受欢迎的开源软件奖。RocketMQ凭借其强大的存储能力和强大的消息索引能力,以及各种类型消息和消息的特性脱颖而出。Apache RocketMQ官网地址及其GitHub都提供非常详细中文学习文档如Apache RocketMQ开发者指南等,学习起来可谓是非常之流畅、酸爽、so easy!让我们通过官网和及其GitHub来深入学习这个与时俱进非常优秀互联网主流的消息中间件。阿里早期是基于ActiveMQ 5的分布式消息传递中间件,随着队列和虚拟主题的增加ActiveMQ IO模块达到了瓶颈,当时也研讨过Kafka但当时的Kafka不能满足阿里的要求(特别是在低延迟和高可靠性方面),因此阿里决定自行研发一个消息中间件,从传统的发布/订阅场景到高容量的实时零损失容忍度事务系统,这就是RocketMQ诞生的原因。 阅读全文
posted @ 2021-12-03 23:28 itxiaoshen 阅读(588) 评论(0) 推荐(0)
摘要:Netty高性能网络应用框架对标P7面试题分享v4.1.70.FinalNetty 是目前Java技术栈中最流行的、首选的 NIO 框架,性能和稳定性都有保障,社区比较活跃,基于 Netty 进行二次定制服务开发成本小,提供了简单易用的API从网络处理代码中解耦业务逻辑,且已得到成百上千的商业及商用项目验证,许多框架和开源组件的底层 rpc 都是使用的Netty,如Dubbo、Elasticsearch 、RocketMQ以及大数据Hadoop、Spark等等。Netty由JBOSS提供的一个Java开源框架,现为 Github上的独立项目Netty从许多协议如FTP、SMTP、HTTP和各种基于二进制和文本的协议的实现精心设计从而兼顾实现了易于开发、性能、稳定性和灵活性。分为核心层、传输服务、协议支持。 阅读全文
posted @ 2021-11-28 12:43 itxiaoshen 阅读(509) 评论(0) 推荐(1)
摘要:Apache ZooKeeper原理剖析及分布式理论名企高频面试v3.7.0这样学习ZooKeeper离大厂所需技能要求还远吗,开发者、管理员、维护员等不同角色学习ZooKeeper的关注点不同,本篇则兼顾多方的角度切入并深入理解ZooKeeper,了解其功能、特性、应用场景、集群部署,逐步引出分布式理论核心知识点,最后深入到架构原理,引出分布式一致性协议Paxos算法、Raft协议以及ZooKeeper独创的Zab协议,如何选主如何写数据,可谓覆盖到大厂面试方方面面的考点。Apache ZooKeeper是一种用于构建分布式应用的高性能、高度可靠、开源的分布式协调服务,提供如配置信息维护、命名、分布式同步、组服务等功能,可以实现如分布式共识、组管理、领导选举和到场协议;同时也是Google的Chubby一个Java语言版的开源实现。ZooKeeper翻译为中文则为动物园管理员,而众所周知ZooKeeper是大数据生态下的重要组件,是大数据生态的基石之一,而我们也知道大部分大数据生态下组件是以动物命名并作为其Logo,比如Hive、Hbase、Flink等,所以ZooKeeper命名就更加生动贴切。 阅读全文
posted @ 2021-11-01 23:10 itxiaoshen 阅读(214) 评论(0) 推荐(0)
摘要:从ApacheTomcat架构谈面试到源码编译环境v10.0.12Apache Tomcat软件是Jakarta Servlet、Jakarta Server Pages、Jakarta Expression Language、Jakarta WebSocket、Jakarta annotation和Jakarta Authentication规范的开源实现。简单来说也是一个基于Servlet、JSP规范的轻量级Web应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,也是大部分Java技术栈开发和调试Web程序的首选。Tomcat、Jetty、Undertow这几个都是非常有名实现Servlet规范的应用服务器,Tomcat本身也是业界上非常优秀的中间件,简单可可以将Tomcat看成是一个Http服务器+Servlet容器,Servlet 容器是管理和运行 Servlet 的;相信大家对这只三脚猫Logo都是非常熟悉了,不管是在学校和还是工作都经常使用它 阅读全文
posted @ 2021-10-29 00:23 itxiaoshen 阅读(199) 评论(0) 推荐(1)
摘要:Nginx后端开发人员必学神器-并发编程经典之作剖析和名企热点面试v1.21.3本篇将实战nginx常用功能和高级特性、剖析限流算法,并逐步带入到进阶的OpenResty和引出基于OpenResty(Nginx + Lua模块)编写的高性能款、高可用、易扩展且开源的API Gateway项目的Kong网关,最后给大家来一个并发编程十个小面试题收尾压压惊,相信读完的伙伴和笔者一样可以收获满满。我们通常使用开源的Nginx版本,但基于Nginx开源版本至上还衍生包括商业收费版本的Nginx Plus、淘宝开源的TEngine、OpenResty三大分支,可以说只要有网站或者后台服务的企业就会需要用到Nginx,其使用极为广泛。 阅读全文
posted @ 2021-10-07 14:37 itxiaoshen 阅读(358) 评论(0) 推荐(0)
摘要:并发编程热身十个性能小面试题多进程实现并发编程强调的是稳定性,每个进程有自己独立的地址空间,一个进程挂了不影响其他的进程,但进程间的通信方式实现还是比较麻烦的,比如管道、有名管道、信号量、消息队列、信号、共享内存、套接字等。多线程实现并发编程主要是共享进程的地址空间,一个线程挂了或者写乱数据有可能影响其他线程甚至整个应用程序,也即是常说线程安全问题,多线程交换数据比较方便,线程之间的通信也可以直接通过内存来实现。多线程其实并不是多个线程一起执行,而是因为线程之间切换的速度非常的快,所以我们看起来像不间断的执行。 阅读全文
posted @ 2021-10-05 23:40 itxiaoshen 阅读(126) 评论(0) 推荐(0)
摘要:Elasticsearch互联网主流分布式全文检索框架实战-ElasticStack(上)v7.14.0本篇先了解Elasticsearch底层原理,通过docker方式搭建3台ES集群,安装Head插件和Kibana可视化工具,加入ik分词器支持中文分词,通过实践Elasticsearch基本概念和操作对其有更深的理解,掌握基础运维知识,最后利用spring-boot整合elasticsearch启动器写一个增删改查功能示例。 阅读全文
posted @ 2021-09-04 00:11 itxiaoshen 阅读(483) 评论(0) 推荐(0)
摘要:分布式全局ID生成器原理剖析及非常齐全开源方案应用示例本篇文章着重介绍常用分布式全局ID实现方案及原理和优缺点分析,通过Java代码示例使用开源框架百度Uidgenerator、美团Leaf、滴滴TinyID,这些都是大量用于生产实践,而这些的开源分布式ID生成器设计思路基本都是基于号段模式和雪花算法为基础,根据不同业务场景做选择,稳定且性能有保证,轻松使用解决分布式系统面临的ID问题。 阅读全文
posted @ 2021-08-31 00:06 itxiaoshen 阅读(1144) 评论(0) 推荐(0)
摘要:ElasticJob分布式任务调度应用v2.5.2ElasticJob 是一个面向互联网生态和海量任务的分布式调度解决方案,由 2 个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成。开源的分布式任务或作业调度框架除了我们本篇当当的ElasticJob,还有大众点评开发人员许雪里的XXL-JOB、唯品会Saturn、淘宝的TBSchedule和SchedulerX,此外另外一个在大数据批处理作业调度器Azkaban也非常出名 阅读全文
posted @ 2021-08-27 23:33 itxiaoshen 阅读(502) 评论(0) 推荐(0)
摘要:主流微服务一站式解决方案Spring Cloud Alibaba入门看这篇就足够了-开篇v2.2.1.RELEASE从Spring Cloud Alibaba为核心的微服务架构图分层展开,涵盖接入层、业务中台层、技术中台层、系统监控层完整互联网推荐微服务架构体系,Spring Boot编码示例实战Spring Cloud Alibaba,演示Nacos配置中心和注册中心服务注册和服务发现使用、Spring Cloud Gateway微服务网关实现路由策略并整合Sentinel实现限流,微服务之间基于Open Feign远程调用和整合Dubbo实现高性能RPC远程调用。 阅读全文
posted @ 2021-08-23 00:06 itxiaoshen 阅读(400) 评论(0) 推荐(0)
摘要:优选官网熟悉,其次选择源码网站 比如Spring官网、Redis官网、Spark官网,Docker官网,学习官网是最正规最有效的方式,当然需自己克服对阅读英文文档的恐惧,前期可借助翻译软件辅助完成,且目前越来越多支持中文网站。越来越主流实用的优秀的开源框架或组件项目是国人研发的值得我们骄傲,比如Mybatis-Plus、Dubbo,Nacos、SkyWalking、ShardingSphere等。官网可以先从Getting Started开始体验,从搭建基础环境到第一个demo后有了基本的了解,进而系统学习框架组件,再针对需要应用的技术点重点详细阅读、理解和应用。 阅读全文
posted @ 2021-08-12 23:53 itxiaoshen 阅读(85) 评论(0) 推荐(0)