随笔分类 -  经验分享

摘要:JUC并发编程与高性能内存队列disruptor实战-上JUC包下并发基础编程的代码示例使用,包括锁、异步回调、阻塞队列、并发集合、并发辅助类、CAS等代码示例快速上手Java并发编程,通过代码逐步通往对原理的理解的大路 阅读全文
posted @ 2022-01-16 00:18 itxiaoshen 阅读(250) 评论(0) 推荐(0)
摘要:常用设计模式之白话精简理解及应用-下设计模式为Java后端开发人员成长经历过程必须深入理解的硬技能,本篇以简洁代码示例通俗易懂的方式阐述11个设计模式,持之以恒把一次性把设计模式吃透 阅读全文
posted @ 2022-01-12 23:36 itxiaoshen 阅读(362) 评论(0) 推荐(1)
摘要:常用设计模式之白话精简理解及应用-上设计模式为Java后端开发人员成长经历过程必须深入理解的硬技能,本篇先推荐具备面向对象思想、UML、类图和类的关系为前提学习条件,以先反例后正例剖析七大软件设计原则,最后以通俗易懂的方式先阐述单例和模板方法两个设计模式。 阅读全文
posted @ 2022-01-09 02:23 itxiaoshen 阅读(216) 评论(0) 推荐(0)
摘要:来自MyBatis不一样收获结果的探索之旅-v3.5.9来自灵魂拷问你对MyBatis了解多少?Java技术栈程序员对MyBatis运用了如指掌,但本篇我们围绕带着开篇三个问题从源码的角度去探索不一样MyBatis的收获之旅,相信在读完本篇后对MyBatis源码将不再陌生;并给在企业数据库应用开发为提升效率推荐基于Spring Boot的MyBatis-Plus实战示例,最后抛砖引玉出MyBatis-Plus苞米豆生态圈MybatisX插件和企业级应用Mybatis-Mate 阅读全文
posted @ 2022-01-05 23:53 itxiaoshen 阅读(649) 评论(0) 推荐(2)
摘要:小试国产开源HTAP分布式NewSQL数据库TiDB-v5.3.0云原生时代又一代表作TiDB,具备HTAP也即是同时支持OLTP和OLAP,Pulsar设计相似采用存储与计算分离架构,本篇从TiDB与传统数据库的比较开始,了解应用场景和特性,进而进行部署和基础操作实践,了解整体架构、从存储、计算、调度了解TiDB的设计。 阅读全文
posted @ 2021-12-30 09:17 itxiaoshen 阅读(1324) 评论(0) 推荐(0)
摘要:分布式NoSQL数据库MongoDB初体验-v5.0.5本篇了解MongoDB和传统关系数据库和Elasticsearch,从而更深印象理解MongoDB的使用场景,也通过docker-compose编排技术完成MongoDB分片集群的部署,进一步学习容器化技术,通过Spring Boot整合MongoDB熟悉数据文档操作概念,最后通过分片设置案例了解MongoDB最为代表性的可扩展性。 阅读全文
posted @ 2021-12-24 19:58 itxiaoshen 阅读(717) 评论(0) 推荐(2)
摘要:解决Tomcat10.0.12源码编译问题进而剖析其优秀分层设计架构Tomcat作为Java技术栈最为熟悉、经典、最有代表性的Web容器,为了深入学习Tomcat优秀设计思想,先从Tomcat10.0.12源码编译开始,记录编译问题并解决,再手写一个简单Java Servlet内嵌Tomcat示例,从Tomcat配置文件窥探其底层设计如连接器、四大容器组件、管道等,非常清楚知道Tomcat全局实现功能,如果要手写一个简易Tomcat从Netty监听网络端口开始,待续。 阅读全文
posted @ 2021-12-20 22:31 itxiaoshen 阅读(906) 评论(0) 推荐(0)
摘要:记录一次成功CICD完整亲身实践从此踏进入Devops大门当前Devops思想相当火热已经逐步渗透到企业实际运用当中,通过本篇完整学习你一定可以将CICD直接运用到学习或实际工作当中让周围同事、朋友对你另眼相看,构建一个基于容器化的CICD从Git提交源码后自动触发构建、打包、测试、部署到单个应用服务器Docker宿主机容器中运行,核心组件jenkins版本为2.306,容器化环境也可换为K8S或docker swarm 阅读全文
posted @ 2021-12-18 09:51 itxiaoshen 阅读(1914) 评论(0) 推荐(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)
摘要:云原生时代之Kubernetes容器编排初步探索及部署、使用实战-v1.22Kubernetes发展历史从公有云Iaas、Paas、Saas的云计算时代开始诞生,与Docker Swarm容器化集群和Apache Mesos分布式资源管理框架竞争并最终成为容器化编排主流引领者。本篇搭建实战K8s集群,初步了解k8s及简单命令,k8s进阶内容configmap、secrets、有状态应用、高可用k8s集群、helm以及基于微服务集群容器编排部署实战等后续再学习。Kubernetes是一个go语言开发(docker也是go语言开发,可见go语言的厉害和趋势,其兼具Python等动态语言的开发速度和 C/C++等编译型语言的性能与安全性,部署简单、并发性好、语言设计良好、执行性能高,后续我们专题学习)用于跨多个主机管理容器化应用程序的开放源代码系统。它为应用程序的部署、维护和扩展提供了基本机制。 阅读全文
posted @ 2021-12-10 18:55 itxiaoshen 阅读(591) 评论(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)
摘要:从Redis分布式缓存实战入手到底层原理分析、面面俱到覆盖大厂面试考点Redis作为目前最主流缓存数据库毫无疑问独霸一方,使其作为大厂Java后台开发面试的必考点之一,本篇将剖析Redis为什么性能高和快的原因,Redis也是分布式锁的实现方案之一,此外还涉及到缓存预热、缓存穿透、缓存雪崩、缓存击穿、缓存更新、缓存降级等介绍。Redis常见使用场景:计数器、分布式ID生成器、海量数据统计bitmap、会话缓存、分布式阻塞队列、分布式锁、热点数据、社交需求好友推荐、延迟队列(sortset)等。Redis提供丰富的数据结构,如字符串、哈希、列表、集合、带范围查询、位图、超对数、地理空间索引和流的排序集。Redis具有内置的复制、Lua脚本、LRU驱逐、事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster的自动分区提供高可用性。 阅读全文
posted @ 2021-12-08 19:57 itxiaoshen 阅读(765) 评论(0) 推荐(0)
摘要:浅谈MySQL数据库面试必要掌握知识点将原理与实际操作经验相结合,本章不讲sql用法,主要针对的是开发人员需掌握的一些MySQL面试的知识点,涉及索引、事务、优化等方面,以及大厂SQL使用规约 阅读全文
posted @ 2021-12-07 21:07 itxiaoshen 阅读(845) 评论(0) 推荐(2)
摘要:企业数据治理落地和同行面试基础企业数据治理现状普遍存在缺乏统一的数据视图、安全的数据环境、数据价值管理体系,同时也容易形成数据孤岛,出现数据质量低下常见现象;数据治理不是一蹴而就的而是一项繁杂、长期需要工匠精神和锲而不舍的工作,没有一针顶破天的诀窍,也没有立竿见影的途径。只有将数据治理变成一种常态化机制,形成一种习惯、一种文化、持之以恒、不忘初心、不懈努力,才能达到预期目标。 阅读全文
posted @ 2021-11-14 14:08 itxiaoshen 阅读(963) 评论(0) 推荐(0)
摘要: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)
摘要:MySQL数据库之大厂面试必备技能v8.0.27MySQL发展至今仍然是世界上最流行的关系型数据库管理系统,使用C和C++语言编写,并且为很多种编程语言提供API.能够处理千万级别的数据,市场占有量还是老大哥地位。MySQL创立于1996年,最初是由瑞典 MySQL AB公司开发所有,在2008年被Sun公司收购,而Sun公司又在2009年被Oracle公司收购,目前MySQL属于Oracle旗下的产品。MySQL官网提供了多种版本,我们来了解一些,但我们常用的还是社区版本。 阅读全文
posted @ 2021-10-26 00:01 itxiaoshen 阅读(348) 评论(0) 推荐(0)
摘要:数据安全技术落地经验浅谈和分类分级实施数字化经济下企业做数据化转型进行数据开发利用往往是先将原来分散各部门各业务系统的数据(业务数据如互联网用户数据、企业内部数据如人力资源系统、研发生产数据如核心技术或专利等)集中到大数据仓库中,这个集中化数仓安全重要性就非常凸显了,原来如果某个部门业务系统数据发生篡改、破坏、泄露、非法获取、非法利用的安全事件影响的只是局部而现在则是整个企业数据资产层面,可见数据安全已经明确上升到国家安全、整个企业、组织或机构安全的最高层级。随着即将到来个人信息保护法2021年11月1日开始正式执行,至此中国已集齐了《网络安全法》、《数据安全法》、《个人信息保护法》三大安全法律顶层设计并进入全方位实施阶段,三大法律并不是各自独立而是相互结合、相辅相成的,共同构成了中国数据安全的法律保障体系,成为推动我国数字经济持续健康发展的坚实“防火墙”,这也标志着数据安全法制时代正式来临;因此在数字化经济发展时代的企业、组织或机构需要改变传统的“重生产,轻安全”的思维模式,特别是经常踩着数据应用红灯线运营的企业就更加要注意了。 阅读全文
posted @ 2021-10-24 14:12 itxiaoshen 阅读(882) 评论(0) 推荐(0)
摘要:并发编程热身十个性能小面试题多进程实现并发编程强调的是稳定性,每个进程有自己独立的地址空间,一个进程挂了不影响其他的进程,但进程间的通信方式实现还是比较麻烦的,比如管道、有名管道、信号量、消息队列、信号、共享内存、套接字等。多线程实现并发编程主要是共享进程的地址空间,一个线程挂了或者写乱数据有可能影响其他线程甚至整个应用程序,也即是常说线程安全问题,多线程交换数据比较方便,线程之间的通信也可以直接通过内存来实现。多线程其实并不是多个线程一起执行,而是因为线程之间切换的速度非常的快,所以我们看起来像不间断的执行。 阅读全文
posted @ 2021-10-05 23:40 itxiaoshen 阅读(126) 评论(0) 推荐(0)