自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 【Spring Boot 如何初始化内置Tomcat容器的?】

Spring Boot如何初始化内置Tomcat容器的?

2021-12-01 15:52:37 803

原创 Nacos服务注册流程源码剖析

2021-10-21 15:25:58 188

原创 HashMap源码剖析

final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] tab; Node<K,V> p; int n, i; if ((tab = table) == null || (n = tab.length) == 0) n = (tab = resize())....

2021-10-13 15:42:03 164

原创 三个线程交替顺序打印ABC

使用ReentrantLock和Condition实现 public static class ABC_Runnable implements Runnable{ //需要打印的字符 private final char word; //lock对象 private final Lock lock; //当前任务condition private final Condition currentCondition; //当前任务执行完.

2021-08-20 17:36:22 159

原创 Eureka注册中心源码解析

Eureka Server 启动源码剖析Eureka Server 服务故障源码剖析Eureka Server 自我保护机制源码剖析Eureka Client 启动源码剖析Eureka Client 服务注册源码剖析Eureka Client 服务下线源码剖析Eureka Client 拉取服务注册表源码剖析Eureka Client 拉取服务续约源码剖析...

2021-06-08 18:21:02 77

原创 Double Check Lock 为什么要用volatile 关键字?

Double Check Lock 为什么要用volatile 关键字?话不多少上代码如果不加volatile关键字会导致什么问题?volatile解决了什么问题?合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入话不多少上代码public

2021-06-04 11:14:16 284

原创 SQL分组后取每组的前几行数据

SQL分组后取每组的前几行数据现在有这么个场景,有一个交易的记录表,记录所有商品的购买记录,现在求出每个商家销量最高的两个商品。建表准备数据:CREATE TABLE detail( id bigint(20) AUTO_INCREMENT PRIMARY KEY, user_id bigint(20) COMMENT("商户id") practice_id bigint(20) COMMENT("商品id"), money bigint(20) COMMENT("消费金额"))INSE

2021-02-04 00:33:21 1766 1

原创 CPU缓存一致性协议MESI小记

刚学完MESI协议,把自己的理解记录一下,方便以后复习。我总结的有点乱,看这位大牛写得,讲的特别清楚:传送门:CPU缓存一致性协议MESI1.首先cpu的处理速度已经远大于I/O的速度,所以需要对cpu增加高速缓存,以减少对内存的依赖,但是这会导致各个cpu中的高速缓存数据不一致2.为了解决不一致的状态,我们就规定了MESI协议,已解决各个CPU中的高速缓存数据不一致的问题。3.MESI...

2020-03-06 19:56:31 234 1

原创 AnnotationConfigEmbeddedWebApplicationContext@5f395ce1 has been closed already异常

项目运行之后使用tbscheudle扫描任务结果报异常,异常信息:java.lang.IllegalStateException: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5f395ce1 has been closed already at org.spri...

2020-01-10 13:03:36 7343 2

原创 正则表达式删除所有注解

消除所有注解 : \/\*[\s\S]*?\*\/ 其中[\s\S]*表示匹配任意字符 ?为非贪婪模式,匹配到第一个*/结束

2019-12-26 10:50:22 440

原创 Spark读写操作之mongoDB

Spark读写操作在官方文档上的实例已经说明的很清楚,但是没有关于mongo的读写操作,看了一些资料发现mongo已经做了兼容spark的读写工具包,这里我简单记录一下入读mongo的代码如下:object ReadMongo { val resultalltotal = "bigdata.resutlalltotal" def main(args : Array[String]):...

2019-11-22 17:14:14 716

原创 Spark Streaming单词统计,并装换成Spark Sql

1. 先启动nc,监听9999端口这里我是使用nc在windows系统上开启的服务端,使用命令:nc -lp 99992. 编写Spark Streaming代码object DF_SQL_InStreaming { def main(args: Array[String]): Unit = { val conf = new SparkConf().setMaster("lo...

2019-11-21 11:39:20 129

原创 HashMap的原理和底层源码

HashMap本质就是数据和链表的结合,一条数据插入进来根据key取的Hash值,然后计算出来数据的位置(哈希槽的位置),如果有多个key在同一个哈希槽下就用链表将他们串起来,新插入的放在首。...

2019-11-15 10:28:45 195

原创 mongodb更新一条数据,如果不存在则插入

语法col.update(key, data, {upsert:true,multi:false});测试数据模型记录每个员工每天的操作次数{ "_id": ObjectId("5dc8d777347c0000ca000505"), "name": "tom", "company": "1001", "operands": 0, "operDate...

2019-11-11 14:39:23 5719

原创 mongodb的原子操作findAndModify

MongoDB原子操作mongodb不支持事务,所以在需要特别事务的项目中不建议使用mongo数据库。mongodb无法保证数据的完整性。但是mongodb支持许多的原子操作例如ducoment的save、update、delete等操作。数据模型在博客上看到一个能很好体现findAndModify操作原子性的数据模型Product,如下:{ "_id":1, "product...

2019-11-11 10:38:49 840

转载 Session和Cookie

有位老哥写的已经很好的,直接报传送门https://www.cnblogs.com/ITCodeMonkey/p/7874343.html[传送门]

2019-10-28 09:03:14 81

转载 ETL讲解,到底什么是ETL

前述:ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。 ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时间,ETL设计的好坏直接关接到BI项目的成败。ETL的设计分三部分:数据抽取、数据的清洗转换、数据的加载。在设计ETL的时候我们也是从这三部分出发...

2019-10-25 11:36:34 2069

原创 Jstorm消费MQ保证每个bolt至少处理一次

Jstorm消费MQ保证每个bolt至少处理一次我们在使用Jstorm做流计算的时候,可能会遇到一种情况:处理单元树下有某一个bolt处理失败,但是其他的子bolt处理成功了。我们还需要这个失败的bolt重新处理一边该数据,如下图所示:这里我们的Spout在fail()方法中做消息重发处理,Bolt1中我们会存储原数据到mongo表中作为防止重复消费的去重表,下面Bolt2、Bolt3、Bol...

2019-10-24 09:52:42 288

转载 关于volatile关键字

1. volatile关键字有什么用?就我理解的而言,被volatile修饰的共享变量,就具有了以下两点特性:保证了不同线程对该变量操作的内存可见性;禁止指令重排序2.什么是内存课件?重排序又是怎么回事?Java虚拟机规范试图定义一种Java内存模型(JMM),来屏蔽掉各种硬件和操作系统的内存访问差异,让Java程序在各种平台上都能达到一致的内存访问效果。我们知道JMM规...

2019-10-16 17:20:07 97

原创 Kafka保证数据不重复不丢失

Kafka保证数据不重复不丢失查看了很多的博客在这里简单总结一下,Kafaf数据缺失和重复主要考虑与生产者和消费者连个方面:情况解决消费者重复消费创建去重表消费者丢失数据关闭自动提交offset,处理完之后受到移位生产者重复发送由消费者建去重表解决生产者丢失数据分两种模式来解决,同步模式和异步模式同步模式:配置=1(只有Leader收到,-1...

2019-10-11 22:46:08 473

原创 使用Log4j将程序日志实时写入Kafka

很多应用程序使用Log4j记录日志,如何使用Kafka实时的收集与存储这些Log4j产生的日志呢?一种方案是使用其他组件(比如Flume,或者自己开发程序)实时监控这些日志文件,然后发送至Kafka。而另外一种比较便捷的方案是使用Kafka自带的Log4jAppender,在Log4j配置文件中进行相应的配置,即可完成将Log4j产生的日志实时发送至Kafka中。本文以Kafka0.8.2为...

2019-09-10 10:58:18 707

原创 Spark Streaming 消费kafka 将offset存储到redis中做故障恢复

文章转自:http://lxw1234.com/archives/2018/02/901.htm故障恢复如果Spark Streaming程序因为停电、网络等意外情况终止而需要恢复,则直接重启即可;如果因为其他原因需要重新计算某一时间段的消息,可以先删除Redis中对应时间段内的Key,然后从原始日志中截取该时间段内的消息,当做新消息添加至Kafka,由Spark Streaming程序重...

2019-09-10 10:53:59 564

转载 Spark解决数据倾斜的八种方法

方案一:使用Hive ETL预处理场景:若Hive表中数据不均匀,且业务中会频繁用Spark对Hive表分析;思路:用Hive对数据预处理(对key聚合等操作),原本是Spark对Hive的原表操作,现在就是对Hive预处理后的表操作;原理:从根源解决了数据倾斜,规避了了Spark进行Shuffle类算子操作。但Hive ETL中进行聚合等操作会发生数据倾斜,只是把慢转移给了Hive ETL...

2019-09-06 16:39:50 386

原创 logback配置文件样本,logback.xml

记录一下logback.xml 配置文件,以后方便找<?xml version="1.0" encoding="UTF-8"?><configuration> <!--定义日志保存的路径--> <property name="LOG_HOME" value="G:/logs" /> <!--定义一个控制台输出...

2019-09-02 17:00:56 167

原创 分布式系统事务,Try-Confirm-Cancel

有人已经写得非常好的,分享一下https://cloud.tencent.com/developer/article/1351445

2019-09-02 10:06:17 584

原创 Java读取yml配置文件到map中

public class App { public static Map<String, Object> conf = new HashMap<String, Object>(); public static void main(String[] args) throws IOException { URL url = App.class...

2019-08-29 17:39:32 8553

原创 JAVA项目根据相对路径读取配置文件

创建一个我们要读取的配置文件创建resources文件夹,在文件夹下创建配置文件conf.yml.配置maven的pom文件,使项目编译时编译配置文件到classpath路径下在build标签下加入如下:<build> <resources> <resource> <!-- 配置文件目录 --> <d...

2019-08-29 17:20:07 1206

原创 Apache Phoenix 使用小记

Apache Phoenix 使用小记phoenix建表语句在hbase的中namespace为bigdata中创建一个user表,将id和createTime作为主键ROWKEY,对边进行加盐分为10个Region,对数据进行压缩存储使用snappy的压缩方式rowkeyidnameagephonebirthdaycreateTimetype加盐码,1,...

2019-08-27 14:21:48 410

原创 Spark Streaming :输出操作/持久化操作

Output Operations on DStreamsDstream允许将数据输出到外部系统的文件系统中(hdfs:// file:/// 等),只需要对DStream调用如下方法:Output OperationMeaningprint()在运行streaming应用的spark节点上,打印该DStream上每个数据块的前10个元素saveAsTextFi...

2019-08-23 15:37:12 401

原创 mongodb的aggregate()操作

db.collection.aggregate([ {$match:{day:'2019-03-20'}}, {$group: {_id: {pk:'$createSiteCode',pkName:"$createSiteCodeName"}, //计算数据总量,相当于num = num + 1 num:{$sum:1}, ...

2019-06-20 14:10:45 683

原创 Quartz以Mongo为持久层,对任务进行修改时报WriteConcernErro{code=64, message='waiting for replication timed out at'}

出现问题的场景首先做项目的时候我们使用的mongo作为quratz的持久层。定时任务这个模块在测试环境的时候,操作和修改数据都没有一点问题,但是一放到线上环境就变得特别卡,有的时候前端就直接卡住,一直等待接口返回。无奈之下只能从新刷新页面这时发现任务状态已经修改完成,于是就等着定时执行时间到了看一下时候能正常实行。几分钟以后,果然定时任务没有正常执行。查错首先去服务器,查看日...

2019-06-20 13:54:38 1048

转载 mysql全量备份、增量备份实现方法

有人写好的我就不啰嗦了哈,直接占文章链接:https://blog.csdn.net/gb4215287/article/details/77717664

2019-03-25 17:31:47 1504

原创 SpringBoot上使用Qruatz并将调度信息储存到Mongo中

SpringBoot上使用Qruatz并将调度信息储存到Mongo中这篇博客主要说明怎么将qruatz任务信息储存到mongodb中,具体qruatz不进行讲解。做数据平台的时候有一个定时任务的需求,有关定时任务Qruatz肯定就是不二人选了,但是因为我们这边使用的都是Mongo,所以Qruatz的调度信息也只能储存到Mongo中,但是不巧,Qruatz的团队没有做以Mongo作为jobSto...

2019-03-14 15:05:32 604 2

原创 SringBoot异常 Failed to load ApplicationContext

SpringBoot进行单元测试时遇到的错误报错信息: java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(Defa...

2018-11-09 10:32:19 2835

空空如也

空空如也

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

TA关注的人

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