
基础
文章平均质量分 68
一揽子相关技术基础
aaaak_
小码农 一枚 日常跳坑 ,欢迎来交流
展开
-
spring redis Sentinel 哨兵 原理
sentinel 查询 Master 的地址,如果发现 Master 变更了,则删除旧的 masterEntry,重建一个新的 masterEntry;scheduleClusterChangeCheck定时检测集群节点状态。启一个 schedule 每一秒调度一次检查 是否发生过 故障转移。checkMasterNodesChange检测主节点状态。跟进去看哨兵模式下的 ConnectionManager。redis 常用的连接客户端 有三个。原创 2023-04-20 13:43:15 · 1630 阅读 · 1 评论 -
java 相关 开源组件
java 相关 开源组件原创 2022-10-25 11:45:08 · 817 阅读 · 0 评论 -
kettle 入门配置
kettle(水壶)是一个 免费开源的 Extract-Transform-Load (ETL) 工具 ,被 Pentaho 集团收购,并更名为 Pentaho Data Integration (PDI ) 当中又包含了四大厨房厨具相关的扮演了重要角色的模块,它们分别是Spoon(勺子),Pan(平底锅),Kitchen(厨房),Carte(菜单)原创 2022-10-15 17:21:41 · 1672 阅读 · 0 评论 -
linux 配置 优化
centos默认终端bash美化、颜色设置sudo vim ~/.bashrc# 在最后追加:PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[00m\]@\h: \[\033[01;36m\]\w\[\033[00m\] \[\t\]\n\$ ' export LS_COLORS=$LS_COLORS"*.py=00;35:*.pl=00;32:*.sh=01;32:*.xls=04;36:*.png=04;35;43原创 2022-10-12 16:56:36 · 312 阅读 · 1 评论 -
规则引擎基础知识
全称为 业务规则管理系统 ,英文名为 BRMS(即 Business Rule Management System)。规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块(注:领域特定语言)编写业务决策(业务规则)。由用户或开发者在需要时进行配置、管理。需要注意的是规则引擎并不是一个具体的技术框架,而是指的一类系统,即业务规则管理系统。...原创 2022-08-18 15:02:25 · 13780 阅读 · 4 评论 -
设计模式之 装饰器模式
设计模式之 装饰器模式原创 2022-07-06 11:14:10 · 115 阅读 · 0 评论 -
Flink docker-compose 单机版 安装教程
Flink docker-compose 单机版 安装教程原创 2022-07-01 11:08:06 · 1040 阅读 · 0 评论 -
clickhouse 同步mysql数据
clickhouse 同步mysql数据原创 2022-07-01 09:52:08 · 1029 阅读 · 0 评论 -
docker 部署 clickhouse
docker启动clickhouse挂载配置原创 2022-06-30 11:55:06 · 471 阅读 · 0 评论 -
数据同步
https://github.com/alibaba/canal/阿里开源的数据同步工具,同步mysql的数据到es中,利用的是mysql的binlog日志。canal就是把自己伪装成Slave,模拟slave的交互协议向master发送消息,master接收到消息,把bin log给canal,然后canal解析bin log再发送到具体的目的地。数据同步,不同 不是全量的,是增量的。...原创 2022-06-29 23:23:46 · 547 阅读 · 0 评论 -
mybatis 一对多 查询 一下就懂,多种查询实现
mybatis 一对多 查询 一下就懂,多种查询实现原创 2022-06-14 23:43:33 · 789 阅读 · 0 评论 -
Spring Boot junit4 单元测试
代码如下package com.xlcloud.business.vip.service.app.orderinterface;import com.alibaba.fastjson.JSONObject;import com.google.common.collect.Lists;import com.xlcloud.business.vip.dto.pay.EmpiricalLog;import com.xlcloud.business.vip.mapper.orders.Empirical原创 2022-05-18 15:11:22 · 538 阅读 · 0 评论 -
规则引擎设计
概述所谓规则引擎,指的是if some condition match then trigger some thing的机制。condition是一系列的expression,比如设备状态变更为离线(属性),考勤有人通过闸机(事件);trigger一系列的action,比如存储到数据库、发出告警信息。乃至于触发其他设备的动作,比如温度过高则判断火灾则触发喷淋联动。将rule抽象出来,让用户可以自由定义,就是设计规则。关联好rule和action,本质就是一种回调注册机制,当condition匹配时,代码原创 2022-02-20 16:47:58 · 2306 阅读 · 0 评论 -
OAuth 2.0认证授权 流程 以及Spring Security OAuth 2.0
访问oauth授权的URI以启动OAuth2流程:http://localhost:8080/server/oauth/authorize?response_type=code&client_id=client重定向到登录页面:http://localhost:8080/server/login处理批准并重定向到我配置的重定向页面,其中包含一个代码参数:http://localhost:8080/client?code=HMJO4K使用基本身份验证使用客户端ID和密码以及授权类..原创 2021-05-12 13:06:00 · 744 阅读 · 0 评论 -
jwt 通俗易懂
jwt 简介jwt 全称 JSON Web Tokens, JSON Web令牌(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间安全地将信息作为JSON对象传输。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对对JWT进行签名。什么时候应该使用JSON Web Tokens以下是JSON Web令牌有用的一些情况:授权:这是使用JWT的最常见方案。用户登录后,每个后续请求都将包含J原创 2021-05-11 14:23:25 · 378 阅读 · 0 评论 -
Redis指令大全
下载Tomcat安装包并解压在 /opt/soft 内下载tomcat-8wget -c http://mirror.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.55/src/apache-tomcat-8.5.55-src.tar.gztar zxvf apache-maven-3.6.3-src.tar.gz -C /opt/module/解压完之后, /opt/module/ ⽬录中会出现⼀个 redis-5.0.5的⽬录安装RabbitMQvim /原创 2021-04-27 10:12:11 · 129 阅读 · 0 评论 -
URL请求加密 参数的sign签名 与验签
如何保证 请求的安全url参数防篡改sign 防重放来源(身份)是否合法签名设计方案设计 客户端规则给不同客户端 如(app)分配对应的 商户 key, secret 用来确认请求来自 哪一端key :xxxAndroid.3.14secret : dfsdfsfxxxxx (用来加密sign)假设 url 传递的参数为id: wxd930ea5d5a258f4fdevice_info: xxxbody: testnonce_str: ibuaiVcKdpRxkhJA (该参原创 2021-04-09 10:34:48 · 5317 阅读 · 2 评论 -
MyBatis-Plus 根据 http 请求 头部参数自动分表(动态表名)
版本 implementation('com.baomidou:mybatis-plus-boot-starter:3.3.0')配置configMybatisPlusConfig.java@EnableTransactionManagement@Configurationpublic class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor() {原创 2020-10-27 16:42:30 · 980 阅读 · 0 评论 -
Java面试整理二
1 spring bean 生命周期2 spring mvc 工作流程3 spirng spring mvc spirng boot 有哪些注解Spring1.声明bean的注解@Component 组件,没有明确的角色@Service 在业务逻辑层使用(service层)@Repository 在数据访问层使用(dao层)@Controller 在展现层使用,控制器的声明(C)2.注入bean的注解@Autowired:由Spring提供@Inject:由JSR-330提供@原创 2020-08-06 22:22:44 · 154 阅读 · 0 评论 -
快速、简单避免OOM的java处理Excel工具 EasyExcel
环境 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.5</version> </dependency>创建 需要映射 excel 字段的实体@Datapublic class PatientExcel { @ExcelProperty("原创 2020-07-23 11:40:56 · 628 阅读 · 0 评论 -
java 文件 下载 之 Channel
Channel 通道下载 ByteArrayOutputStream os = new ByteArrayOutputStream().write("要下载的数据文件"); byte[] content = os.toByteArray(); InputStream is = new ByteArrayInputStream(content); // 设置response参数,可以打开下载页面原创 2020-07-22 11:37:04 · 578 阅读 · 0 评论 -
Mysql 日期的正确存储方式
datatimedatatime 占8个字节 范围为1000-01-01 00:00:00 ~ 9999-12-31 23:59:59和时区无关,原样存入、原样读取。datetime 适合 记录固定时间如服务器执行计划任务时间 / 健身锻炼计划时间等,在任何时区都是需要一个固定的时间要做某个事情。超出 timestamp 的时间,如果需要时区必须记得时区处理timestamptimestamp 占4个字节 范围为1970-01-01 08:00:01~2038-01-19 11:14:0原创 2020-06-23 11:26:50 · 2552 阅读 · 0 评论 -
java8 之 lambada stream使用方法
stream 常用方法取 entity 指定key 并用逗号隔开,外加 判断条件过滤entity.stream().map( entity-> entity.getCode() == 100 ? entity.key() "") .filter(StringUtils::isNoneBlank).collect(Collectors.joining(",")原创 2020-06-22 16:03:48 · 919 阅读 · 0 评论 -
Entity,Model,DTO,View 理解
1Entity = Database TableModel = Entities + RelationsDTO = Entity - Uninteresting FieldsView = DTOs + Relations2DO(Data Object):此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。BO(Business Object):业务对象,由 Service 层输出的封装业务逻辑的对象。AO(ApplicationObject):应用对象,在原创 2020-06-07 21:55:40 · 3082 阅读 · 0 评论 -
spring cloud stream+Kafka 实现消息传递
引入依赖 implementation("org.springframework.cloud:spring-cloud-starter-bus-kafka")开始codingbootstrap.yml stream: bindings: input: destination: kafka-topic-01 consumer: concurrency: 1 partitio原创 2020-06-02 10:06:45 · 3517 阅读 · 0 评论 -
搭建数据仓库第一节
摘取自 基于阿里云搭建数据仓库(离线).pdf1介绍KafkaHadoop+Hive +(Airflow,Azkaban,Conductor,Oozie)MySqlTableau,Echarts,Kibana对比系统数据流程设计原创 2020-04-21 14:27:09 · 269 阅读 · 0 评论 -
Springboot 项目pom.xml 配置demo
project ->parentproject ->propertiesproject ->dependenciesproject ->dependencyManagementproject ->buildproject ->build ->resourcesproject ->build ->plugins<?xml ve...原创 2020-04-18 00:18:07 · 1188 阅读 · 0 评论 -
计算机操作系统-整理
1 操作系统概述操作系统 是一个大型的系统程序,负责为应用程序分配和调度软硬件资源,并控制与协调应用程序并发活动,帮助用户存取和保护信息,以及为用户提供接口操作系统的功能进程管理(CPU管理)进程控制:创建、暂停、唤醒、撤销;进程调度:调度策略、优先级;进程通信:进程间通信;内存管理内存分配内存共享内存保护虚拟内存外备管理设备的分配和调度实现设备的无...原创 2020-04-15 14:23:38 · 715 阅读 · 0 评论 -
从SpringMVC到Spring Boot
1理解SpringMVC的流程Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图启动流程如下当服务器启动时,会先加载web.xml,之后通过引入核心配置文件加载SpringMvc-servlet.xml,就会解析该xml配置文件当解析到包...原创 2020-04-14 01:38:28 · 795 阅读 · 1 评论 -
Redis 使用以及总结
1 Redis 简介Redis是一个 基于内存亦可持久化的Key-Value数据库,Redis为什么这么快?redis是基于内存的,内存的读写速度非常快采用单线程(网络请求模块使用了一个线程),避免了不必要的上下文切换和竞争条件Reactor的事件驱动模型,非阻塞IO - IO多路复用1基本的数据结构,String: 字符串Hash: 散列List: 列表Set: 集合...原创 2020-04-13 03:45:01 · 362 阅读 · 0 评论 -
使用zk(Zookeeper)实现分布式锁
1 Zookeeper作为分布式锁的优缺点优点客户端可以持有锁任意长的时间,避免了基于Redis的锁对于有效时间(lock validity time)到底设置多长的两难问题.通过Session(心跳)来维持锁的持有状态的基于ZooKeeper的锁支持在获取锁失败之后等待锁重新释放的事件。通过watch机制,让客户端对锁的使用更加灵活。客户端可以指定 zk 创建一个有序节点,此节点将自动...原创 2020-04-08 01:13:06 · 795 阅读 · 0 评论 -
Spring AOP原理以及基础
一、AOP是什么?Aspect Oriented Programming(AOP) 面向切面编程。名称解释静态代理一个代理接口只能服务于一种类型的对象动态代理不必为特定对象与方法编写特定的代理对象,使用动态代理,可以使得一个处理者(Handler)服务于各个对象.静态代理例子//接口public interface AInterface { vo...原创 2020-03-20 23:35:53 · 162 阅读 · 0 评论 -
面试 之 MySql &Spring 事务管理
1 mysql事务隔离级别隔离级别脏读不可重复读幻读未提交读(Read uncommitted)√√√已提交读(Read committed)×√√可重复读(Repeatable read)××√可串行化(Serializable )×××未提交读(Read Uncommitted):脏读(读取未提交数据) B给A转1...原创 2020-03-20 00:20:25 · 185 阅读 · 0 评论 -
面试必备java synchronized锁的升级
首先祭出下图,上图是线程获取锁和锁升级的基本流程(来自 这里1 了解 synchronizedsynchronized 是 Java 中的关键字,是利用锁的机制来实现同步的。是Java内置的机制,是JVM层面的。jdk 1.6以前synchronized 关键字只表示重量级锁。在jdk1.6开始 ,对锁的实现引入了大量的优化,如自旋锁、适应性自旋锁、锁消除、锁粗化、偏向锁、轻量级锁等技术...原创 2020-03-16 23:35:39 · 1931 阅读 · 1 评论 -
ConcurrentHashMap 知识点整理
线程不安全的HashMap众所周知,HashMap是非线程安全的。而 ConcurrentHashMap 是 线程安全的,由于 ConcurrentHashMap 的源代码实现依赖于 Java 内存模型 ,所以我们要线对java内存模型有一定的了解Java 内存模型在Java多线程中我们经常会涉及到两个概念就是线程之间是如何通信和线程之间的同步.Java 语言的内存模型由一些规则组成,这些...原创 2020-03-13 23:37:36 · 607 阅读 · 0 评论 -
Java HashMap知识点整理
1简介HashMap在1.7和1.8做了一个比较大的改变在1.7之前是一个数组加链表,数据节点是一个entry节点,是它的一个内部类(头插法)在它resize的时候 ,多线程时候线程A调到 代码Entry<K,V> next = e.next;执行完这段代码,线程A挂起;然后线程B开始执行transfer方法,把里面的Entry进行了rehash ,B完整的执行完整个扩容流...原创 2020-03-13 02:14:29 · 230 阅读 · 0 评论 -
java 导致OOM 排查历程
java 一次OOM故障 分析先看了下监控 发现内存在逐渐增加 ,然后cpu 有一个飙升的情况, 后 java 进程被杀,OOM确实会造成CPU飙升,系统卡顿,然后系统会选择杀死某些进程以释放空间就把java杀了第一步 补救措施恢复java , 重新设置合适的JVM 初始堆与最大堆内存 ,重新设置 swap交换空间大小-Xmx****m:-Xms****m; cat /proc/...原创 2020-03-08 00:35:37 · 529 阅读 · 0 评论 -
Java虚拟机(JVM)知识整理
JVM是Java Virtual Machine(Java虚拟机)的缩写 . 用于运行 Java 编译后的二进制字节码,最后生成机器指令JVM的基本结构方法区(Method Area)被所有线程共享,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。运行时常量池(Runtime Constant Pool)是方法区的一部分。保存 Class 文件中的符号引用...原创 2020-03-07 00:27:32 · 232 阅读 · 0 评论