研读
文章平均质量分 85
阿啄debugIT
0、精通java,及常用设计模式,熟练编写shell脚本,掌握python、scala、golang的编写;
1、精通Spring Cloud等微服务架构,掌握SpringBoot、batis等后端技术,kafka、redis、es等中间件的整合开发;
2、熟悉掌握mysql、pg等关系数据的原理及调优,及NoSQL数据的存储和查询;
3、熟悉CDH各个组件,及精通离线、实时等计算技术;
4、掌握java多线程高并发编程,及整合shiro、redis、fastdfs、MQ、netty等开发;
5、熟悉K8S集群管理Docker容器,及理解掌握openstack原理和操作。
展开
-
理解springboot那些约定俗成的框架类名、全局context等命名规范,就可以读懂一半springboot的源代码
理解了springboot那些约定俗成的Java类命名规范,就很容易读懂springboot的源代码,熟悉了大致的spring框架类命名,及spring全局上下文的命名规律和含义,那我们再次去看spring源码,不就游刃有余……可能,还需要掌握spring注册与回调,spring监控与统计,spring解析与处理,spring工具或异步……才能出神入化,下偏见!原创 2023-10-24 02:07:33 · 433 阅读 · 0 评论 -
工作中,汇集的常用实用的liunx命令,如:linux中查找包含关键字的所有文件,倒引号妙用,进程ps,日志清理,内存管理,netstat显示协议统计信息,redis和mysql操作
有没有发觉,有些linux命令,常见又常用,能理解,但是到了用的时候,又一通百度,找不到心仪的命令,故经过半年的收集,汇集下面的一些常用,实用的liunx命令,以备不时之需!原创 2022-11-24 23:47:17 · 178 阅读 · 0 评论 -
cmd调取windows组件的dos命令大全和常用网络工具,及Linux系统下命令大全
net use \\ip\ipc$ " " /user:" " 建立IPC空链接net use \\ip\ipc$ "密码" /user:"用户名" 建立IPC非空链接net use h: \\ip\c$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H:net use h: \\ip\c$ 登陆后映射对方C:到本地为H:net use \\ip\ipc$ /de...原创 2014-05-18 11:42:33 · 1095 阅读 · 1 评论 -
Java泛型、元组、类型参数推断、擦除、擦除的补偿、通配符等的学习及运行
简单泛型(基本都是介绍设计代码的用法)public class Holder3<T> { private T a; public Holder3(T a) { this.a = a; } public void set(T a) { this.a = a; } public T get() { return a; } public static void main...原创 2022-10-24 23:58:56 · 211 阅读 · 0 评论 -
精讲高并发异步解耦利器RocketMQ技术架构,及运行原理,及分析RocketMQ究竟强在哪里?RocketMQ集群是如何做数据分区的?如何做数据分区的?
前言RabbitMQ,其功能也是挺强大的,那么,为啥又要搞一个RocketMQ出来呢?是重复造轮子吗?本文我们就带大家来详细探讨RocketMQ究竟好在哪里。高并发异步解耦利器:RocketMQ究竟强在哪里? | IT宅-arthinking's blogRocketMQ是一个分布式消息中间件,具有低延迟、高性能和可靠性、万亿级别的容量和灵活的可扩展性。它是阿里巴巴于2012年开源的第三代分布式消息中间件。随着阿里巴巴的电商业务不断发展,需要一款更高性能的消息中间件,Rocket.原创 2021-12-15 00:01:38 · 2390 阅读 · 0 评论 -
详解redission分布式锁配置及使用,防止java服务重复提交和修改动作等问题
说道Redis分布式锁大部分人都会想到:setnx+lua,或者知道set key value px milliseconds nx。后一种方式的核心实现命令如下:- 获取锁(unique_value可以是UUID等)SET resource_name unique_value NX PX 30000- 释放锁(lua脚本中,一定要比较value,防止误解锁)if redis.call("get",KEYS[1]) == ARGV[1] then return redis.call("d..原创 2021-12-11 02:08:08 · 4688 阅读 · 0 评论 -
各种消息队列如何选择?为何选择rocketmq来保证消息不丢失,及应该采用rocketmq哪种通信模式?
笔记,过后会视频讲解前言Rocketmq介绍rocketmq是阿里巴巴团队使用java语言开发的一款分布式消息中间件,是一款低延迟,高可用,拥有海量消息堆积能力和灵活拓展性的消息队列。1.1 rocketmq组成部分rocketmq由四大核心模块组成:producer、consumer、brokerServer、nameServer。其中brokerServer和nameServer是rocketmq的服务端,两者一起独立的对外提供服务;而producer和consumer可看做原创 2021-11-10 00:05:10 · 442 阅读 · 0 评论 -
原型模式的结构与多种实现,包括实现Cloneable接口,并重写clone方法,和复制构造器实现深拷贝,浅拷贝,及使用Serializable实现深拷贝
不要问我,深拷贝与浅拷贝有什么区别?直接代码gif对比展示原创 2021-10-24 23:43:44 · 456 阅读 · 1 评论 -
Spring Boot 自动装配定义与自定义starter原理,及如何实现自定义装配
Spring Boot 自动装配定义原创 2021-09-02 16:17:27 · 494 阅读 · 0 评论 -
大厂通用的PostgreSQL 数据库开发规范,包括”命名规范“、”设计规范“ 、”建表规范“、”QUERY 规范“、”管理规范“、”稳定性与性能规范“
PostgreSQL的特性对GIS强大的支持,支持这种array,点,三维等几何类型,并支持这种gis类型的索引; 支持json,xml等数据类型和相关索引; 强大的Over子句,灵活的窗口函数与分析函数; 表的继承的概念(分区表就是依赖于此实现的),支持多继承; 强大的存储过程和trigger支持,极大的方便oracle到pgsql的移植,支持sequence; 完善的事务支持,支持多事务指定局部事务回滚。PostgreSQL 使用规范命名规范【强制】库名、表名限制命.原创 2021-08-22 19:44:48 · 1252 阅读 · 0 评论 -
大厂通用的MySQL开发规范设计,包括“存储引擎、字符集、 命名规则等公共约定”,“表设计约定”,“字段设计约定”,“索引设计约定”,“SQL约定”,“开发人员行为约定”
前言在开发人员进行项目或者产品开发之前,总是有千百万个不确定,不确定“存储引擎“的该使用哪个?该用那个”字符集“?该遵循那种”命名规则“?“表设计约定”有哪些?“字段设计约定”怎样才更优秀?“索引设计约定”该如何设计?有没有规范的“SQL约定”?对于开发人员,有哪些“开发人员行为约定”,需要遵守?下文,既是综合BAT大厂的MySQL开发规范设计,包括“存储引擎、字符集、 命名规则等公共约定”,“表设计约定”,“字段设计约定”,“索引设计约定”,“SQL约定”,“开发人员行为约定”,建议收..原创 2021-08-22 18:29:34 · 122 阅读 · 0 评论 -
java后台开发必备的9大类基础工具,你集齐了?
前言对于java后台开发人员,内功深厚关键是看对关系型数据库,领域驱动设计(Domain-Driven Design),设计模式Design Pattern,算法Algorithm,面向对象编程OOP(SOLID)线程安全,事件驱动,测试驱动开发依赖注入框架等掌握的深浅,同时不要忘记自己是一个coder,怎样才能写出高质量的代码?站在巨人的肩膀上,持续改进优化,持续debug!通用工具类MD5UtilRSAUtilDateUtilStringUtilNumberUtil集合工具类原创 2021-08-21 20:33:02 · 4463 阅读 · 2 评论 -
采用递归与迭代法思想,分别用java编程去实现欧几里德,斐波那契,牛顿迭代法
前言数学中的欧几里德算法,斐波那契数列和牛顿迭代法求非线性方程的近视解,同时用递归与迭代法分别去实现!递归法递归,就是在运行的过程中调用自己。构成递归需具备的条件:1. 子问题须与原始问题为同样的事,且更为简单;2. 不能无限制地调用本身,须有个出口,化简为非递归状况处理。迭代法迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程。1.欧几里德算法,典型的迭代法最经典的迭代算法,用于计算两个整数a,b的最大公约数。假如需要求 1997 和 615 两个正整数的最原创 2021-08-08 09:30:21 · 424 阅读 · 0 评论 -
Spring @Enable模块装配的注解及编程实现方式,及包括“注解方式”,“编程方式”的自定义模块装配方式
Spring @Enable模块装配原创 2021-07-28 21:09:14 · 507 阅读 · 0 评论 -
Spring框架开发底层的@Component 通用组件模式、@Service 服务模式、@Configuration 配置模式等注解装配技术详解
Spring模式注解装配(Stereotype Annotations)模式注解定义一种用于声明在应用中扮演“组件”角色的注解。常用模式注解整理如 Spring 中的 @Repository 是用于扮演仓储角色的模式注解,用来管理和存储某种领域对象。还有如@Component 是通用组件模式、@Service 是服务模式、@Configuration 是配置模式等。Spring注解 场景说明 起始版本 @Componnt 通用组件模式注解 2.5原创 2021-07-24 22:22:26 · 1698 阅读 · 7 评论 -
redis的string字符串是动态字符串,是可以修改的字符串,内部结构的实现类似于java的ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配
前言字符串string是Redis最简单的数据结构,它的内部表示就是一个字符数组。Redis的字符串是动态字符串,是可以修改的字符串,内部结构的实现类似于java的ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配。...原创 2021-06-08 16:48:53 · 638 阅读 · 0 评论 -
想鲤鱼跳龙门?想跳跃到高级开发工程师?那就必须要经常思考一下问题,以下答案,如有错误,欢迎指正(持续更新)
前言想鲤鱼跳龙门?想跳跃到高级开发工程师?那就必须要经常思考一下问题。1、数据pull模式,多久调用一次,这个时间是通过什么因素来抉择出来的,调用失败了如何补偿,补偿的机制是什么?2、集群部署策略是什么,集群运行状态如何监控,数据怎么采集的,采集后的存储和分析策略是什么?3、Nacos用来做注册中心的话,它是怎么贴合CAP理论的 C/A切换是怎么做的,配置属性是如何实现动态刷新的?4、你们项目的质量因素有哪些,模块之间划分的依据是什么,C&C是怎么设计的?5、项目峰值几万人:QPS和原创 2021-04-15 02:02:41 · 192 阅读 · 0 评论 -
通过对比ReentrantLock与synchronized不同,研读Reentrantlock的CAS的开销、AQS队列、CLH队列,及实际工作中的运用
前言网上大多对Reentrantlock进行拆分研读,但是具体到实际工作中的运用却很少,同时工作中平时不用,一用都是涉及重要的代码编写,所以有必要清楚来和Reentrantlock做个朋友,混熟关系。Reentrantlock的研读ReentrantLock是基于AQS实现的,AQS很好的封装了同步队列的管理,线程的阻塞与唤醒等基础操作。默认情况下,ReentrantLock使用的是非公平模式获取锁,而不是公平模式。不过我们也可通过ReentrantLock构造方法ReentrantLock(原创 2021-04-11 03:17:03 · 343 阅读 · 1 评论 -
通过ThreadPoolExecutor与ForkJoinPool比较,分别对比其execute ,submit 等方法提交线程池任务的区别,来深入理解线程池及并发编程
并发编程 —— 深入理解线程池https://www.cnblogs.com/chiangchou/p/thread-pool.htmlhttps://tech.meituan.com/2020/04/02/java-pooling-pratice-in-meituan.html原创 2021-03-16 18:26:06 · 2801 阅读 · 2 评论 -
面试官问:您熟悉redis?搭建过redis集群?rediscluster底层的主从复制rdb如何工作的?及Redis与其他key-value存储NOSQL数据库有什么不同?
前言:面试官问:您熟悉redis?搭建过redis集群?rediscluster底层的主从复制rdb如何工作的?……接下来,就是一轮迫击炮,犹如把面试者按在砧板上,轮番炮击……快速搭建高可用Redis Cluster主从模式集群的填坑之路Redis集群安装,及遇到缺少tcl 8.5依赖和集群启动失败等解决方案使用脚本,快速安装Redis集群,及爬坑记录您目前用redis那种集群模式?采用Redis Cluster无中心结构集群模式拓展master-slave模式模式存在的原创 2021-03-11 19:15:19 · 557 阅读 · 0 评论 -
Java HashMap双花括号初始化数据的代码解析,及带来的问题分析
引言package com.azdebugit.test.collection;import java.util.HashMap;import java.util.Map;import java.util.Set;public class TestHashMap { public static void main(String[] args) { Map Man = new HashMap<Integer, Integer>(){原创 2021-02-21 18:40:58 · 2200 阅读 · 0 评论 -
用gif动画展示数据库设计三大范式及反范式的记忆技巧,及java后台代码的curd的正确操作姿势,及抽取重构代码技巧
用gif动画展示数据库设计三大范式及反范式的记忆技巧,及java后台代码的curd的正确操作姿势,及抽取重构代码技巧...原创 2021-02-15 00:34:43 · 587 阅读 · 3 评论 -
gif动图演示SaaS系统用户权限在传统的基于“用户—角色—权限多对多的关系”rbac基础上,改造成基于“用户-角色-权限-资源关系”的rbac权限管理模型
RBAC权限模型定义RBAC(Role-Based Access Control)权限模型的概念,即:基于角色的权限控制。通过角色关联用户,角色关联权限的方式间接赋予用户权限。传统的RBAC权限模型用户—角色—权限多对多的关系。权限修改只需对角色的关联权限进行修改。 若多身份,只需多用户进行多角色赋予即可。 权限通过角色来赋予至用户,使得用户即使发生变更、离职也不会影响权限本身的稳定性。经典的W型RBAC权限模型基于RBAC权限模型的SaaS系统用户权限:SaaS系原创 2021-02-14 21:25:44 · 2055 阅读 · 6 评论 -
您用c语言程序画过画?用c语言程序画个爱“心”,祝大家春节愉快,身体健康,平安吉祥,牛气冲天!顺便温习一下c语言编写,及运行正确姿势
前言在这辞旧迎新的时刻,az_debugIT提前给您拜年啦️,您及全家春节愉快,身体健康,平安吉祥!牛气冲天!Today is the Eve of lunar year of 2020. Everyone may either got so much or remain regreted about something in 2020. Anyway it is the past year,a frufilful year for everyone. We will have bravery .原创 2021-02-11 18:20:50 · 2642 阅读 · 4 评论 -
常见git问题的解决方案汇总,包括git更换新的远程地址,管理本地及远程分支,git的tag管理
Git删除旧的远程地址添加新的远程地址1. 首先在需要查看的项目中右键选择 “Git Bash Here”,弹出命令框。2. 输入“git remote -v”查看项目远程地址。git remote -v3. 通过命令先删除再添加远程仓库git remote rm origin // 删除旧的远程地址git remote add origin ****** // 添加新的远程地址git branch 命令查看分支、删除远程分支、本地分支1、查看本地分支 :.原创 2021-02-05 18:31:12 · 485 阅读 · 0 评论 -
yum安装部署ansible,和深入学习ansible的各个模块及组件及实际生产中使用案例详解
认识ansible其中经典应用,请详见,采用KubeSphere的kk,部署安装多节点服务的kubernetes-v1.18.6和kubesphere-v3.0.0的踩坑过程记录,及反思;ansible安装部署CDH集群,与手动安装部署CDH集群,及CM配置和用户权限配置……ansible简介官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具。Ansible跟其他IT自动化技术的区别在于其关注点并非配置管理、应用部署或IT流程...原创 2021-01-07 13:34:01 · 1818 阅读 · 1 评论 -
用gif图展示UML中箭头和线条的含义,及搞懂UML类图、时序图和用例图
前言新进入一家公司,应对 日常的软件开发工作和交流,要能看懂别人写的代码各个类之间的关系,那就需要您能看懂类图uml中各个类之间的线条、箭头代表什么意思?UML的类图中,一共有以下六大关系:泛化(Generalization), 实现(Realization), 依赖(Dependence),关联(Association),聚合(Aggregation) ,组合(Composition)为了避免反复看,反复记,但是还是记不住,采用gif动图及幽默比喻的解释,来加深,对她们的理解。从uml原创 2021-01-03 16:10:25 · 4627 阅读 · 4 评论 -
采用并发调用缓存输入输出流和缓存错误输出流,及回调函数来执行系统命令的封装类ShellExecUtil,及思考如何编写一个完美的工具类?
执行系统命令封装类ShellExec原创 2020-12-24 18:05:39 · 680 阅读 · 10 评论 -
常用的调用API的工具类APIHttpClient,封装了开始时间,调用状态,返回时间,适合API的再开发
前言HttpClient是一个对多个请求配置了公共信息的容器。所有的请求通过一个HttpClient进行发送。HttpClients是不可变的,通过HttpClient的newBuilder()创建返回。请求Builders被HttpRequest#newBuilder()来创建。APIHttpClient是封装org.apache.http.client.HttpClient下的类,来实现的。调用API的工具类APIHttpClientpom实体类package com.g原创 2020-12-18 19:07:01 · 464 阅读 · 1 评论 -
2011年系统构架师考试,案例分析试题详解与共勉,及复习权限系统设计模型分析(DAC,MAC,RBAC,ABAC,XACML)
前言2011年系统构架师考试,案例分析试题详解与共勉。案例分析题考试首先要知道以下几点:案例分析题一共5道题,第一题必做,后面4选2. 后面四题中必有一道嵌入式题,非嵌入式专业的请直接放弃。所有实际上是3选2. 考试时间90分钟,基本上每道题平均30分钟。时间还是很紧的 答题写字一定要清晰,答题内容关键要切中要点,在时间允许的范围内,尽可能多写点。说不定就答中关键点了。但是如果自己清晰知道已经答中要点了,就不要多写废话了,节约时间。今年,我押宝--->系统的安全性和保密性设计,其知原创 2020-10-30 16:32:56 · 1209 阅读 · 4 评论 -
筛选系统架构设计师考试上午综合知识易错常考真题,及详细解答
前言系统架构设计师考试上午考试,都是综合知识选择题,主要考察的是对基本知识点的掌握。每个人对于这一部分的备考方式也不尽相同,有的人喜欢先看书,有的人喜欢做题目,有的人喜欢针对性的复习做题,推荐每天定量做复习题。做题的同时,您会发现每次几乎都能碰到与往年雷同或者相似的考题,所以要对常考知识点进行针对性记忆,及在平时多总结及实践。本博文,摘选于系统架构设计师考试的上午真题!致敬1024程序员的节日!嵌入式系统采用微内核结构的操作系统提高了系统的灵活性和可扩展性,(1)。A.并增强了系统的可靠原创 2020-10-24 20:32:31 · 2256 阅读 · 3 评论 -
DEBUG解析MyBatis的SQL执行流程,学习如何自定义MyBatis中的参数设置处理器typeHandler,及自定义MyBatis中结果集处理器typeHandler
前言MyBatis可能很多人都一直在用,但是MyBatis的SQL执行流程,可能并不是所有人都清楚了,那么既然进来了,通读本文你将收获如下:Mapper接口和映射文件是如何进行绑定的 MyBatis中SQL语句的执行流程 自定义MyBatis中的参数设置处理器typeHandler 自定义MyBatis中结果集处理器typeHandler本文基于MyBatis3.5.5版本源码概要在MyBatis中,利用编程式进行数据查询,主要就是下面几行代码://获取一个SqlSession对原创 2020-10-17 21:11:11 · 423 阅读 · 2 评论 -
(软考)图示法求候选键,及快捷求候选键,和数据库模式分解的表格法,及无损连接分解的快捷判别方法
无损连接分解的快捷判别方法 首先要申明,这种快捷方法是有前提的,前提就是分解后的关系模式只有两个。其内容为: 设ρ={R1,R2}是R的一个分解,F是R上的FD集,那么分解ρ相对于F是无损分解的充分必要条件是:(R1∩R2)→(R1–R2)或(R1∩R2)→(R2–R1)。这个“或”字很重要,这里表示(R1∩R2)→(R1–R2)、(R1∩R2)→(R2–R1)中只要有一个成立就行。这里的求交和相减运算的对象是关系模式的属性。 【例题】 关系模式R(U,F),其中U={W,X,...原创 2020-10-14 19:10:43 · 2641 阅读 · 0 评论 -
详解kafka的broker、producter、consumer三个不同的配置
一 BROKER 的全局配置最为核心的三个配置 broker.id、log.dir、zookeeper.connect 。系统相关## 每一个broker在集群中的唯一标示,要求是正数。#在改变IP地址,不改变broker.id的话不会影响consumersbroker.id = 1## kafka数据的存放地址,多个地址的话#用逗号分割 /tmp/kafka-logs- 1 ,/tmp/kafka-logs- 2log.dirs = /tmp/kafka-logs##提供给客户端原创 2020-09-29 11:05:24 · 898 阅读 · 0 评论 -
启动spark服务,解决端口占用的踩坑过程及使用Phoenix操作hbase数据表
前言在尝试运行sparksql,发现spark服务没有启动,且发现其端口占用!问题处理过程在liunx系统中,搜索以下是否有spark服务?[root@A ~]# ps -ef|grep spark root 16970 25666 0 18:19 pts/2 00:00:00 grep --color=auto spark没有,就去启动spark服务启动spark服务[root@A sbin]# cd /home/software/spark2.2/sbi原创 2020-07-01 19:14:16 · 1789 阅读 · 1 评论 -
File.delete有些文件不能删除,而Files.delete(path)可以,进行深入探究其原因
最近更换deepin系统,在其上做项目,发现运行Java程序,File.delete有的目录下的文件,不能删除,有的能删除,反复对比文件属性及操作权限,均不得其解,最后发现采用Paths和Files得到解决!网上解决方案一一验证...原创 2020-04-24 17:22:02 · 1873 阅读 · 0 评论 -
FFmpeg 在视频直播中的使用
背景在MEC边缘计算项目中,验证视频直播需要验证MEC能对直播的视频流进行处理,所以使用了FFmpeg作为视频处理工具。简介FFmpeg的名称来自MPEG视频编码标准,前面的“FF”代表“Fast Forward”,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。可以轻易地实现多种视频格式之间的相互转换。视频基础术语介绍容器(Contain...原创 2020-05-24 15:44:13 · 530 阅读 · 0 评论 -
验证前端token与后端根据参数生成的token是否一致
前言在前端登录请求时,不但带来了参数还含有token,至于这个token是否真实,后端要根据前端传过来的参数生成的token,进行验证后端对前端请求拦截XSRFHandlerInterceptorpackage a.b.c.common.interceptor;import a.b.c.common.domain.ResponseBo;import a.b.c.traffi...原创 2020-03-09 18:48:48 · 2685 阅读 · 0 评论 -
连接获取上传sftp远程目录信息的工具类FtpsFileList
连接获取上传sftp远程目录信息的工具类import com.jcraft.jsch.Channel;import com.jcraft.jsch.ChannelSftp;import com.jcraft.jsch.JSch;import com.jcraft.jsch.Session;import org.slf4j.Logger;import org.slf4j.Logger...原创 2020-02-26 15:35:08 · 733 阅读 · 0 评论 -
全角与半角字符串或字符之间的转换Java工具类BCConvert
全角与半角字符串或字符之间的转换Java工具类public class BCConvert { /** * ASCII表中可见字符从!开始,偏移位值为33(Decimal) */ static final char DBC_CHAR_START = 33; // 半角! /** * ASCII表中可见字符到~结束,偏移位值为126(Decimal) */ stat...原创 2020-02-26 13:18:26 · 443 阅读 · 0 评论