自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(284)
  • 资源 (2)
  • 论坛 (1)
  • 收藏
  • 关注

原创 自行一个简单类似Spring AOP(Jdk方式)的框架

Spring AOP有两种实现方式,一种是基于JDK的,另一种是基于Cglib的,本文模拟Spring的Jdk实现方式自行实现一个简单的小框架,目的是熟悉思想。基于JDK的动态代理,最终的一个类是InvocationHandler,InvocationHandler可以理解为一个方法调用器,在对方法进行增强时候,代理类会拦截到目标对象上的方法,然后将拦截的方法传递给InvocationH...

2019-10-26 17:58:21 156

原创 针对Mac IDEA 安装插件启动失败解决办法

去:/Users/XXXX/Library/Application Support/JetBrains/IntelliJIdea2020.3/plugins 删除对应插件即可

2021-05-28 16:00:15 216

原创 Redis Lua脚本报错 redis() command arguments must be strings or integers

粗心大意惹的祸,记下吸取一下教训。127.0.0.1:6379> EVAL "local member = redis.call('ZRANGE', KEYS[1], 0, 0) if (next(member)==nil) then return member else redis.call('ZREM', KEYS[1], member) return member end " 1 tq(error) ERR Error running script (call to

2021-02-03 21:07:03 432

原创 Postgresql数据库基本操作入门

基本查看命令查看数据库:\l\c database 切换到指定数据库切换schema set search_path to your_schema;\dn 列出当前数据下所有的schema\db 列出所有的表空间 tablespace查看当前schema下面的表: \d查看表定义:\d tableName\du或\dg列出所有的角色或者用户\dp 查看权限分配当客户端与服务器端编码不一致时候会出现乱码,此时可以使用 \encoding utf8设置

2021-01-16 13:48:10 360

原创 Spark海量数据取任意第Kth行的实现

val df = (1 to 100000).toSeq.toDF("id")val orderDF = df.orderBy("id").rdd.zipWithIndex()orderDF.filter(t=>t._1.getAs[Int]("id")==100).take(5) // 获取低排名为100的行(从0开始排名)查询结果: Array[(org.apache.spark.sql.Row, Long)] = Array(([100],99))...

2021-01-04 10:30:35 153

原创 Spark大数据处理TB级别海量数据的Shuffle成本(草稿)

1:轻易不要shuffle,例如20万个小文件(文件大小100MB,spark一个文件一个分区)的想要进行缩减5-8万的分区轻易不要repartition,而是coalase 进行分区合并

2020-12-27 11:30:41 187

原创 Spark SQL join 条件写法遇见的坑 left join 最终被当做inner join执行

SQL1:SELECT lower(trim(user_log_acct)) as user_log_acct, after_prefr_amount_1, sale_qtty, free_goods_sale_qtty, parent_sale_ord_id, ord_flag, shop_id, main_sku_id, item_id

2020-11-25 22:44:10 462 3

原创 逻辑删除记录时-保证业务的唯一性约束

目录业务背景业务背景通常业务系统的一些记录表都会有一些唯一性约束,例如相同用户下不允许重名;通常可以对指定列创建唯一性索引即可,例如:CREATE TABLE `novel`( `id` bigint(20) NOT NULL AUTO_INCREMENT, `novel_id` bigint(20)

2020-08-25 13:23:48 503

原创 AOF文件格式

AOF文件格式*N is the number of arguments of the command.$M is the length, i.e. the number of bytes, of each argument.*数字:表示一个命令的开始,共计有几个参数$数字:表示下面的参数的长度127.0.0.1:6379> set count 1*3 # 共计三个参数,分别是set count 1$3 # 参数长度为3个B(备注:set长度)set $5 # 下一个参.

2020-08-04 13:15:26 293

原创 Spring事务异常UnexpectedRollbackException出现原因以及解决方法

异常信息:org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatform

2020-06-08 15:48:04 904

原创 Spring是否支持对静态方法进行Aop增强

1:JDK代理2:CGLIB代理

2020-04-22 16:06:34 1780

原创 Netty中的ChannelHandler的基础知识

Netty中的ChannelHandler类似于工程对产品流水线生产中:生产线上的每一步的处理器,而生产线则就是Netty中的ChannelPipeline。Netty也正是通过ChannelHandler实现了业务与底层网络的解耦。Netty中的ChannelHandler按照输出字节流向分为In,Out,Duplex三种ChannelHandler,本文主要介绍前面两种,Netty中...

2020-04-18 10:50:14 339

原创 Hive扫盲之Lateral View之列为空时候该行元素消失

采坑:当lateral view explode(arr) 时候,如果arr为一个空集合则会导致行元素丢失,因此需要进行特出处理其实也不算坑吧,怪自己不了解而已。有时间完善下面文档阅读笔记。https://cwiki.apache.org/confluence/display/Hive/LanguageManual+LateralView...

2020-03-06 13:45:38 279

原创 MySQL中大小写敏感涉及的属性以及查询如何区分大小写

lower_case_file_systemProperty Value System Variable lower_case_file_system Scope Global Dynamic No Type Boolean 该变量用于设置数据库在检索数据目录时候是否区分大小学,OFF意味着是大小写敏感的;ON意味着大小写不敏感。这是一个只读属...

2020-02-24 20:10:33 674

原创 Java中通过Runnable与Thread创建线程的区别

1 、Java中的Thread与Runnable1:在Java并发模型中,Thread是跟操作系统底层的线程一对一对应的,Thread对应一个真实的操作系统线程。2:Runnable只是一个线程执行代码片段的接口标准之外,其余跟线程关系根本不是很大(可以理解:Runnable是一个线程的Task抽象)。Runnable可以理解为线程执行代码的一个单元(juc中Callable也是一个接口标...

2020-02-23 17:09:13 516 5

原创 Shell脚本中有关数据进制的问题(value too great for base (error token is "08"))

脚本内容:#!/usr/bin/env bashendWeek=`date +%V`echo $endWeekstartWeek=$[`date +%V`-1]year=`date +%Y`if [[ $# -eq 2 ]]then echo "please input startWeek and endWeek (week >=startWeek and week ...

2020-02-19 17:36:42 413

原创 Grafana表格配置以及Panel/Dashboard复制粘贴

Grafana是一个可视化工具,主要用于监控报表的可视化,支持各种表格以及插件灵活拓展多种数据源,更多参见:GrafanaGrafana优点:1:Grafana支持更多插件扩展数据源;2:支持监控报警;3:丰富的可视化表格等。使用大概如下:创建DashBoard基于上面创建的Dashbord创建panel,一个panel就是一个可视化面板,在panel里面可以选择多种表格,例如:...

2020-02-18 20:51:10 4789

原创 Grouping__ID 在不同版本中的使用方法不一样

GROUPING SETS clauseGrouping__ID function Grouping__ID function (before Hive 2.3.0)Hive2.3版本之后Grouping__ID functionWhen aggregates are displayed for a column its value is null. This may confli...

2020-02-14 11:31:26 774

原创 MYSQL官方文档需要撸一遍(待学习)

https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_json-arrayaggselect @rk := @rk + 1 as id, group_concat(revenue order by field("month", "Jan", "F...

2020-01-19 20:43:58 197

原创 MySQL窗口函数中的Frame(三)

12.21.1 Window Function Descriptions12.21.2 Window Function Concepts and Syntax12.21.3 Window Function Frame Specification12.21.4 Named Windows12.21.5 Window Function RestrictionsFrame定义...

2020-01-18 18:38:39 621

原创 MySQL窗口函数概念与语法(二)

12.21.1 Window Function Descriptions12.21.2 Window Function Concepts and Syntax12.21.3 Window Function Frame Specification12.21.4 Named Windows12.21.5 Window Function Restrictions基础数据:...

2020-01-18 16:20:34 315

原创 MySQL窗口函数基础初试(一)

MySQL支持窗口函数,对于数据row的查询,会使用一些相关的rows进行计算出一个row。如下将会讨论如何使用窗口函数,包括OVER以及WINDOW子句,本结只讨论非聚集窗口函数。聚集窗口函数参考:聚集窗口函数。更多关于优化以及窗口函数参考:窗口函数优化。MySQL窗口函数主要涉及一下内容:12.21.1 Window Function Descriptions12.21.2 Win...

2020-01-17 11:59:02 216

原创 Spring @Cacheable有关缓存失效时间策略的默认实现以及扩展

之前对Spring缓存的理解是每次设置缓存之后,重复请求会刷新缓存时间,但是问题排查阅读源码发现,跟自己的理解大相径庭。所有的你以为都仅仅是你以为!!!!背景目前项目使用的spring缓存,主要是CacheManager、Cache以及@Cacheable注解,Spring现有的缓存注解无法单独设置每一个注解的失效时间,Spring官方给的解释:Spring Cache是一个抽象而不是一个...

2020-01-10 21:12:04 2666

原创 MYSQL mediumText大字段存储错误问题排查

思路:1:由于日志查询问题,没看到日志之前怀疑:MYSQL数据库字段长度是否真的足够,排查问题未果。2:步骤一未果,看日志了解错误信息如下Name":"com.javartisan.audience_management.jsf_service.service.AudienceService"}org.springframework.orm.jpa.JpaSystemExcepti...

2019-12-09 20:40:23 823

原创 灵活多变的SQL-Where后面的case when

今天一个需要,想着是否可以where 后面使用case when ,测试一下果然可以,强大的SQL没有解决不了的难题。select login_tm, dtfrom adm.user_login_tabwhere case when 1 != 1 then dt = '2019-11-13' else dt < '2019-10-28' end limit 50 ;...

2019-11-15 18:17:09 144

原创 Spring Aop之JDK方式创建代理类的源码思路

import org.aopalliance.intercept.MethodInvocation;import org.aopalliance.intercept.MethodInterceptor;public class CustomMethodAdvice implements MethodInterceptor { @Override public Object...

2019-10-26 19:21:37 160

原创 Spring AOP处理类上或者方法上面的切面

注解定义@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface XXXXDataSource { /** * @return datasource name */ DataSou...

2019-09-24 18:14:02 1321

原创 整合多数据源Neo连接池时遇见的问题以及方案与收获

整合多数据源时候,配置neo数据库连接池时候使用的Druid连接池,遇见的问题以及问题的解决方案与收获简单记录一下。方案1:配置信息:<bean name="neoDataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driver" value="...

2019-06-20 20:08:50 192

原创 借助Spring框架实现多数据源进行动态路由数据源进行数据查询

业务需要,不同类型数据分布在不同集群以提高查询性能,为此系统存在多个数据源。数据源实现方式:1:静态配置多个数据源,按需使用,不具备动态调整能力。示例代码:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xml...

2019-05-28 21:55:56 403

原创 基于JDK动态代理实现的Spring AOP源码学习

最近花了点时间学习了一下Spring Aop的内容,到此简单做一下笔记。如果存在错误还望多多指教。概念所谓的Aop就是Aspect Oriented Programming,即面向切面编程。对于Aop存在一个组织AOP Alliance,该组织制定了一下跟Aop有关的标准,制定的只是标准,没有实现。通常在Aop中主要有如下术语:1:Aspect是切面,是面向切面编程的一个抽象,...

2019-05-25 13:34:08 474

原创 Spark SQL有关broadcast join的不生效问题2

今天同事反应他的广播不生效,看了一下代码,它的代码样子如下: def main(args: Array[String]): Unit = { val spark = SparkSession.builder().appName("BroadCastJoinLLocalDebug").master("local[*]").getOrCreate() val sc = spar...

2019-05-21 18:39:18 975

原创 Spark SQL有关broadcast join的不生效问题

大数据计算通常会存在大表join小表的情况,如果相对较小的表允许广播到各个executor的话,可以使用广播方式mapjoin,这样还可以避免数据倾斜。平时看文档记着有个参数是:spark.sql.autoBroadcastJoinThreshold 10485760 (10 MB) Configures the maximum size in bytes for a tabl...

2019-05-20 22:02:11 3285 1

原创 Java中的调用栈的获取以及在Spring Aop中的应用

最近Spring应用时候接触到了一个Pointcut类叫做org.springframework.aop.support.ControlFlowPointcut,一个根据调用逻辑指定JoinPoint的形式,例如有方法method(),当classA实例调用需要织入逻辑,classB实例不需要织入逻辑增强,此时就可以使用该PointCut。继承结构如下:了解ControlFlowPo...

2019-05-18 11:08:56 711

原创 Java枚举类型在RPC调用时由于版本不一致遇见的问题

场景 一次业务联调测试时候发现,客户端以RPC方式调用服务提供方执行作业,作业类型存在多种,作业类型的区分使用的是Java枚举类表示,在每次调用服务接口时候传入枚举值以表示要执行的作业类型。 问题发现 进行联调测试时候发现每次客户端传入的类型与服务提供方真实执行的作业类型不匹配,便开始进行寻找原因!当时怀疑是服务提供方的业务代码判断逻辑存在问题,经过查看服务提供方代码...

2019-04-01 20:36:28 1587

原创 Java中多层异常包裹时候获取最底层的最真实异常-分析Java异常栈

示例代码:import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;class AudienceLimitExcption exten...

2019-03-28 16:49:03 1803

原创 记录一次在工作中使用的设计模式-策略模式

本文稍微涉及一点quartz与业务的东西,请耐心看下去,下面开始。 工作中由于新需求的支持,需要在组内其他工作的模块中添加新需求,这里面简化一下需求场景如下:线上系统中有一个定时调度执行系统,主要实现是基于quartz-schduler完成的,没有太多值得说的东西,都是一些常见的业务逻辑就不描述这个简单的定时调度系统了。需求是什么呢?需求是线上有一个JobGroup里面含有大量Job,...

2019-02-25 10:03:09 192

原创 记一次SpringBoot启动失败且不报错的排查经历

之前组内开发迭代多个版本偶尔出现此问题,然后组内同学也没有从根本上去排查问题,由于当时比较忙着开发跟进进度也就没来的及追究此问题。本次又是组内同学添加一个监控的类库之后添加一些跟监控有关的配置之后Push代码到了远程git仓库;随后我pull下来代码进行merge之后便无法启动而且控制台很干净不报错,很郁闷。下面描述一下排错分析过程“”1:多次启动排查配置错误并没有解决问题,只好进行debug...

2019-02-21 18:17:02 7582

原创 谁说Java中的字符串是不可变的值?只要想变还是可以变的!

经常面试会问到说说为什么String类型是不可以变的?可能很多人第一反应就是因为是final呀!其实个人感觉这个问题很宽泛,导致很多人可能第一反应不知道具体想回答哪一点?1: 为什么String是不可以变的?个人理解并不是不可以变,而是JDK的String类型没有提供可以修改String值的方法而已,相反StringBuilder与StringBuffer就提供了相应...

2019-02-18 15:11:43 360

原创 MySQL中的GROUP BY修饰符WITH ROLLUP

MYSQL中的GROUP BY可以添加WITH ROLLUP 修饰符,ROLLUP含义是卷起,在MYSQL中是进行统计格外的汇总信息。WITH ROLLUP可以让你在一个QUERY中进行更多LEVEL的数据分析,例如表结构:CREATE TABLE sales( year INT, country VARCHAR(20), product VARCHAR(32...

2019-01-21 19:54:15 560

原创 MySQL中的Group By是否允许SELECT非聚合列的总结

样例数据:数据库表结构:CREATE TABLE `student` ( `sno` varchar(20) NOT NULL, `sname` varchar(20) DEFAULT NULL, `ssex` varchar(20) DEFAULT NULL, `sage` int(11) DEFAULT NULL, `sdept` varchar(20) DEFA...

2019-01-21 18:57:57 6262 1

天津大学周伟状态压缩论文

信息学发展势头迅猛,信息学奥赛的题目来源遍及各行各业,经常有一些在 实际应用中很有价值的问题被引入信息学并得到有效解决。然而有一些问题却被 认为很可能不存在有效的(多项式级的)算法,本文以对几个例题的剖析,简述状 态压缩思想及其应用。

2018-09-14

java网络编程第四版源码

java网络编程第四版源码

2017-04-04

javartisan的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除