自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (4)
  • 收藏
  • 关注

原创 数据结构:使用Stack完成表达式计算逻辑

给出如下串:sum(sum(sum(1,2),avg(3,5)),avg(avg(6,8),7)), 计算结果(保证输入任意上述接口均能输出正确结果)

2023-12-13 15:47:55 133

原创 Reactive思考

web flux、web mvc及spring web关系

2023-01-07 14:48:59 518

原创 Spring: Transactional记录

Spring Transactional

2023-01-04 18:23:13 468

原创 单元测试:脱离Springboot环境加载属性文件样例转至元数据结尾

背景单测的例子仅涉及属性文件的加载,不涉及数据库等,所以不希望启动整个spring boot环境样例 代码如下: // 脱离springboot启动环境如何加载属性文件 @Import(value = {TestProperties.class}) @EnableConfigurationProperties @ContextConfiguration(initializers = ConfigFileApplicationContextInitia

2022-03-10 16:46:37 797

原创 java web:Broken Pipe问题排查始末

声明首次,查找到博客等材料,只有 BrokenPipe错误终极解释,比较靠谱,但是实际的操作中,发现表现并不一样,具体的可见该博客的评论,或者自己实现下。接下来就是尝试,不过事先声明,不要在windows os上测试,该问题无法完全复现,均会报“Connection reset by peer: socket write error”。结论好了,不废话,上结论,原因是:socket的client单方面关闭(不论是client所在进程崩溃还是timeout)后,且已经向server发送了RST

2022-02-16 19:17:24 2104

转载 大数据组件之Azkaban简介

一、Azkaban 介绍1.1 背景一个完整的大数据分析系统,必然由很多任务单元 (如数据收集、数据清洗、数据存储、数据分析等) 组成,所有的任务单元及其之间的依赖关系组成了复杂的工作流。复杂的工作流管理涉及到很多问题:如何定时调度某个任务? 如何在某个任务执行完成后再去执行另一个任务? 如何在任务失败时候发出预警? ......面对这些问题,工作流调度系统应运而生。Azkaban 就是其中之一。1.2 功能Azkaban 产生于 LinkedIn,并经过多年生产环境的检验,它具

2021-11-30 12:51:26 793

原创 大数据组件之Sqoop简介

简介Sqoop 是一个常用的数据迁移工具,主要用于在不同存储系统之间实现数据的导入与导出: 导入数据:从 MySQL,Oracle 等关系型数据库中导入数据到 HDFS、Hive、HBase 等分布式文件存储系统中; 导出数据:从 分布式文件系统中导出数据到关系数据库中。 其原理是将执行命令转化成 MapReduce 作业来实现数据的迁移,如下图:初衷Apache Sqoop(TM) 是一种工具,旨在有效地在Apache Hadoop和结构化数据存储(例如关系数据库)之.

2021-10-31 13:34:41 1374

原创 大数据组件之日志采集组件:Flume

简介Apache Flume 是一个分布式、高可靠、高可用的系统,用于有效地收集、聚合大量日志数据,并将其从许多不同来源移动到集中式数据存储。Apache Flume 的使用不仅限于日志数据聚合。由于数据源是可定制的,因此 Flume 可用于传输大量事件数据,包括但不限于网络流量数据、社交媒体生成的数据、电子邮件消息以及几乎任何可能的数据源。Apache Flume 是 Apache 软件基金会的顶级项目。环境要求java运行时环境:jdk1.8及以上 内存:为sources, cha

2021-09-29 08:51:49 449

原创 性能排错大全

记录os、中间件等性能问题排查方式,以此文章作为工具箱

2021-09-16 07:12:45 100

转载 LSM Tree学习

LSM(Log Structured Merge Trees ) 笔记 - 西北偏北UP - 博客园一、大幅度制约存储介质吞吐量的原因 首先抛出结论。无论任何存储介质(不管是机械硬盘还是SSD,抑或是内存)的顺序访问速度都远远高出随机访问的速度。 二、传统数据库的实现机制 传统数据库,比如Mysqlhttps://www.cnblogs.com/niceshot/p/14321372.html...

