自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

px的博客

我的java笔记

  • 博客(31)
  • 收藏
  • 关注

原创 Springboot-如何优雅的进行参数校验

日常搬砖中经常遇到需要对接口方法进行校验,除了常规的 if 条件判断,是否还有更加优雅的处理方法?我们经常从公众号或者其他博文上看到的可能就是 spring-boot-starter-validation 提供的方法,今天主要对这个操作进行详细讲解,提供可以实操的方案。

2024-03-08 14:51:45 905

原创 JDK1.8之后的版本变更

在2011年JDK1.7版本发布,因其引入了许多新功能、改进和性能优化,大行其道;直至2014年JDK 1.8 版本开启了Lambda表达式实现函数式编程,引入Stream API,新的日期和时间API等特性,使Java编程语言更加现代化,也提供了更多的工具和语言特性,让java 开发者开启了更加简洁的代码编写风格,使得这一个稳定版本得到了广大开发者的喜爱,即使当前JDK版本发布到21,但是1.8任然是大部分程序员的最爱。

2024-02-19 14:45:43 1043

原创 Elastichsearch--dsl

// 查询所有GET indexName/_search{ "query": { "match_all": { } }}//排序分页GET /pigg/_search{ "query": {"match_all": {}}, "sort": [ { "age": { "order": "desc" } ...

2020-04-26 17:06:39 203

原创 中间件——RocketMQ

在分布式系统中 ,消息中间件已经是古老的存在了优点:异步、解耦、削峰缺点:系统的复杂度上升、重复消费消息、消息的顺序消费问题、分布式事务问题、消息堆积的问题RocketMQ 是一个 队列模型 的消息中间件,具有高性能、高可靠、高实时、分布式 的特点。它是一个采用 Java 语言开发的分布式的消息系统,由阿里巴巴团队开发,在2016年底贡献给 Apache,成为了 Apache 的一个顶...

2020-04-16 17:17:14 691

原创 分布式——限流

