自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 阶段5模块1

Flume采集日志,配置如下:a1.sources = r1a1.sinks = k1a1.channels = c1#taildir sourcea1.sources.r1.type = TAILDIR# 监控文件,这个是有关flume的。这里记录了flume采集到了哪里a1.sources.r1.positionFile = /liuchang_data/flume_dw/conf/startlog_position.json# 监控的目录a1.sources.r1.filegrou

2022-02-24 19:34:48 434

原创 阶段4模块2作业

注意:安装zookeeper,启动zookeeper服务,我只起了当前这一台虚拟机,所以之前配置的集群起不来,需要修改conf文件夹下的zoo.cfg,将集群节点注释掉,记得用完恢复。安装之前需要先安装好zookeeper 和 kafkazookeeper配置文件Kafka 的server.properties 配置上面两个安装完成,并测试可以启动,开始安装nginx和ngx_kafka_module确认安装以下jar包yum -y install gcc pcre-devel zli.

2022-01-18 23:11:01 2828

原创 大数据作业

#import jobtype=commandcommand=sh import.sh#import.sh#!/bin/bashdateStr=`date "+%Y%m%d"`echo "---->${dateStr}"log_path=/user_clicks/${dateStr}/hive -e "use default; load data inpath '${log_path}' into table user_clicks partition(dt='${dateStr}'

2022-01-18 22:54:15 241

原创 Mybatis 的流式查询

