- 博客(92)
- 资源 (4)
- 收藏
- 关注
原创 领域驱动DDD
第一阶段是单机架构:采用面向过程的设计方法,系统包括客户端UI层和数据库两层,采用C/S架构模式,整个系统围绕数据库驱动设计和开发,并且总是从设计数据库和字段开始。第二阶段是集中式架构:采用面向对象的设计方法,系统包括业务接入层、业务逻辑层和数据库层,采用经典的三层架构,也有部分应用采用传统的SOA架构。这种架构容易使系统变得臃肿,可扩展性和弹性伸缩性差。第三阶段是分布式微服务架构:随着微服务架构理念的提出,集中式架构正向分布式微服务架构演进。
2024-04-05 02:19:59 1246
原创 JVM学习笔记
自定义类加载器允许用户自行实现类加载的逻辑,可以从网络、数据库等来源加载类信息。自定义类加载器需要继承自 ClassLoader 抽象类,重写 findClass 方法。common 类加载器主要加载 tomcat 自身使用以及应用使用的 jar 包,默认配置在文件中。:默认配置为空,为空时 catalina 加载器和 common 加载器是同一个。:默认配置为空,为空时 shared 加载器和 common 加载器是同一个。:可以多线程并行加载应用中使用到的类,每个应用都拥有一个自己的该类加载器。
2024-04-05 02:12:35 768
原创 Tomcat 9.0.x 源码编译
将外面的 conf 和 webapps 复制到 home 目录中,webapps 目录中只需保留 ROOT 目录即可。的目录是我本地项目的目录,需要根据自己的实际目录来修改。
2023-11-06 23:41:19 812
原创 JDK8 ConcurrentHashMap源码分析
主要利用Unsafe操作 +关键字。Unsafe操作的使用主要负责并发安全的修改对象的属性或数组某个位置的值。主要负责在需要操作某个位置时进行加锁(该位置不为空),比如向某个位置的链表进行插入结点,向某个位置的红黑树插入结点。JDK8中仍然有分段锁的思想,JDK8中数组的每一个位置都有一把锁。当向中put一个keyvalue时,首先根据key计算对应的数组下标i,如果该位置没有元素,则通过自旋的方法去向该位置赋值。如果该位置有元素,则会加锁加锁成功之后,在判断该元素的类型。
2023-02-16 18:47:09 742 2
原创 JDK8 HashMap put() 方法源码分析
红黑树是每个结点都带有颜色属性的二叉查找树,颜色或红色或黑色。结点是红色或黑色。根结点是黑色。所有叶子都是黑色。(叶子是NIL结点)每个红色结点的两个子结点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色结点)从任一结点到其每个叶子的所有路径都包含相同数目的黑色结点。容量是2的幂次,当存的数达到 容量*0.75 时,扩容数组先存单向链表,链表上的节点个数超过8时,如果数组大小没有达到64,则扩容,否则链表转换成双向链表(仍然存在)再转换成红黑树。
2023-02-09 11:42:52 565
原创 SpringBoot自定义配置的提示
需要开启自动配置()和扫描包(} }属性的全名。名称采用小写的周期分隔形式(例如server.address)。此属性是强制性的。属性的数据类型的完整签名(例如java.lang.String),但也是完整的泛型类型(例如java.util.Map)。您可以使用此属性来指导用户可以输入的值的类型。为了保持一致性,通过使用其包装对应项(例如,boolean变为java.lang.Boolean)来指定基元的类型。
2023-01-06 18:26:29 711
原创 Log4j2自定义插件实现自定义日志打印功能(脱敏/加密)
*** log4j1.x重写log4j的PatternLayout,实现日志信息中敏感信息的编码或加密* log4j2.x重写log4j的AbstractStringLayout,实现日志信息中敏感信息的编码或加密*/*** 常用正则表达式:https://cloud.tencent.com/developer/article/1751120* 手机号正则匹配式* 实测雪花算法生成的Id可能会被手机号正则匹配到,故加了关键正则过滤:* (?......
2022-08-26 14:17:04 3803
原创 Java 校验注解的使用、自定义校验注解
1)定义自定义校验器,实现接口第一个泛型:注解第二个泛型:修饰的字段类型public class ListValueConstraintValidator implements ConstraintValidator < ListValue , Integer > {/*** 初始化方法,一般用于将自定义注解中的参数缓存* @param constraintAnnotation 参数是自定义的注解} } /**** @param value 传过来的参数。
2022-08-20 00:26:43 7747 1
原创 Hive详解——基本操作归纳
文章目录一、Hive基本概念1. 什么是 Hive1)hive 简介2)Hive 本质:将 HQL 转化成 MapReduce 程序2. Hive 的优缺点1)优点2)缺点3. Hive 架构原理4. Hive 和数据库比较1)查询语言2)数据更新3)执行延迟4)数据规模二、Hive安装1. Hive 安装地址2. 安装MySQL3. Hive 安装部署4. Hive 元数据配置到 MySQL5. 启动并使用 Hive1)启动 Hive2)使用 Hive3)Hadoop中查看文件6. 使用元数据服务的方式访
2021-11-30 16:57:47 2835 1
原创 Hadoop-Yarn
文章目录一、Yarn资源调度器概述1. Yarn基础架构2. Yarn工作机制二、Yarn调度器和调度算法1. 先进先出调度器(FIFO)2. 容量调度器(Capacity Scheduler)3. 公平调度器(Fair Scheduler)1)公平调度器与容量调度器的区别2)公平调度器队列资源分配方式a. FIFO策略b. Fair策略c. DRF策略三、Yarn常用命令1. yarn application 查看任务2. yarn logs 查看日志3. yarn applicationattempt
2021-11-09 10:55:35 666
原创 Hadoop-HDFS详解
文章目录一、HDFS概述1. HDFS产出背景及定义1)HDFS产生背景2)HDFS定义2. HDFS优缺点1)HDFS优点2)HDFS缺点3. HDFS组成架构4. HDFS文件块大小二、HDFS的shell操作1. 基本语法2. 命令大全1)上传2)下载3)HDFS直接操作4)举例说明a. 查看文件大小三、HDFS的API操作1. Windows 系统客户端环境准备2. API 操作1)引入依赖2)操作流程3)参数优先级4)常用操作API四、HDFS读写数据流程1. HDFS写数据流程2. 网络拓扑-节
2021-10-27 17:30:12 5362 1
原创 Hadoop3简介与集群搭建
文章目录一、概念1. Hadoop是什么2. Hadoop优势(4高)3. Hadoop组成1)HDFS架构概述2)YARN架构概述3)MapReduce架构概述4)HDFS、YARN、MapReduce三者关系二、安装1. 前提条件2. 准备模板虚拟机3. 目录结构4. 分发命令与脚本配置1)scp(secure copy)安全拷贝a. 基本语法b. 例子2)rsync远程同步工具a. 基本语法b. 案例实操3)xsync集群分发脚本a. 需求分析:b. 脚本实现c. 测试脚本4)SSH无密登录配置a.
2021-10-24 23:19:18 1668
原创 K8S安装、快速入门
文章目录一、K8s快速入门1. 简介2. 架构1)master节点架构2)Node节点架构3. 概念二、K8s集群安装1. 前置要求2. 配置Linux环境(所有节点都执行)3. 所有节点安装 docker、kubeadm、kubelet、kubectl1)安装Docker2)添加阿里与Yum源3)安装 kubeadm,kubelet 和 kubectl4)部署k8s-master(1)master节点初始化(2)安装 flannel5)添加从节点三、入门操作kubernetes集群1. k8s上部署一个t
2021-10-11 17:00:12 781
原创 SHELL编程命令大全
文章目录一、文本处理工具1. grep(重要)语法和选项2. cut工具(重要)语法和选项3. sort工具语法和选项4.uniq工具5.tee工具6.diff工具语法和选项7. paste工具8. tr工具语法和选项二、bash的特性1、命令和文件自动补全2、常见的快捷键3 、==常用的通配符(重点)==4、==bash中的引号(重点)==一、文本处理工具1. grep(重要)grep是行过滤工具;用于根据关键字对行进行过滤语法和选项> grep [选项] '关键字' 文件名OPT
2021-07-26 18:05:28 30311 3
原创 xshell写JS脚本自动进行操作
文章目录一、安装正版xshell二、xshell运行脚本1. 写脚本脚本格式脚本常用命令脚本样例2. 运行脚本前景提要,公司四十多台服务器,当每台服务器都需要升级更新的时候,一台一台的登录实在是不符合一名程序员的作风。于是乎就写的一个 js 自动化脚本,自动操作 xshell。一、安装正版xshell我刚开始使用的是不是正版的,crt 跑脚本没问题,xshell 跑脚本就老报错,一气之下就重新装了免费正版(学生版)的 xshell,下载地址:https://www.netsarang.com/zh/a
2021-07-26 16:59:24 3550
原创 Quartz任务调度(详细)
Quartz任务调度一、Quartz概念Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合,也可以单独使用。Quartz是开源且具有丰富特性的“任务调度库”,能够集成于任何的Java应用,小到独立的应用,大至电子商业系统。Quartz能够创建亦简单亦复杂的调度,以执行上十、上百,甚至上万的任务。任务job被定义为标准的Java组件,能够执行任何你想要实现的功能。Quartz调度框架包含许多企业级的特性,如JTA事务、
2021-07-19 01:45:37 3990 2
原创 JUC并发编程
文章目录一、线程与进程1. 进程/线程是什么?2. 进程与线程的区别3. 线程状态4. wait()/sleep()的区别?5. 什么是并发?什么是并行?6. notify和notifyAll的区别二、锁对象锁与类锁ReentrantLock(可重入锁)ReadWriteLock(读写锁)三、线程安全类1. ArrayList 不安全CopyOnWriteArrayList 写时复制2. HashSet不安全3. HashMap不安全TODO Callable接口阻塞队列常用队列通用方法线程池辅助类1. C
2021-06-30 01:35:16 301 3
原创 IDEA SpringBoot 同一个模块启动多个服务(实例)
复制配置修改配置参数,比如端口--server.port=100013. 这样就启动了四个服务相同的服务,然后就可以使用 Gateway 进行负载均衡的测试了:
2021-06-12 17:18:42 2747
原创 ElasticSearch学习笔记
文章目录一、二、1. 安装2. 配置跨域3. 可视化工具elasticsearch-head4. 安装 Kibana汉化发送请求三、基本概念索引(Index)文档(Document)映射(Mapping)文档类型分片与副本(Shards & Replicas)TODORestFul索引的CRUD创建索引,PUT请求:删除索引,DELETE 请求:修改索引,GET 请求:查询索引,GET 请求:字段类型文档的结构元数据(metadata)文档的 CRUD添加文档,PUT请求:删除文档,DELETE请求
2021-06-06 20:50:39 508
原创 Https 生成证书(keytool),并在Springboot中进行配置
文章目录一、keytool生成keystore1. 生成 keystore 文件2. 查看 keystore 文件详细信息3. 从 keystore 中导出证书(公钥)4. 查看证书详情5. 从 keystore 中导出私钥二、证书格式转换二、springboot 使用 https三、Postman 发送 https 请求keytool 是一个 Java 数据证书的管理工具,keytool 将密钥(key)和证书(certificates)存在一个称为 keystore 的文件中。相关概念:一文看懂H
2021-03-18 18:14:04 5818
原创 RocketMQ详细配置与使用
文章目录一、MQ介绍1.1 为什么要用MQ1)应用解耦2)流量削峰3)数据分发1.2 MQ的优点和缺点1.3 各种MQ产品的比较二、RocketMQ快速入门2.1 准备工作2.1.1 下载RocketMQ2.2.2 环境要求2.2 安装RocketMQ2.2.1 安装步骤2.2.2 目录介绍2.3 启动RocketMQ2.4 测试RocketMQ2.4.1 发送消息2.4.2 接收消息2.5 关闭RocketMQ2.6 各角色介绍2.7 broker配置文件详解2.8 可视化监控平台搭建2.8.1 概述2.
2020-12-08 20:48:29 41044 23
原创 k8s - Helm
文章目录一、概述二、Helm 部署三、Helm 下载四、Helm 自定义模板1. Helm 目录结构2. Chart.yaml 结构3. 内置对象(1) Values(2)其它内置对象4. Helm 实例一,简单创建一个Nginx(1)创建文件夹(2)创建 Chart.yaml(3)创建 values.yaml(4)创建模版文件(templates)(5)创建 Release5. Helm 一些操作拉取Chart(1)安装(2)查看信息(3)更新(4)历史版本/回滚(5)删除六、Helm 部署 dashbo
2020-11-26 17:41:12 3393 2
原创 k8s - 安全
文章目录一、机制说明二、认证(Authentication)1. 认证方式2. 需要认证的组件3. kubeconfig4. ServiceAccount(SA)(给Pod颁发证书)Secret 与 SA 的关系三、授权(Authorization)1. RBAC2. Role / ClusterRole3. RoleBinding / ClusterRoleBinding4. Resources5. Subjects四、 实践:创建一个 devuser 用户只能管理 dev 空间(1)创建一个新用户 `d
2020-11-18 23:52:23 809 3
原创 k8s-集群调度
文章目录一、调度说明1. 简介2. 调度过程3. 自定义调度器二、调度亲和性1. 节点亲和性(1)硬策略(2)软策略(3)硬策略与软策略(4)节点标签相关操作2. Pod 亲和性(1) podAffinity与podAntiAffinity的区别(2)资源清单模板(3)Pod 标签相关操作三、污点(Taint)和容忍(Toleration)1.2.一、调度说明1. 简介Scheduler 是 kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上。听起来非常简单,但有很多要考
2020-11-18 00:07:31 727
原创 k8s-存储
文章目录ConfigMapConfigMap 的创建1. 资源清单创建2. 使用目录创建3. 使用文件创建4. 使用字面值创建Pod 中使用 ConfigMap1. 使用 ConfigMap 来替代环境变量ConfigMapConfigMap 功能在 Kubernetes1.2 版本中引入,许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。ConfigMap API 给我们提供了向容器中注入配置信息的机制,ConfigMap 可以被用来保存单个属性,也可以用来保存整个配置文件或者 JSON
2020-11-17 14:20:18 498
原创 k8s-Service
文章目录ServiceService 代理方式1. `userspace`2. `iptables`3. `ipvs`(常用)Service的类型1. ClusterIpClusterIP 实例Headless Service(特殊的 ClusterIP 类型)NodePortNodePort 实例LoadBalancerExternalNameExternalName 实例Ingress-Nginx部署 Ingress-NginxIngress HTTP 代理访问示例Ingress HTTPS 代理访问示
2020-11-16 17:16:22 1250
原创 Shrio + Spring Boot配置与使用
文章目录一、概述1. Shiro介绍2. 基本功能3. 架构二、SpringBoot 集成 Shiro1. 引入依赖2. Shiro 中常见类(1)常见类(2)常见异常3. 通过Shiro认证账号1. 自定义 Realm 类2. ShiroConfigRBAC认证授权流程一、概述1. Shiro介绍Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应
2020-11-05 09:23:06 401
转载 MySQL之日期时间处理函数
以下基本包含MySQL所有日期时间函数:-- MySQL日期时间处理函数-- 当前日期:2017-05-12(突然发现今天512,是不是会拉防空警报)SELECT NOW() FROM DUAL;-- 当前日期时间:2017-05-12 11:41:47-- 在MySQL里也存在和Oracle里类似的dual虚拟表:官方声明纯粹是为了满足select ... from...这一习惯问题,mysql会忽略对该表的引用。-- 那么MySQL中就不用DUAL了吧。SELECT NOW();-- 当前日
2020-10-28 23:02:56 156
原创 早安,打工人!
你这么不努力,怎么做打工人啊你!我要悄悄打工,然后惊艳所有人 !打工不仅能致富,还能交友娶媳妇!打工人,打工魂,打工人都是人上人。早安,打工人!没有困难的工作,只有勇敢的打工人。加油,打工人!爱情不是生活的全部,打工才是。 早安,打工人!累吗?累就对了,舒服是留给有钱人的;加油,打工人!冷吗?冷就对了,温暖是留给开小轿车的人。加油,共享单车人 !有人相爱,有人夜里看海,有人七八个闹钟起不来。早安,打工人!打工可能会少活十年,不打工你一天也活不下..
2020-10-28 14:17:52 367
原创 K8S-资源清单
文章目录资源清单集群资源分类名称空间级别:仅存此名称空间下生效集群级别:所有名称空间都可以使用元数据型资源常用字段解释**必须存在的属性(必须写)**主要对象额外参数项yaml 示例容器的生命周期Init Containerinit容器作用Init容器特殊说明Init 容器示例探针探针描述实例就绪检测 - httpGet存活检测 - ExecAction存活检测 - HTTPGetAction存活检测 - TCPSocketActionStart/StopPod 的状态(phase)**控制器实例**应用
2020-10-24 21:34:14 2301
原创 Mac入坑指北(问题记录)
文章目录1. IDEA启动项目时很慢2. 环境变量刚配完就找不到3. brew操作4. iTerm2连接远程服务器的脚本1. IDEA启动项目时很慢打开终端,查看自己的电脑名mac@macdeMacBook-Pro ~ % hostnamemacdeMacBook-Pro.local将电脑名添加到 /etc/hosts 中 127.0.0.1 后面:### Host Database## localhost is used to configure the loopback in
2020-08-27 17:29:05 1601
原创 Vuex
文章目录一、概述1. 什么是Vuex2. 状态管理单界面的状态管理多界面的状态管理3. 什么状态需要管理二、State1. Vuex 入门2. State 单一状态树三、Getters四、Mutation1. 更新状态2. 传递参数(提交载荷(Payload))3. 对象风格的提交方式4. 响应规则5. 使用常量替代 Mutation 事件类型6. Mutation 必须是同步函数五、Action(异步操作)一、概述官方文档:https://vuex.vuejs.org/zh/1. 什么是Vuex什
2020-08-14 10:35:16 162
原创 vue-router入门详解
文章目录一、vue-router路由规则(基础)1. URL的hash2. HTML5的history模式安装与使用vue-router安装vue-router 使用步骤:路由与组件映射使用路由(\和\)事件中使用路由($router)三、创建 VueRouter 对象时的其它配置1. mode(指定路由模式)2. linkActiveClass(路由匹配成功时添加 class)四、传递参数($route)1. 动态路由(params的类型)2. query的类型五、嵌套路由六、导航守卫、路由懒加载一、v
2020-08-05 17:18:56 535
原创 Axios使用详解
文章目录一、Promise的使用1. 基本语法Promise三种状态Promise链式调用1. 基本写法2. 使用静态方法3. 直接返回Promise.allPromise.race二、Axios使用1. 安装并引入2. 发送请求3. config配置4. 响应结构5. 并发请求6. 全局配置6. 创建实例7. 实例方法8. 拦截器请求拦截器响应拦截器9. Axios 封装三、使用 Axios 中遇到的一些问题总结1. 传递的参数是数组时的编码问题一、Promise的使用ES6 中一个非常重要和好用的特
2020-08-05 14:25:31 1638
原创 MySQL 数据库的自动备份与自动清理
本文主要是使用 `Linux` 的定时任务和 `Mysql` 的 `mysqldump` 工具对数据库进行本地的简单备份。
2020-07-12 20:02:44 1406
原创 Excel按Sheet页拆分成多个.xlsx文件(宏)
使用宏将一个包含多个Sheet页的Excel文件按Sheet页拆分成多个.xlsx文件,使用的 Office 版本为2019,亲测可用
2020-07-07 00:16:19 7152 1
原创 Docker入门这一篇就够了
docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。docker可以让开发者打包他们的 **应用** 以及 **依赖包** 到一个轻量级、可移植的容器中,然后发布到任何流行的linux服务器,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类iphone的app),并且容器开销极其低。Docker 基础命令及 Dockerfile 制作自己的镜像
2020-06-25 13:17:05 1392
原创 MyBatisPlus学习笔记
文章目录一、概述一、概述虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正因其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的解决了这个问题。官方的定义:Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这是官方给的定义,关于......
2020-06-03 10:10:40 1705 1
原创 java常用IO流操作
一、概述1. 流的分类2. 常用流的继承关系二、File类1. 构造方法2. 实例方法3. 静态方法4. 一些例子三、InputStream及其子类1. InputStream2. FileInputStream3. BufferedInputStream4. DataInputStream5. ObjectInputStream四、OutputStream及其子类
2020-04-24 15:57:50 701
原创 JDBC使用流程
文章目录一、概述二、开发步骤三、相关的类与接口四、操作例子1. 对数据库进行增/删/改时2. 对数据库进行查询时五、事务管理六、JDBC封装七、创建连接池进行优化一、概述JAVASE规范:指定Java命令开发时基本规则,比如如何创建一个类,如何实现一次循环遍历JAVAEE规范:指定Java与不同的【服务器】进行联合开发时,需要遵守的规则。由于Java在日常开发中需要与13种类型服务器进行合...
2020-03-30 19:03:06 634
fastdfs-client-java-1.27-SNAPSHOT.jar
2020-01-10
Postman-win64-6.1.4-Setup.zip
2019-12-21
Bootstrap中文API文档.zip
2019-11-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人