
java
文章平均质量分 59
为爱停留
我是华东交通大学的一名学生,是一个热爱学习的学生。
展开
-
k8s使用hostpath卷持久化数据
会在qhtx-k8s-node-001和qhtx-k8s-node-002节点下自动创建/root/logs目录,并且把容器中目录下的文件给同步过来,当容器关闭,文件仍然会存在。得知这个应用部署在 qhtx-k8s-node-002,和 qhtx-k8s-node-001节点下。容器中的文件在磁盘上是临时存放的,这给容器中运行比较重要的应用程序带来一些问题。• 问题1:当容器升级或者崩溃时,kubelet会重建容器,容器内文件会丢失。挂载Node文件系统(Pod所在节点)上文件或者目 录到Pod中的容器。原创 2023-03-14 19:42:05 · 724 阅读 · 0 评论 -
mycat2使用
解压mycat2-install-template-1.21.zip把mycat2-1.21-release-jar-with-dependencies.jar放在mycat/lib中修改mycat/conf/datasources/prototypeDs.datasource.json配置文件进入到mycat/bin目录,执行以下命令对文件分配权限服务启动客户端进行连接默认的端口是8066,可以在mycat/conf/server.json中修改。原创 2023-02-09 17:25:42 · 1337 阅读 · 1 评论 -
flink单机部署和简单使用
这个实时处理作业的source 是 scoket ,slink是print,对实时接收数据中的单词进行个数统计。看streaming作业会一直处于running运行中。利于nc启动socket server。Java版本:1.8.0_45。实时处理socket流数据。原创 2022-12-13 20:15:57 · 1274 阅读 · 0 评论 -
如何清理ogg日志文件
进入目标端ogg文件目录,/usr/local/ogg/dirdat,删除hr000009674之前的文件,不要都全部删掉,最好保留5-6个最新文件。ogg分为源端和目标端,由于目标端和kafka部署在一机器上,ogg日志文件使这台机器磁盘频繁的被占满, 导致kafka 进程被杀死。之前配置的是3天就把已经完成推送的日志给删除,现在改成1小时就把已经完成推送的日志给删除。接下来的话 ./dirdat/* 日志文件就不会频繁的把磁盘占满了。其中一个文件500M。可以看到消费到哪个文件。原创 2022-11-09 18:48:58 · 2857 阅读 · 0 评论 -
kafka监控工具----cmak安装
https://space.dingtalk.com/s/gwHOBC65GQLOAur0NgPaACAzYzYwMzhmNjZlYzc0OGY3YTY0NGNmOTExZDg4NTAwNQ 密码: sGEX。当前已安装的kafka版本:kafka_2.13-2.7.0 2.13为scala版本,2.7.0为kafka版本。则安装cmak需要Java 11及以上环境,kafka的版本为0.8,0.9,0.10,0.11及以上版本。jdk11下载的地址为:阿里云云盘链接如下。原创 2022-11-04 14:59:35 · 1023 阅读 · 0 评论 -
trino关于查询elasticSearch中时间字段的问题
这段话的意思就是,elasticSearch支持很多时间类型的格式化方式,但是trino中es连接器只支持默认的date类型,就是不能加时间格式化。创建 yc_test_data 索引,索引中包含两个属性create_time 和 name。如果索引yc_test_data的mapping改成这样,则用trino可以查询出来。注意看,带有格式化的时间字段create_time没有查询出来。原创 2022-09-15 17:41:24 · 1243 阅读 · 0 评论 -
freemarker+poi实现动态生成excel文件及解析excel文件
pom文件配置:配置文件:生成模板ftl文件步骤:1、新建excel文件:test.xlsx 2、把文件另存为xml文件,即test.xml 3、把test.xml修改文件后缀名,改为test.ftl 4、ftl文件格式化在线 XML 格式化 | 菜鸟工具 5、test.ftl文件中添加动态数据参数最终把test.ftl文件放到resources/templates下,freemarker默认读取模板文件的位置下面使用springboot+freemarker动态生成并在线下载excel文原创 2022-07-01 18:06:19 · 10689 阅读 · 8 评论 -
spring 事件监听器的使用及事件异步处理
spring 中的事件监听机制是运用观察者模式来实现的,观察者模式的优点有:1、观察者和被观察者之间低耦合,代码比较好维护2、被观察者和观察者之间是一对多的关系(当然也可以一对一),当被观察者状态改变的时候,多个观察者能同时进行处理,能实现广播通讯观察者模式有两种角色:1、Subject 目标角色:接收外界的状态变化,向观察者发送通知(广播通知) 2、Observer 观察者角色:就是具体操作的一个实体,根据Subject状态变化,会触发自身的具体操作逻辑所以说subject 和 obser原创 2022-06-29 11:30:06 · 2665 阅读 · 0 评论 -
使用stream api替代sql
假设mysql数据库中有两张表:user用户表 company企业表 当这以上两种类型的数据不是存放在数据库中,而是分别来自两个接口,如果想要对分别来自两个不同的接口的数据做一些join,group(sum),order,limit等操作的时候,我们就需要使用stream api来进行处理在java中用list来封装用户,企业信息:用mysql实现: 用stream api(sorted)实现: 用mysql实现: 用stream api(limit)实现:原创 2022-06-16 21:16:06 · 544 阅读 · 4 评论 -
dubbo服务传递用户信息
dubbo服务传递用户信息原创 2022-06-16 14:18:48 · 2240 阅读 · 1 评论 -
Java获取日历数据及用mybatis进行保存
@Configurationpublic class RestClientConfig { @Bean RestTemplate restTemplate(){ return new RestTemplate(); }}package com.htf.damp.service.impl;import com.htf.damp.mapper.HolidayMapper;import com.htf.damp.model.DayHodilyDetai.原创 2022-05-28 13:57:00 · 648 阅读 · 0 评论 -
sql语法检测
maven配置: <dependency> <groupId>com.github.jsqlparser</groupId> <artifactId>jsqlparser</artifactId> <version>4.2</version> </dependency>用 jsqlparser可以限定输原创 2022-05-28 13:45:08 · 5562 阅读 · 0 评论 -
执行逻辑大同小异的实现类使用模板模式
接着前一篇文章:使用枚举实现工厂模式_为爱停留的博客-优快云博客如现在有从四个维度日度/周度/自定义,实现定时调度,现在每个维度有一个实现类,当创建不同维度的定时器的时候,就会触发实现类去执行枚举类:package com.htf.damp.custom_enum;import com.htf.damp.quartz.QuartzCustomManager;import com.htf.damp.quartz.QuartzDayManager;import com.htf.damp.quartz.Qu原创 2022-05-25 10:35:13 · 179 阅读 · 0 评论 -
使用枚举实现工厂模式
如现在有从四个维度日度/周度/自定义,实现定时调度,现在每个维度有一个实现类,当创建不同维度的定时器的时候,就会触发实现类去执行枚举类:package com.htf.damp.custom_enum;import com.htf.damp.quartz.QuartzCustomManager;import com.htf.damp.quartz.QuartzDayManager;import com.htf.damp.quartz.QuartzMonthManager;import c原创 2022-05-25 10:19:05 · 459 阅读 · 0 评论 -
Java强引用,软引用,弱引用
强引用一般我们声明变量都是强引用,如:int[] array1 = getArray();-Xmx10M -XX:+PrintGCDetailspackage com.fen.dou;public class YInyong { public static void main(String[] args) throws InterruptedException { int[] array1 = getArray(); int[] array..原创 2022-04-26 22:51:19 · 588 阅读 · 3 评论 -
java bio,nio(内存映射/零拷贝),aio(直接IO)
socket client:先来了解几个关键词:1、DMA控制器:通俗来讲,就是操作内存和硬盘之间数据的复制,可以让当前线程释放CPU,在DMA出来之前,是由CPU来做这事的2、pageCahe:就是一个高速缓冲区,缓存IO(大部分IO操作都是缓存IO)中用户态和内核态之间的一个桥梁3、缓存IO,直接IO缓存IO:大部分IO使用的一种方式直接IO:在AIO(nio2)中使用到4、mmap:就是用户进程虚拟内存地址和内核内存间直接建立映射关系,用户态可以直接访问内核态.原创 2022-04-22 12:48:36 · 1423 阅读 · 0 评论 -
sleuth+zipkin链路追踪
sleuth+zipkin大致工作图:sleuth: 有以下术语:Span:基本工作单元,例如,在一个新建的span中发送一个RPC等同于发送一个回应请求给RPC,span通过一个64位ID唯一标识,trace以另一个64位ID表示,span还有其他数据信息,比如摘要、时间戳事件、关键值注释(tags)、span的ID、以及进度ID(通常是IP地址) ,span在不断的启动和停止,同时记录了时间信息,当你创建了一个span,你必须在未来的某个时刻停止它。 Trace:一系...原创 2022-04-17 03:42:07 · 2672 阅读 · 0 评论 -
CAS SSO用户认证原理分析
cas中重要的三个属性:TGT: 缓存在cas server用户登录标识的票据(可以存放在mongodb,mysql等数据存储介质中,默认是放在本地内存中) TGC:缓存在浏览器cookie中用户登录标识,在同一个用户下,可以用TGC去cas server中查找对应的TGT,获取ST ST:就是ticket,用来验证是否可以访问资源服务器的票据现在有两台资源服务器,一台资源服务器A,一台资源服务器B,现在想要资源服务A和资源服务器B实现单点登录第一次登录资源服务器A流程:由原创 2022-04-15 19:30:44 · 3160 阅读 · 0 评论 -
mysql-count优化
countcount是统计数据的行数的,一般分页都会用到,常见的有count(1),count(*)写法,很多人会人作为count(1)的效率会高,用数据说话count(*):mysql> SELECT count(*) FROM `job_instance`;+----------+| count(*) |+----------+| 2345399 |+----------+1 row in set (35.19 sec)mysql> EXPLAIN SEL.原创 2022-04-13 23:34:23 · 1832 阅读 · 0 评论 -
线程上下文类加载器的作用
在spring中,有一个获取默认的类加载器的方法public static ClassLoader getDefaultClassLoader() { ClassLoader cl = null; try { cl = Thread.currentThread().getContextClassLoader(); } catch (Throwable ex) { // Cannot access thread context ClassLoader - falling ba原创 2022-04-12 18:45:30 · 1014 阅读 · 0 评论 -
spring IOC和AOP
springspring data :如常见的spring data jpa,有hibernate实现,springdata jdbc,spring boot 集成mybatis底层就使用了 ,spring data redis等等 spring core(ioc容器的实现) , spring web ,包括了支持很多web容器组件,如webflux,undotow,tomcat等等 spring web mvc 基于spring web实现的mvc框架 spring securit...原创 2022-04-12 01:01:39 · 673 阅读 · 3 评论 -
为什么要用微服务?
从传统单体架构,到集群架构,再到微服务架构过程单体架构有单点问题,如果宕机所有的服务都不可用 所有业务的功能模块都聚集在一起,如果代码量多,功能之前如果有很多共同的代码,不同业务的需求开发同时进行的时候,维护起来有点麻烦 由于是单体,对请求的并发量,有限制,一个tomcat,并发量千级左右 由于代码都聚集在一起,部署慢 修改bug,牵扯的可能性的代码有很多,修个bug可能需要把所有功能模块都测试一遍 扩展成本高,根据单体架构图假设用户模块是一个CPU密集型的模块(涉及到大量的运算)..原创 2022-04-11 18:03:19 · 3490 阅读 · 3 评论 -
@Transactional注解解析
@Transactional注解默认:隔离级别:Connection.TRANSACTION_REPEATABLE_READ,可重复读的隔离级别,传播机制:Propagation.REQUIRED,如果当前没有事务,则自己新建一个事务,如果当前存在事务,则加入这个事务readOnly首先要弄清楚如果一个接口中有多个查询,需要不需要加@Transactional ?如果不需要,会不会出现多个sql查询,数据不一致的情况? //关闭mybatis的二级缓存 @Overri原创 2022-04-09 15:05:52 · 2547 阅读 · 0 评论 -
mysql保证数据的安全性
mysql 是日志先行的原则,在操作一条数据的时候,就会把旧数据插入undolog在事务提交的时候,会把最新的数据保存在redolog表中在事务提交之后,如果开启了binlog,则会把sql或者数据的前后变化保存在binlog中undo.log和redo.log保证了数据的一致性,保证了数据库的安全持久性:持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,DBMS保证它对数据库中数据的改变应该是永久性的,耐得住任何数据库系统故障。持久性通过数据库.原创 2022-04-08 16:16:14 · 2095 阅读 · 0 评论 -
几种可行的分布式事务解决方案
数据库层面上的分布式事务1、XA事务:是DTP模型定义TM和RM之间通讯的接口规范。XA接口函数由数据库厂商提供。TM用它来通知数据库事务的开始、结束、提交、回滚。基于XA规范衍生出下面的二阶段提交(2PC)、三阶段提交(3PC),sharding-jdbc和mycat都实现了XA事务2、JTA:Java的事务API,需要第三方实现,目前JTA的实现有以下几种形式 J2EE容器提供的JTA实现(Weblogic、JBoss ); JOTM(Java Open Transact...原创 2022-04-07 23:05:22 · 961 阅读 · 0 评论 -
SPRING CLOUD ALIBABA与SPRING BOOT、SPRING CLOUD版本对应关系
一、前言在搭建SpringCloud项目环境架构的时候,需要选择SpringBoot和SpringCloud进行兼容的版本号,因此对于选择SpringBoot版本与SpringCloud版本的对应关系很重要,如果版本关系不对应,常见的会遇见项目启动不起来,怪异的则会是你的项目出现一些诡异的问题,查资料也不好查。下面就收集一下SpringBoot与SpringCloud版本之间的对应关系,在搭建项目框架或者学习时按照对应的版本区间进行选择即可,避免走一些不必要的弯路。1. 历史版本图Release转载 2022-04-07 15:56:21 · 2939 阅读 · 0 评论 -
eureka
eureka server集群maven配置: <dependencyManagement> <dependencies> <!--引入springcloud的版本--> <dependency> <groupId>org.springframework.cloud</groupId> ...原创 2022-04-07 14:12:21 · 1041 阅读 · 0 评论 -
sharing-jdbc分库分表方案设计
1、对存量数据进行不停机数据迁移2、对数据进行分片不停机数据迁移1、表中要有严格时间顺序的字段updateTime同步记录表(id,tableName ,lastSyncTime )数据分片(水平分库,水平分表)1、水平分库用业务ID2、水平分表用主键ID3、sharding-jdbc不兼容sql进行排查...原创 2022-04-06 13:23:41 · 3900 阅读 · 0 评论 -
mybatis 拦截器
在mybatis中可被拦截的类型有四种(按照拦截顺序):Executor:拦截执行器的方法。 ParameterHandler:拦截参数的处理。 ResultHandler:拦截结果集的处理。 StatementHandler:拦截Sql语法构建的处理。其实Executor都可以实现ParameterHandler,ResultHandler,StatementHandler拦截器的功能拦截器一般在业务处理中用于:1、分页查询2、多租户添加条件过滤3、对返回结果,过滤掉审计字段,原创 2022-04-05 23:03:26 · 10383 阅读 · 0 评论 -
mybatis 一级缓存和二级缓存
配置mybatismaven: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> ..原创 2022-04-05 22:53:08 · 2197 阅读 · 4 评论 -
多租户技术方案实现
多租户技术(英语:multi-tenancy technology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。传统单租户结构每一个租户(这里具体描述为企业),有自己独立的应用实例,数据库,比如有一个数据中台产品,跟珠海政府,长沙市政府 共同签订了产品服务合同,为了数据安全,需要在珠海机房搭建一套数据中台系统,又要在长沙机房搭建一台数据中台服务,(假如各地政府没有定制化需求)这样做的缺点是:1、购.原创 2022-04-05 17:56:28 · 4144 阅读 · 1 评论 -
mysql高一致性,可用性集群方案设计
在传统的mysql 主从复制架构:其mysql master对slave节点时异步复制,会导致客户端读到的数据时脏数据,则如何要求mysql集群中各节点保持严格的数据一致呢?用PXC集群来搭建mysql集群:可见,pxc mysql集群,是多主结构,每个节点可读可写,且数据都保持一致mycat进行分库分表mycat 表分为:逻辑表,e-r表,分片表,全局表,非分片表如:schema.xml<?xml version="1.0"?><!DOCTYP..原创 2022-04-02 18:21:52 · 1456 阅读 · 0 评论 -
Java字节流和字符流(utf-8,ascll,unicode)
1 byte = 8 bit 1 char = 2 byte = 16 bit在字节流传输中,传输的是一个字节,一个字节8位,则最多能表现出256种字符,则一个字节通过ASCII码表则可以查找出相应的字符public class OrderTest1 { @Test public void say2() { String fileEncoding = System.getProperty("file.encoding"); System.out.pr原创 2022-03-31 11:11:36 · 1842 阅读 · 2 评论 -
对字段加密搜索方案设计
Aasss原创 2022-03-26 23:52:14 · 1719 阅读 · 0 评论 -
FactoryBean和BeanFactory区别
11111原创 2022-03-25 17:55:20 · 521 阅读 · 0 评论 -
JDK动态代理模拟实现mybatis自动装配
ssss原创 2022-03-22 11:30:39 · 494 阅读 · 0 评论 -
spring 中四种启动容器执行的实现
CommandLineRunner@Componentpublic class RunOnStartServer implements CommandLineRunner { @Override public void run(String... args) throws Exception { System.out.println("----------CommandLineRunner-----------"); }}ApplicationR..原创 2022-03-21 14:21:43 · 505 阅读 · 0 评论 -
oauth2---密码模式和授权码模式架构分析
11111原创 2022-03-21 12:53:10 · 1431 阅读 · 0 评论 -
servlet3.0新特性AsyncContext
在servlet同步请求中,当一个http请求过来的时候,务器端tomcat的线程池都要分配一个线程去处理这个请求,如果这个请求耗时很长,则这个线程会一直占用,则tomcat线程池容易爆满在servlet3.0新特性AsyncContext出现之后,及tomcat7之后,当服务端,开启AsyncContext处理的时候,就可以释放这个线程,供其他客户端使用,这样可以大大提高整个系统的并发性,但是服务端需要保存客户端状态信息,占用一定的内存资源,下面举一个实例:@RestController@Re原创 2022-03-21 10:17:08 · 1576 阅读 · 0 评论 -
oauth2---认证中心
配置类详解公共maven配置:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://ma.原创 2022-03-19 21:42:10 · 1816 阅读 · 0 评论