在开发分布式高并发系统时有三把利器用来保护系统:缓存、降级、限流缓存的目的是提升系统访问速度和增大系统处理容量 降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开 限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队等待、降级等处理限流可以与网关进行结合,又可以分为集群限流(服务限流...

2020-04-15 16:34:55 414

原创 Canal监控数据库数据变化

最近有需求需要监控数据库mysql里某些表的数据变化,来做相应的业务变化,采用了 canal+kafka 的技术架构。官网github指导很全面原理:将canal server接收到的binlog数据直接投递到MQ, 目前默认支持的MQ系统有kafka 和RocketMQ安装:zk安装简单,就是解压修改配置zoo.cfg, 主要是端口(默认2181),log 和data 目...

2020-01-09 17:05:31 1836

原创 Spring-Kafka

Spring-Kafka 与 SpringBoot 集成最近项目遇到需要监控mysql数据库变化 , 需要及时更新es索引的问题 , 对于日常后台操作 , 数据量少直接用如下代码就行,但是遇到数据清洗后的百万数据更新就很慢了 @KafkaListener(topics = { "dyly_vc_project" }) public void handleProject(Consume...

2019-08-30 16:45:59 474

原创 设计模式——策略模式

策略模式:定义了不同的算法,分别封装起来,让他们可以互相替换,即使算法变化了,也不会影响到使用算法的用户;简单解释:很像一个计算器,我输入两个数字,然后按加号你就给我计算和,我按乘法你就给我计算乘积,内部算法客户端不关注,我就告诉你我想做怎样的计算,你去给我计算吧!和工厂方法有一点像,应用场景:立马就想到解除多个if else if 的场景了//定义策略,提供一个方法供具体策略俩实现...

2019-08-21 11:38:24 81

原创 Lombok常用注解和功能

依赖pom<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.20</version> <scope>provided</scope>...

2019-03-20 11:09:03 372

原创 Redis

什么是RedisRedis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。与Memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件...

2019-01-27 11:55:46 1778

原创 Kafka

Kafka概述官网:http://kafka.apache.org/kafka是一套开源的消息系统,由scala写成。支持javaAPI的。kafka最初由LinkedIn公司开发,2011年开源。2012年从Apache毕业。是一个分布式消息队列,kafka读消息保存采用Topic进行归类;发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka...

2019-01-21 20:44:52 176

原创 Storm

什么是StormStorm为分布式实时计算提供了一组通用原语,可被用于“流处理”之中,实时处理消息并更新数据库。这是管理队列及工作者集群的另一种方式。 Storm也可被用于“连续计算”(continuous computation),对数据流做连续查询,在计算时就将结果以流的形式输出给用户。它还可被用于“分布式RPC”,以并行的方式运行昂贵的运算。Storm可以方便地在一个计算机集群中编写...

2019-01-19 17:57:55 128

原创 Azkaban

Azkaban概述Azkaban是一个分布式工作流管理器,在LinkedIn上实现,以解决Hadoop作业依赖性问题。我们有需要按顺序运行的工作,从ETL工作到数据分析产品。特点:给用户提供了一个非常友好的可视化界面-&gt;web界面 非常方便的上传工作流-》打成压缩包 设置任务间的关系 权限设置 模块化 随时停止和启动任务 可以查看日志记录与Oozie对比和Oozie...

2019-01-19 11:58:21 203

原创 大数据计算框架Flink入门

Flink概述官网:http://flink.apache.org/Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。Flink特点与其它组件集成!flink是分布式系统,需要计算资源才可执行程序。flink可以与常见的集群资源管理器进行集成(Hadoop Yarn,...

2019-01-19 10:36:45 1355 2

原创 ZooKeeper

zookeeper简介ZooKeeper是一种集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务。所有这些类型的服务都以分布式应用程序的某种形式使用。每次实施它们都需要做很多工作来修复不可避免的错误和竞争条件。由于难以实现这些类型的服务,应用程序最初通常会吝啬它们,这使得它们在变化的情况下变得脆弱并且难以管理。即使正确完成,这些服务的不同实现也会在部署应用程序时导致管理复杂性。...

2019-01-13 12:43:28 108

原创 数据采集引擎Sqoop

Sqoop概述官网 http://sqoop.apache.org/场景      传统型缺点,分布式存储。把传统型数据库数据迁移。      Apache Sqoop(TM)是一种用于在Apache Hadoop和结构化数据存储(如关系数据库)之间高效传输批量数据的工具 。数据交换:Oracle &lt;---&gt; Sqoop &lt;---&gt; HDFS、HBase、H...

2019-01-12 11:39:08 636

原创 数据采集引擎:Flume

Flume概述官网地址  http://flume.apache.org/日志采集工具:Flume是一种分布式,可靠且可用的服务,用于有效地收集,聚合和移动大量日志数据。它具有基于流数据流的简单灵活的架构。它具有可靠的可靠性机制和许多故障转移和恢复机制,具有强大的容错能力。它使用简单的可扩展数据模型,允许在线分析应用程序。flume架构source:数据源        ...

2019-01-12 10:55:41 497

原创 数据分析引擎:Pig

Pig简述Pig是一个用来处理大规模数据集的平台,由Yahoo!贡献给Apache Pig可以简化MapReduce仸务的开发 Pig可以看做hadoop的客户端软件,可以连接到hadoop集群迕行数据分析工作 Pig方便不熟悉java的用户,使用一种较为简便的类似二SQL的面向数据流的语言pig Latin迕行数据处理 Pig Latin可以迕行排序、过滤、求和、分组、关联等常用操作...

2019-01-12 10:05:12 521

原创 数据分析引擎:Hive

什么是Hive定义了一种类SQL语言HiveQL。可以看成是仍SQL到Map-Reduce的映射器Hive 将元数据存储在数据库中(metastore),目前只支持 mysql、derby。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成(包含 * 的查...

2019-01-10 21:15:42 266

原创 HBase

HBase的表结构和体系结构HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子...

2019-01-08 21:30:10 175

原创 MapReduce

YARN的体系结构主从结构:ResourceManager、NodeManager调度MapReduce任务过程客户端请求执行任务连接ResourceManager去创建任务id(JobClient.java)  Yarn的ResourceManager接受请求分配资源和任务  将任务文件保存到HDFS(JobClient.java)获取元信息(数据和任务的元信息), 提交任务...

2019-01-07 21:15:32 185

原创 HDFS的集群搭建

HDFS的HA一、集群的规划Zookeeper集群:    192.168.223.112 (bigdata112)    192.168.223.113 (bigdata113)    192.168.223.114 (bigdata114)Hadoop集群:    192.168.223.112 (bigdata112)   NameNode1      ResourceMa...

2019-01-06 21:06:45 162

原创 大数据之环境准备

Linux准备 : Linux操作系统: centos 7  64位 Vmware版本不能太低,12版本 网卡:虚拟机安装推荐“NAT” ============Linux网卡配置文件详解===============vi /etc/sysconfig/network-scripts/ifcfg-ens33 (eth0、ens67777)DEVICE=eth0 #指出设备名称...

2019-01-06 17:08:11 221

原创 HDFS

一、HDFS的体系结构1、NameNode:主节点       职责:管理维护HDFS   维护了两个非常重要的文件: edits文件  -----&gt; 记录操作日志(事务日志)  fsimage文件 ----&gt; HDFS的元信息(映像文件)         HDFS操作日志:edits文件   位置:find . -name edits* 最新的操作日志:...

2019-01-06 15:37:14 950

原创 设计模式——代理(静态代理,动态代理,Cglib)

静态代理三要素:共同接口  真实对象 代理对象功能:对原有功能以切面形式进行拓展而不改变原来的真实对象,但是当要拓展的功能比较多处理就比较麻烦;//共同接口public interface TaskInterface { String doJob(String content);}//真实对象public class RealWorker implements TaskInterface{...

2018-04-11 16:53:34 176

原创 Volatile

Volatile的成员变量,能够在线程之间保持可见性,能够被多线程同时读,并且保证不会读到过期的值,而且修改的该变量值也会被其他线程及时读取到,保证同步数据的可见性是其主要解决的问题;java内存分为工作内存和主存工作内存:即java线程的本地内存,是单独给某个线程分配的,存储局部变量等,同时也会复制主存的共享变量作为本地                 的副本,目的是为了减少和主存通信的频率,提...

2018-03-28 10:20:26 108

原创 设计模式——单例模式

最简单的两个单例模式:饿汉式与懒汉式所有单例模式的构造方法都需要私有化,禁止被实例化,都是通过内部提供方法来给出一个实例,由于不能实例化,该类提供实例的方法必须是静态方法;饿汉式:类加载时就初始化,很是急切,没有进行使用就new对象,内存浪费,但是没有锁,效率高,还是线程安全的;public class Singleton { /* 私有构造方法,防止被实例化 */...

2018-03-27 11:34:33 95

原创 设计模式——工厂模式

所有工厂以造枪功能模拟普通工厂方法简易理解:一个造枪厂能造枪,给什么材料,就用对应的机器造什么枪,枪都能发射子弹;工厂造的所有枪都能打子弹public interface Gun { public void shot(); } 枪厂里有造AK和M4的机器来造对应的枪public class AK implements Gun{ @Override publ...

2018-03-26 17:55:41 118

转载 理解类加载机制

原文链接http://hammer.coding.me/2016/10/26/jvm-1/原文链接http://blog.csdn.net/lixingtao0520/article/details/72927775原文链接http://blog.csdn.net/jintao_ma/article/details/51353453在开始正文之前,我们先看两张图 先看一下java程序的执行流程图 ...

2018-03-06 17:58:19 204

转载 Java开发中的23种设计模式详解(转)

一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式和线程...

2018-02-28 09:55:00 161

原创 Oracle中常见的一些sql

字段添加注释comment on table 表名 is 'xxxxxx';comment on column 表名.字段名 is 'xxx';唯一索引约束create unique index 索引名 on 表名(列);主键约束alter table 表名 add constraint 约束名 primary key (列) using index 索引名;创建索引create index 索...

2018-02-27 14:50:09 251

空空如也

空空如也

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

TA关注的人

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