2021-09-10 17:29:33 96

转载 linux问题排查之性能问题排查指南

主要是uptimedmesg | tailvmstat 1mpstat -P ALL 1pidstat 1iostat -xz 1free -msar -n DEV 1sar -n TCP,ETCP 1top详情可见:https://netflixtechblog.com/linux-performance-analysis-in-60-000-milliseconds-accc10403c55

2021-09-06 13:54:06 137

原创 大数据组件之HBase简介

HBase 是一个构建在 Hadoop 文件系统之上的面向列的数据库管理系统。产生背景要想明白为什么产生 HBase,就需要先了解一下 Hadoop 存在的限制?Hadoop 可以通过 HDFS 来存储结构化、半结构甚至非结构化的数据,它是传统数据库的补充,是海量数据存储的最佳方法,它针对大文件的存储,批量访问和流式访问都做了优化,同时也通过多副本解决了容灾问题。但是 Hadoop 的缺陷在于它只能执行批处理,并且只能以顺序方式访问数据,这意味着即使是最简单的工作,也必须搜索整个数据集,无法实现

2021-08-31 20:14:42 384

转载 大数据组件之Flink简介

一、Flink 简介Apache Flink 是一个分布式的流处理框架,它能够对有界和无界的数据流进行高效的处理。Flink 的核心是流处理,同时它也能支持批处理,Flink 将批处理看成是流处理的一种特殊情况,即数据流是有明确界限的。这和 Spark Streaming 的思想是完全相反的,Spark Streaming 的核心是批处理,它将流处理看成是批处理的一种特殊情况, 即把数据流进行极小粒度的拆分,拆分为多个微批处理。Flink 有界数据流和无界数据流:Spark Streamin

2021-07-30 08:06:12 1122

原创 大数据组件之Storm简介

简介Storm是一个开源的分布式实时计算框架。特点支持水平横向扩展 高容错性,通过ack机制每个消息都不丢失(好奇该特性如何实现) 处理速度快,每个节点每秒处理超过一百万个元组(tuples)其他各编程语言支持友好 支持本地模式 支持图形化界面管理与其他计算框架比较MapReduce(Hadoop家族组件):批处理,适合海量离线处理场景 Spark Streaming:并非真正意义上的流处理,而是微批处理,对数据流进行极小粒度的拆分,近似达到流处理的效果(微分原理) Fl

2021-06-30 20:07:05 2552 1

原创 linux问题排查之定位问题进程原因

经常遇到这种情况,早晨起来,打开电脑,习惯性打开top看下机器状态,发现内存和cpu负载特别高,而且Command栏赫然写着“Python3”!这就让人摸不着头脑了,如何定位是什么程序呢?下面给展示一般的操作思路:拿到该进程号pid 通过ps查看应用:ps aux|grep pid ipcc 281020 39.5 2.6 1025560 425540 ? Sl 01:18 341:29 /usr/bin/python ./xxx.py 查看进程中 线程的.

2021-06-17 09:54:39 320

原创 大数据组件之Spark简介

简介Apache Spark是一个统一的分析引擎,用于大规模数据处理。相对于 MapReduce 的批处理计算,Spark 可以带来上百倍的性能提升,因此它成为继 MapReduce 之后,最为广泛使用的分布式计算框架。它为Java,Scala,Python和R以及支持一般执行图的优化引擎提供高级API。它还支持丰富的高级工具集,包括SQL和结构化数据处理的Spark SQL,MLLIB用于机器学习,图形处理的Graphx,以及用于增量计算和流处理的结构化流。架构Spark应用程序在

2021-05-31 18:48:54 280 1

原创 Feign:如何实现异步调用