流式查询指的是查询结果是一个迭代器,而不是一个集合,应用每次从迭代器查询一条结果。流式查询的好处是降低内存的使用。但是要注意流式查询的过程中要保持连接一直存在,所以流式查询以后数据库访问框架就不负责关闭数据库连接了,需要自己去维护。流式查询接口package org.apache.ibatis.cursor;import java.io.Closeable;/** * Cursor contract to handle fetching items lazily using an Ite

2021-11-23 14:16:55 6594

翻译 Prometheus学习2

官方文档prometheus是什么简单的说就是后台服务监控组件被监控服务暴露自己与前台或者其他服务的交互数据,prometheus采集这些具体数据,通过目前现有的聚合方式或者说监控指标所需要基础数据源通过图表的方式,展示出服务的当前状态以及之前某一段时间内的状态。它并不能保证采集回来的数据100%正确、采集的数据量是被监控服务的100%。组件Prometheus Server:用于收集指标和存储时间序列数据,并且提供查询接口。client Liberary:客户端库(例如ja

2021-11-22 17:13:31 381

翻译 Spring事务管理

Spring事务管理器在spring的事务流程中事务的打开回滚和提交都是交给事务管理器来完成。事务管理器顶层接口是PlatformTransactionManager.当我们使用mybatis框架时,最常用的是DataSourceTransactionManager它实现了PlatformTransactionManager接口,关于 PlatformTransactionManager的源码如下:package org.springframework transaction;public i.

2021-11-20 14:28:49 127

原创 Prometheus学习1

配置文件官方配置文件解释 - 英文原配置文件为yml,写入配置的时候注意不要使用tab或者其他特殊符号去编辑,否则不识别。也可以将配置文件定义为其他类型的文件比如json格式,在yml中配置每一种类型的监控需要一个job_name,比如后台需要一个job_name,mysql需要一个,redis需要一个,相同的job_name下的targets中可以配置多个ip,然后通过配置下面的配置文件生效配置配置:prometheus.yml - job_name: 'node-exporter' #

2021-11-12 15:34:14 872

原创 Nginx和HA负载

Nginx和HA负载NginxHAProxyF5硬负载LVS负载Nginx1. 工作在OSI第7层之上,可以针对http做一些分流策略,例如针对域名、目录结构,它的正则规则比HAproxy更为强大和灵活。2. 对网络稳定性依赖小,理论上能ping通就可以负载3. 安装、配置简单,测试方便,基本能把错误日志打印出来4. 可以承担高负载压力且稳定,硬件不差的情况下一般能撑几万次的并发量,负载度比LVS小HAProxyF5硬负载LVS负载...

2021-11-12 14:37:09 2564

原创 JVM07-类加载器<ClassLoader>

1. 任何Class对象,都会包含一个定义该类的ClassLoader对象2. 数组类(一个数组,元素是类)不由类加载器创建,是运行时由java虚拟机根据需要创建。如果使用该数组对象调用getClassLoader对象,则返回的类加载器的类型和他元素调用getClassLoader()方法,返回的是一样的。 String[] str = new String[2]; //在rt.jar下,所以是根类加载器加载 System.out.println(str.ge...

2021-06-26 19:16:48 246

原创 JVM06-类加载器深入解析

类加载类加载的最终产品是位于内存中的Class对象。Class对象封装了类在方法区内的数据结构,并且想向Java程序员提供了访问方法区内的数据结构的接口。类加载器类型Java自带虚拟机的类加载器根类加载器(Bootstrap,启动类加载器)扩展类加载器(Extension)系统引用类加载器(System)用户自定义类加载器java.lang.ClassLoader的子类用户可以定制类的加载方式类加载器的初始化类加载器并不需要等到某个类被 “首次主动使用” 时在加

2021-06-16 00:27:55 242

原创 JVM05-接口初始化和类加载分析学习

public class interfaceLoader { public static void main(String[] args) { System.out.println(ChildInter.child); }}interface ParentInter { Integer parent = 1;}interface ChildInter extends ParentInter { Integer child = 2;}

2021-05-24 23:29:25 142

原创 JVM04-编译器常量和运行期常量的区别以及数组创建的分析学习

此文章,为学习记录变量在编译期和运行期的区别public class FinalVariableDemo { public static void main(String[] args) { System.out.println(StaticTest.str); }}class StaticTest{ static final String str = UUID.randomUUID().toString(); static { Sy

2021-05-19 23:06:39 93

原创 JVM03-常量的本质含义和反编译助记符学习

JVM指令-xx:+TraceClassLoading , 用于追踪类的加载信息并打印出来最先加载java.lang.Object这里最后加载了我们自定义的父类和子类,并输出结果-XX:+ < jvm_optional > ,开启optional选项,就比如上面的TraceClassLoading-XX:- < jvm_optional > ,表示关闭jvm_optional选项-XX:< optional > = < value

2021-05-18 23:38:56 95

原创 JVM02-类的加载连接与初始化过程

加载:将java的字节码文件加载到内存中。Java对类的使用过分为两种主动使用被动使用注意:所有的java虚拟机实现必须在每个类或者接口被Java程序 首次主动使用的时候才会被初始化主动使用Jvm字节码划分的主动使用和被动使用准确性更高,但是平时开发接触不多,所以粗略的分为以下几种:创建类的实例 即:new class访问某个类或者接口的静态变量,或者对该静态变量赋值调用类的静态方法反射,如Class.forName(“xx.xx.Test”)初始化一个类的子类。.

2021-05-17 22:52:53 119

原创 JVM01-类加载器解析和阶段分解

类加载在java代码中,类型的加载、连接、初始化都是在运行期间完成的Java虚拟机和程序的生命周期以下几种情况java虚拟机将结束生命周期执行了System.exit()程序正常执行程序在执行过程中遇到异常或者错误而异常终止由于操作系统出现错误导致虚拟机进程终止类的加载、连接、初始化加载查找并加载类的二进制数据连接验证:确保被加载类的正确性准备:为类的静态变量分配内存,并将其初始化为默认值解析: 将类中的符号引用转换为直接引用初始化为类的静态变量赋予正确

2021-05-12 22:14:57 87

原创 Gradle配置文件-build.gradle

buildscript声明gradle脚本自己需要使用的资源repositories 主要是为了gradle脚本自身的执行,获取脚本依赖插件。这里声明依赖项、第三方插件 、maven仓库地址。dependencies 中可以使用classpath声明依赖。该classpath声明说明了在执行其余build脚本时,class loader可以使用这些你提供的依赖项。这也正是我们使用的buildscript代码块的目的。根级别(最外层的)repositories主要是为了当前项目提供所需要的..

2021-05-05 19:07:40 701

原创 Eleasticreach学习-02

简单查询#根据id查询数据GET / 索引 / _type / id //这里不介意使用_type字段,后面会删除> GET /demo2/_search?q=name:张 //q(query)注意:keyword 类型的字段ik分词器是不会拆分词的复杂查询#下面俩句话一个意思GET /demo2/_search?q=name:张 //q(query)GET /demo4/_search //demo4是索引(就是库的名称){ "query": .

2021-05-05 19:04:48 148

原创 Eleasticreach学习-01

Lucene:信息检索工具包 (不包含搜索引擎系统)包含索引结构包含读写索引的工具包含包含排序搜索规则的工具。Elasticsearch 和 Lucene的联系es基于Luene做了一些增强和封装Elasticsearch(es)开源的高扩展分布式全文搜索引擎他可以近乎实时存储、检索数据java开发的通过简单地RESTFul API,来隐藏Lucene的复杂性。Solrjava开发基于Luence的全文搜索服务器。提供了比Lucene更为丰富的查询语言实现了可配置 可扩展、并

2021-05-05 19:01:08 153

转载 mybatis动态sql中#{}和${}的区别

(1)#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换,#{}可以有效防止sql注入。#{}可以接收简单类型值或pojo属性值。如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。(2)表示拼接sql串,通过{}表示拼接sql串,通过表示拼接sql串,通过{}可以将parameterType传入的内容拼接在sql中且不进行jdbc类型转换,可以接收简单类型值或pojo属性值,如果par

2021-04-15 10:56:58 542

原创 设计模式-建造者模式

应用背景将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。实现在bean中创建一个静态内部类Builder,然后将bean中的成员变量复制到Builder类中。在bean中创建一个private 的构造函数(bean的构造函数),参数为刚刚在bean中创建的Builder类型。将Builder中的成员变量对应赋值给bean的成员变量。在Builder中创建一个public的构造函数,参数是bean中的必填参数。在Builder中创建set函数,对bean中那些可选参数进

2021-04-13 16:30:51 81

原创 图数据库(neo4j) -CQL

开启远程访问一、对于3.0以前的版本在安装目录的 $NEO4J_HOME/conf/neo4j.conf 文件内,找到下面一行,将注释#号去掉就可以了 #dbms.connector.https.address=localhost:7473 改为 dbms.connector.https.address=0.0.0.0:7473 这样,远程其他电脑可以用本机的IP或者域名后面跟上7474 端口就能打开web界面了 如: https://:7473当然,你的操作系统的防火墙也要确保开放了7474端口才行

2021-04-11 14:12:59 362

原创 SpringBoot配置文件扫描

SpringBoot配置文件位置:外置,在相对于应用程序运行目录的/config子目录里外置,在应用程序运行的目录里内置,在resources/config包内内置,在classpath更目录(resources)目录下。

2021-04-08 00:48:59 1665

原创 rstp协议学习笔记

概念RSTP协议以客户服务器方式工作,如:暂停/继续、后退、前进等。他是一个多媒体播放控制协议,用来使用户播放从英特网下载的实时数据能够进行控制 ,因此RSTP又称为“因特网录像机遥控协议”。其实就个人理解,RSTP协议就是一种控制协议,它并不实现流媒体的实体传输,但是它可以控制流媒体的传输,可以让流媒体暂停、播放、倒退,就好像我们看电影可以通过按钮实现暂停、播放、后退、快进。RSTP协议就像是流媒体的按钮。...

2021-04-08 00:41:19 1124

原创 Python-基础三

集合不重复类型:set无序运算: set1.intersection(set2) #交集 符号:& set1.union(set2) #并集 符号:| set1.difference(set2) # 差集 符号:- set1.issubset(set2) #判断set2是否为set1的子集 set1.issuperset(set2) #判断set1是否为set2的父级 set1.symmetric_difference(set

2021-04-06 22:40:30 119

原创 图数据库(neo4j) - 学习01

知识图谱在图书情报界称为知识域可视化或者知识领域隐射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及他们之间的相互关系。知识图谱通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象的展示学科的核心结构、发展历史、前沿领域以及整体知识架构。达到多学科融合目的的现代理论。他可以为学科研究提供切实的、有价值的参考。和关系型数据库的区别图数据库没有一范式、

2021-04-06 22:34:44 419

原创 Java基础01

java执行流程Java源码 ---> 编译器 ---->Jvm可以执行的字节码(即虚拟指令)---->jvm ---->jvm中的解释器 ----->机器可以执行的二进制机器码 ----->程序运行遗忘点01this和super相关this代表当前类,super代表父类super()和this()均需要放在构造方法内第一行尽管可以用this调用一个构造器,但是却不能调用两个this和Super不能出现在同一个构造函数中,因为this必然会调用其他的构

2021-03-14 19:02:26 94

原创 Dubbo学习一

Dubbo是一个分布式、高性能、透明化的RPC服务框架,提供服务自动注册、自动发现等高效服务治理方案、可以和Spring框架无缝集成RPC 指的是远程调用协议,也就是说两个服务器交互数据核心功能Remoting: 网络通信框架,提供对多种NIO框架抽象封装,包括"同步转异步"、"请求-响应"模式的信息交换方式Cluster: 服务框架,提供基于接口方法的透明远程过程调用,包括多协议支持,以及负载均衡、地址路由、动态配置等集群支持Registry:服务注册,基于注册中心目录服务,使服务消费方能.

2021-03-14 16:51:43 115

原创 SpringBoot框架下实现配置文件修改动态加载(不用重启服务)

Controller层File file = new File("配置文件url");JSONObject jsonObject = fileLinstenerService.fileChangeDoSomething(file);Service层@AutowiredRedisUtils redisUtils;@AutowiredFlowSurveyComponent flowSurveyComponent;private Map<String,Long> configFi

2021-03-13 15:43:33 3756

原创 问题集合-01

stream流判断列表中有多少重复数据Map<Object,Long> map= list.stream().collect(Collectors.groupingBy(item->item,Collectors.counting()));map.forEach((k,v)-> System.out.println(k+":"+v));Redis的差值比较sdiff 注意时间的格式、数据类型、数据精度的变化。mysql使用ENCODE/DECODE加密/解密的方式处理数据

2021-03-13 15:14:48 132

原创 SpringBoot的start的作用以及基本原理

SpringBoot优点:创建独立的Spring应用内嵌Tomcat、Jetty或Undertow(无需部署war包)提供自用的starter来简化构建配置提供指标监控、运行状况检查和外部化配置没有代码生成,也不需要配置xml如果部署一个常规spring需要做以下操作:pom文件引入相关jar包,如spring、springmvc、mybatis等配置web.xml,Listener配置、Filter配置、Servlet配置、Log4j等等插件配置配置数据库连接、配置spring事务

2021-03-13 14:50:53 7331

原创 Python-基础二

列表格式:[]类型:list存: demo =["zhangsan","lishi"]取: eg1:print(demo[0]) # 取出列表第一个元素 eg2:print(demo[1:2]) #[开始位置:结束位置] 包含开始位置的值,不包含结束位置的值(从左往右 正向) 1.demo[0:3]和demo[:3]结果一致 eg3:print(demo[-3:-1]) #[结束位置:开始位置] 获取最后的俩个元素 1. 复数代表反向获取 2. 开始位置和结束位置

2021-03-13 13:02:44 70

转载 HTTP1和HTTP2的区别

Http1.x缺点是在多线程情况下会阻塞,而且浏览器是短连接。频繁请求拦截太消耗资源(服务器、浏览器建立连接需要3次握手)。但是1.1有改善,浏览器连接改成了持久链接,不用声明Connection: keep-alive(对于同一个域名,大多数浏览器允许同时建立6个持久连接)。而且允许发送多个请求,但是服务器只能一个一个来。同时也增加了几种请求方式:PUT:请求服务器存储一个资源;DELETE:请求服务器删除标识的资源;OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求;TRA

2021-03-10 23:10:09 482

原创 数据库索引失效的情况

1、列与列之间的对比 比如一张表中的两列(id和c_id)都单独建立了索引,但是下面这种情况不会走索引 select * from table where id = c_id; //这种情况会被认为还不如走全表扫描2、存在NULL值 我们在设计数据库时尽量避免NULL值的出现,如果不可避免地要出现NULL值的情况,也要这是默认值,比如数值类型的可以设置为0或者-1,字符串可以设成空字符串或者其他的东西。 如果索引列是可空的,是不会给其创建索引的,索引值是小

2021-03-07 23:04:38 836 1

原创 VUE基础学习01

理解MVVMREACT 你可以用于网站前端开发,也可以开发手机app,vue也可以开发手机app只不过要借助weeMVC 后端开发分层概念MVVM 前端开发的分层 思想,它把每个页面都分成M 、V、VM三层,其中VM是MVVM的核心。VM是M和V的调度者vue指令v- cloak解决了插入表达式的闪烁问题,即:因为网络环境差vue的js文件无法及时加载导致页面暴露渲染页面的插入表达式。注意:使用这个命令,配合插入表达式只会替换占位符那个地方字符其他地方不会动。当元素渲

2021-03-07 14:36:32 165 1

原创 Python-基础一

Python-基础一#!/usr/bin/env python 或者是 #!/usr/bin/python 这个用于声明可执行python程序的解释器。你自己安装一个python版本并将他设为默认版本,那么env python指定的解释器为我们新装的python解释器,而第二种写法就是只能指定/usr/bin下的python解释器。变量(强类型、动态、解释型、脚本语言)​ 定义变量不需要指定数据类型。name = "zhangsan"print(name);命名规则:​ 数字、字母

2021-03-07 14:17:24 311 2

空空如也

空空如也

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

TA关注的人

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