背景希望将http的调用由同步等待改为异步,仍使用feign的便捷。使用feign理由本质上其实feign就是将httpclient常用的操作进行简单封装,且屏蔽底层的httpclient,无感知具体的client实现,轻松完成具体client的替换解决方案feign在10.8版本后提供了Async接口(feign-github),如下:demo代码实现 接口编写 publicinterfaceOriginFeignClient { ...

2021-05-11 14:58:56 14791 3

原创 Spring:单测及各种问题集锦

如何脱离Spring boot环境(非@SpringbootTest)加载application.properties/yml import org.junit.Assert;import org.junit.jupiter.api.Test;import org.junit.jupiter.api.extension.ExtendWith;import org.springframework.beans.factory.annotation.Autowired;import org.sprin

2021-05-10 21:01:57 554

原创 架构师必备

选型相关:缓存相关:Redis vs Ehcache vs Memcacached

2021-05-10 10:31:20 104

原创 Spring:无法在类内使用this完成@Async、@Transactional、@Cacheable功能问题解决

问题基于spring-aop的proxy实现,无法在类内使用this完成@Async、@Transactional、@Cacheable注解的功能。原因基于proxy的方式是在spring容器初始化过程中,通过继承或实现相应对象的类/接口,形成新的代理对象,并将原始对象进行包装,并在调用前后插入一些point,完成aop的功能,而this方式不会经过proxy,相当于原始对象的直接调用。解决方案解决方式,大致有以下几种:不使用this,从spring容器上下文中获取被代理的对象,替换

2021-05-06 20:07:01 673 1

原创 Hadoop组件之YARN架构及工作原理

YARN介绍A framework for job scheduling and cluster resource management.一个任务调度和集群资源管理框架Apache YARN是Hadoop2.0引入的集群资源管理系统,用户可以将各种服务框架部署在YARN上,由YARN进行统一管理和资源分配。架构YARN的基本思想是将资源管理和作业调度/监视的功能拆分为单独的守护程序,也就是拥有一个全局ResourceManager(RM)和每个应用程序的ApplicationMaster

2021-03-31 13:42:43 287 1

原创 Hadoop组件之MapReduce作用及设计原理

介绍设计初衷架构

2021-02-28 17:34:12 1930

原创 ubuntu下jdk安装及版本切换

操作系统:Ubuntu 如何查看jdk版本:java -version 如何查看jdk安装位置: readlink -f $(which java) 如何安装多jdk版本 安装系统自带openjdk 更新软件源 sudo apt update 安装 sudo apt install openjdk-8-jdk 多版本切换:多个版本之间的切换,可以通过修改是/etc/alternative

2021-02-24 20:50:15 264

原创 Hadoop组件之HDFS作用及设计原理

介绍Hadoop Distributed File System (HDFS™): A distributed file system that provides high-throughput access to application data.HDFS是 Hadoop 下的分布式文件系统,具有高容错、高吞吐量等特性,可以部署在低成本的硬件上。设计初衷硬件故障容错性:检测故障并从故障中快速自动恢复是HDFS的核心架构目标 流式数据访问友好性:首要能力是提高数据的吞吐率而非低延迟.

2021-01-30 15:40:22 1643 3

原创 小白学大数据之开篇

为了拓宽眼界,学习这个系列的想法由来已久,借着年初立flag的机会,决定将此事提上日程。接下来,将从纯小白的第一视角,开始大数据的基本认知体系构建,每个部分的学习方式均按why-how-what的思路进行展开。先列出第一步学习大纲初识大数据之大数据概念为何场景提出? 初识大数据之如何进行大数据体系学习 初识大数据之大数据学习路线初拟定计划列好之后,接下来开始进行各部分的逐个击破Hadoop组件之HDFS作用及设计原理 Hadoop组件之MapReduce作用及设计原理 Hadoop

2021-01-28 07:44:11 152

原创 docker操作时使用https时报错问题解决

在初次安装完docker后(本人系统Ubuntu20),未进行任何单独的配置,在对官方的docker进行拉取时没有问题,但是在拉取公司内部仓库镜像时,出现了以下问题:Error response from daemon: invalid registry endpoint https://yourOwnIp:5000/v1/: Get https://yourOwnIp:5000/v1/_ping: http: server gave HTTP response to HTTPS client. If

2021-01-20 11:11:56 1404

原创 ubuntu 20系统在截图后崩溃

linux版钉钉截了个图,系统卡死了......启动后拉了下崩溃日志崩溃日志Dec 31 13:58:48 BJ-DZ0104274 systemd[1760]: tracker-extract.service: Succeeded.Dec 31 13:58:48 BJ-DZ0104274 systemd-resolved[618]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-000

2020-12-31 14:28:30 1821

原创 Spring4.x下无法为Feign对象进行Aop增强问题始末

目录动机问题说明排错过程动机动机很简单,就是想对标注了@FeignClient的feignClient进行一些切入点的配置,实现通用日志控制。问题说明像Controller及其子处理器这类Spring自己定义的Bean没问题,对自己的实现的支持还是很完善的,但是到了feign这块,问题就很大了(另外说明一下,当前使用的Spring版本是4.x,且同样的实现,在Spring5.x中完全没问题),通用的aop切片根本无法对标识了@FeignClient的接口api进行处理!!初步

2020-11-26 16:12:37 940 6

原创 安全漏洞解决思路

安全漏洞解决思路 查找方式 通用查找 名词 说明 备注 CVE Common Vulnerabilities and Exposures 一个关于信息安全漏洞和暴露的数据字典,可以通过网址:https://cve.mitre.org/cve/search_cve_list.html,根据id或名称查询一般的漏洞及修复详情 CNNVD China Na

2020-11-19 16:28:08 242 2

原创 maven:如何上传本地jar包到私服仓库

命令详情如下:mvn deploy:deploy-file \--settings=/Applications/apache-maven-3.6.0/conf/settings-megvii.xml \ -DgroupId=org.eclipse.paho \ -DartifactId=org.eclipse.paho.mqttv5.client \ -Dversion=1.2.2 \ -Dpackaging=jar \ -Dfile=/Users/xxxxxx/Documen...

2020-09-07 11:12:15 1020

原创 Spring boot启动过程及扩展点分析

Springboot(以1.5.21版本为例)项目中,项目启动除了jvm的经典过程外,以下是Spring boot项目启动过程:org.springframework.boot.loader.JarLauncher中的main函数即为上一步jvm加载并执行的函数 编写有SpringApplication的应用主函数为其中的启动一个环节接下来跟下Spring boot启动过程【org.springframework.boot.loader.JarLauncher】:registerUrlPr.

2020-09-07 10:07:59 953

原创 jvm启动过程

以JDK8为例jvm启动过程:SelectVersion,选择jre版本(主要做jre和当前java程序是否匹配的判断) CreateExecutionEnvironment,创建jvm执行环境(确定jvm信息并做初始化工作,如选择最终的数据模型) LoadJavaVm,动态加载jvm.so共享库,将相关函数导出并初始化 ParseArguments,解析命令行参数 JVMInit,启动流程 接下来的过程在新的线程中执行 初始化jvm 加载java程序中的main函数 调用.

2020-09-07 10:04:06 273

原创 Jackson:jackson在Spring boot下的自动配置原理

jackson目前在Spring体系下主要是做messageConverter,也就是Restful请求进入微服务的反序列化,服务内部发出请求的序列化过程转换器。Springboot的autoConfigure包下有两个相关的自动配置类:JacksonAutoConfiguration和HttpMessageConvertersAutoConfiguration(JacksonHttpMessageConvertersConfiguration,GsonHttpMessageConvertersConf

2020-08-13 14:02:08 672

原创 Jackson:与fastjson对比

现有fastjson常用使用方式: 【JSON工具类】String(json)转换为具体的java对象(普通类型和复杂类型:需要使用TypeReference) // 转换为复杂对象 ObjectNotice<ObjectConf> notice = JSON .parseObject(noticeJson,newTypeReference<ObjectNotice<ObjectConf>>() { ...

2020-08-13 13:59:55 761

原创 Jackson:项目结构分析

目录1、核心modules2、datatype modules3、JAX-RS(Java API for RESTful Web Services)支持4、Data format modules5、JVM系语言支持作为java体系下标准的json函数库,目前默认被应用在spring boot中。jackson是一套用于Java和JVM平台的数据处理工具,包括流式json解析器/生成器函数库、数据绑定函数库(POJO和JSON的互转),以及用以处理Avro,BSON,CBOR,CSV,

2020-08-13 13:55:39 499

原创 Spring boot项目中排除自动配置类失败问题始末

正常情况下,在Spring boot项目中,对于多个自动配置类冲突问题,使用@EnableAutoConfiguration的exclude即可。如下,存在两个配置类构造同一dataSource:1.某包下DruidDataSourceAutoConfigSelf配置类(使用spring.factories进行的自动配置) packagecom.example.framework.autoconfigure.druid; @Configuration @Con..

2020-08-03 10:48:01 3156 2

原创 feign动态切换url方式实现

1、定义调用接口(主要使用@RequestLine) 2、使用(Feignbuilder) 3、调用方式与原feignCLient无异:springcloud中feignClient对原生feign进行了上层封装,得以在Spring环境下对开发人员有较好的细节屏蔽,如果想要跳出该封装,进行灵活的使用,如下场景:需要根据用户的配置,在不重启机器的情况下完成服务的切换 大量的基础参数重复在各个接口间,或其他定制化操作(拦截器等)这种情况下,需要使用原生feign,按以下几步即可:1、定义调用接

2020-07-30 17:39:39 8799

原创 Maven版本冲突解决方式

使用maven进行项目构建非常方便,极大的解放了开发的精力,但是,随着项目的依赖越来越复杂,版本维护也随之复杂起来,此时版本冲突及排查将是家常便饭。说下maven的依赖版本选择机制,比如某个项目A需要依赖B,且实际依赖路径为A->B(old),然后A的其中一个依赖C,同样依赖了B,且版本较新,该依赖路径为A->C->B(new),项目A最终的有效依赖B将是B(old),那么C...

2020-04-16 16:30:41 657

翻译 Jsp之Servlet中forward和sendRedirect区别【经典面试问题】

这两者的区别是经典面试问题,我们在servlet或JSP编程中也经常用到,接下来看下他们的接口定义所属类。sendRedirect(String url),定义在HttpServletResponse中 该方法用于将客户端请求重定向到其他位置进一步处理,新位置可以在其他服务器或不同上下文,并且该请求是在结束本次请求后,由浏览器重新发起的一次请求,因此也称为客户端重定向。这样说可能更直白,...

2020-04-16 15:10:23 277

转载 Chrome访问https显示ERR_CERT_INVALID无法跳过问题解决

macOS Chrome访问https页面显示ERR_CERT_INVALID,以往版本可以选择跳过,继续访问,但是新版本Chrome不允许继续,且提示:您的连接不是私密连接攻击者可能会试图从XX.XX.XX.XX窃取您的信息(例如:密码、通讯内容或信用卡信息)。了解详情NET::ERR_CERT_INVALID将您访问的部分网页的网址、有限的系统信息以及部分网页内容发送给 G...

2020-04-08 16:33:39 4566 3

MBA-十日读

MBA 十日读 可以很好的掌握该技能,且本书内容通俗易懂

2018-05-15

javabean经典教程

javabean经典教程提供了javabean的基础知识以及快速入门

2015-05-15

SSH详细简介

这是详细阐述spring、struts、hibernate的作用及所属层次的文档。

2015-04-27

经典的小计算器

这是一个很经典的MFC编辑的操作程序,很实用,可以当做小案例

2012-06-06

空空如也

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

TA关注的人

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