- 博客(51)
- 资源 (37)
- 收藏
- 关注
原创 Hadoop Spark 太重,esProc SPL 很轻
随着大数据时代的来临,数据量不断增长,传统小机上跑数据库的模式扩容困难且成本高昂,难以支撑业务发展。很多用户开始转向分布式计算路线,用多台廉价的PC服务器组成集群来完成大数据计算任务。Hadoop/Spark就是其中重要的软件技术,由于开源免费而广受欢迎。经过多年的应用和发展,Hadoop已经被广泛接受,不仅直接应用于数据计算,还发展出很多基于它的新数据库,比如Hive、Impala等。
2022-12-13 08:34:10
305
原创 内存数据库如何发挥内存优势?
与以磁盘存储为主的普通数据库相比,内存数据库的数据访问速度可以高出几个数量级,能大幅提高运算性能,更适合高并发、低延时的业务场景。不过,当前大部分内存数据库仍然采用 SQL 模型,而 SQL 缺乏一些必要的数据类型和运算,不能充分利用内存的特征实现某些高性能算法。仅仅是把外存的数据和运算简单地搬进内存,固然也能获得比外存好得多的性能,但还没有充分利用内存特征,也就不能获得极致的性能。下面我们来看看,有哪些适合内存特征的算法和存储机制,可以进一步提升内存数据库计算速度。
2022-11-07 11:06:05
450
转载 Nginx 如何实现高并发?常见的优化手段有哪些?
这是一位读者带回来的面试题Nginx 是如何实现并发的?为什么 Nginx 不使用多线程?Nginx常见的优化手段有哪些?502错误可能原因有哪些?面试官心理分析主要是看应聘人员的对NGINX的基本原理是否熟悉,因为大多数人多多少少都懂点NGINX,但是真正其明白原理的可能少之又少。明白其原理,才能做优化,否则只能照样搬样,出了问题也无从下手。面试题:Nginx 是如何实现高并发?常见的优化手段有哪些?懂皮毛的人,一般会做个 Web Server,搭建一个 Web 站点;初级运维可能搞个
2022-04-22 17:35:29
3992
转载 30种SQL语句优化方法
1.’对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from
2022-04-07 16:30:24
180
原创 MySQL高频面试题
1、MySQL 中有哪几种锁?1、表级锁: 开销小, 加锁快; 不会出现死锁; 锁定粒度大, 发生锁冲突的概率最高, 并发度最低。2、行级锁: 开销大, 加锁慢; 会出现死锁; 锁定粒度最小, 发生锁冲突的概率最低, 并发度也最高。3、页面锁: 开销和加锁时间界于表锁和行锁之间; 会出现死锁; 锁定粒度界于表锁和行锁之间, 并发度一般。2、MySQL 中有哪些不同的表格?共有 5 种类型的表格: 1、MyISAM2、Heap 3、Merge 4、INNODB 5、MISAM3、简述在MySQL
2022-03-31 14:35:47
591
原创 Spring5源码分析六
七、Spring经典的面试问题1、什么是Spring框架?Spring框架有哪些主要模块?Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成Spring框架,不必担心Spring是如何在后台进行工作的。Spring框架至今已集成了20多个模块。这些模块主要被分如下图所示的核心容器、数据访问/集成,
2022-03-30 08:28:59
239
原创 Spring5源码分析五
五、Spring事务原理详解5.1、事务基本概念事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。特点:事务是恢复和并发控制的基本单位。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。隔离性(
2022-03-29 17:13:33
1042
原创 Spring5源码分析四
4.6、IOC容器中那些鲜为人知的事儿1、介绍通过前面章节中对SpringIOC容器的源码分析,我们已经基本上了解了SpringIOC容器对Bean定义资源的定位、读入和解析过程,同时也清楚了当用户通过getBean方法向IOC容器获取被管理的Bean时,IOC容器对Bean进行的初始化和依赖注入过程,这些是SpringIOC容器的基本功能特性。SpringIOC容器还有一些高级特性,如使用lazy-init属性对Bean预初始化、FactoryBean产生或者修饰Bean对象的生成、IOC容器初始化B
2022-03-29 14:20:21
238
原创 Spring5源码分析三
4.4、基于XML的依赖注入1、依赖注入发生的时间当SpringIOC容器完成了Bean定义资源的定位、载入和解析注册以后,IOC容器中已经管理类Bean定义的相关数据,但是此时IOC容器还没有对所管理的Bean进行依赖注入,依赖注入在以下两种情况发生:(1).用户第一次通过getBean方法向IOC容索要Bean时,IOC容器触发依赖注入。(2).当用户在Bean定义资源中为<bean>元素配置了lazy-init属性,即让容器在解析注册Bean定义时进行预实例化,触发依赖注入。Be
2022-03-15 16:27:52
336
原创 Spring5源码分析二
四、Spring5源码分析4.1、什么是IOC/DI?IOC(InversionofControl)控制反转:所谓控制反转,就是把原先我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个容器,同时需要一种描述来让容器知道需要创建的对象与对象的关系。这个描述最具体表现就是我们可配置的文件。DI(DependencyInjection)依赖注入:就是指对象是被动接受依赖类而不是自己主动去找,换句话说就是指对象不是从容器中查找它依赖的类,而是在容器实例化对象的时候主动
2022-03-14 23:29:27
192
原创 Spring5源码分析一
第一章从现实生活理解Spring中常用的设计模式一、Spring中常用的设计模式1、我们通常说的23种经典设计模式可以通过下表一目了然:分类 设计模式创建型 工厂方法模式(FactoryMethod)、抽象工厂模式(AbstractFactory)、建造者模式(Builder)、原型模式(Prototype)、单例模式(Singleton)结构型 适配器模式(Adapter)、桥接模式(Bridge)、组合模式(Composite)、装饰器模式(Decorator)、门面模式(Facade)、
2022-03-14 23:12:01
659
原创 nacos适配postgresql数据库
nacos适配postgresql数据库准备工作1、下载nacos源码、编译,官网更详细https://nacos.io/zh-cn/docs/quick-start.html2、下载若依微服务版,按官网更详细git地址:https://github.com/alibaba/nacos.git修改nacos源码引入postgresql数据库驱动依赖nacos-all的pom.xml<!--postgresql--><postgresql-connector-java.v
2022-03-11 08:28:54
6931
7
原创 java面试题从基础到高级(一)
java面试题从基础到高级一.基础Java面向对象有哪些特征,如何应用面向对象编程是利用类和对象编程的一种思想。万物可归类,类是对于世界事物的高度抽象 ,不同的事物之间有不同的关系 ,一个类自身与外界的封装关系,一个父类和子类的继承关系, 一个类和多个类的多态关系。万物皆对象,对象是具体的世界事物,面向对象的三大特征封装,继承,多态。封装,封装说明一个类行为和属性与其他类的关系,低耦合,高内聚;继承是父类和子类的关系,多态说的是类与类的关系。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下
2021-12-21 11:17:26
11481
原创 kuboard1.0标题logo修改
kuboard可视化运维平台kuboard是k8s多集群管理界面,属于一个可视化运维平台。但是kuboard并不开源,所以无法找到源码进行修改,重新编译。只能对docker镜像中的dist源码进行动手改造。对应的docker镜像是:eipwork/kuboard:latest,实际版本是 v1.0.6.31.环境准备找到kuboard运行的容器id。docker ps进入到kuboard容器内部:docker exec -it 54e6b2c2c785 /bin/bash找到
2021-12-08 15:21:40
19677
原创 nginx反向代理注意事项(/)
近期某项目测试环境进行迁移,迁移后的接口域名多了一个端口,出现了跨域问题,所以利用Nginx代理来解决这些问题。proxy_pass的斜杠问题Nginx的官网将proxy_pass分为两种类型:1.一种是只包含IP和端口号的(连端口之后的/也没有,这里要特别注意)比如proxy_pass http://localhost:8080,这种方式称为不带URI方式;2.另一种是在端口号之后有其他路径的,包含了只有单个/的如proxy_pass http://localhost:8080/
2021-11-18 11:31:39
5939
原创 分布式消息队列RocketMQ工作原理与应用(三)
第 4 章 RocketMQ应用一、普通消息1 消息发送分类Producer对于消息的发送方式也有多种选择,不同的方式会产生不同的系统效果。同步发送消息同步发送消息是指,Producer发出一条消息后,会在收到MQ返回的ACK之后才发下一条消息。该方式的消息可靠性最高,但消息发送效率太低。异步发送消息异步发送消息是指,Producer发出消息后无需等待MQ返回ACK,直接发送下一条消息。该方式的消息可靠性可以得到保障,消息发送效率也可以。单向发送消息单向发送消息是指,Producer仅
2021-10-20 10:54:13
13838
原创 分布式消息队列RocketMQ工作原理与应用(二)
第 3 章 RocketMQ工作原理一、消息的生产1 消息的生产过程Producer可以将消息写入到某Broker中的某Queue中,其经历了如下过程:Producer发送消息之前,会先向NameServer发出获取消息Topic的路由信息的请求NameServer返回该Topic的路由表及Broker列表Producer根据代码中指定的Queue选择策略,从Queue列表中选出一个队列,用于后续存储消息Produer对消息做一些特殊处理,例如,消息本身超过4M,则会对其进行压
2021-10-18 11:35:09
14865
原创 分布式消息队列RocketMQ工作原理与应用(一)
第 1 章 RocketMQ概述一、MQ概述1 、MQ简介MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。消息即数据。一般消息的体量不会很大。2 、MQ用途从网上可以查看到很多的关于MQ用途的叙述,但总结起来其实就以下三点。限流削峰MQ可以将系统的超量请求暂存其中,以便系统后期可以慢慢进行处理,从而避免了请求的丢失或系统被压垮。异步解耦上游系统对下游系统的调用若为同步调用,则会大大降低系统的吞吐量与
2021-10-13 17:07:04
14796
原创 Sentinel核心源码解析
Sentinel核心源码解析Sentinel是分布式系统的防御系统。以流量为切入点,通过动态设置的流量控制、服务熔断等手段达到保护系统的目的,通过服务降级增强服务被拒后用户的体验。一、Sentinel工作原理1 架构图解析若要读懂Sentinel源码,则必须要搞明白官方给出的Sentinel的架构图。Sentinel的核心骨架是ProcessorSlotChain。其将不同的 Slot 按照顺序串在一起(责任链模式),从而将不同的功能组合在一起(限流、降级、系统保护)。系统会为每个资源创建一套S
2021-10-08 15:48:43
18773
原创 seata适配人大金仓(kingbase8)数据库
seata适配人大金仓(kingbase8)数据库一、seata源码环境准备seata文档地址源码下载地址本文下载的源码版本是:1.4.1.1二、seata源码环境编译使用idea开发工具,打开你下载好的seata源码,并下载好相关jar包依赖。编译好的源码环境如下:三、seata适配kingbase83.1 seata-core的修改增加io.seata.core.store.db.sql.lock.KingbaseLockStoreSql.java注意:Kingba
2021-08-25 11:00:30
20407
22
原创 nacos适配达梦、人大金仓数据库
准备工作1、下载nacos源码、编译,官网更详细https://nacos.io/zh-cn/docs/quick-start.html2、下载源码,按官网更详细git地址:https://github.com/alibaba/nacos.git3、下载达梦、人大金仓数据库驱动我下载的是:Dm、Kingbase依赖dm: https://download.youkuaiyun.com/download/qq_24101357/20677620kingbase: https://download.csdn
2021-08-02 10:20:57
34858
29
原创 redis持久化原理、缓存问题处理方案
redis持久化redis开机的时候—>加载持久化文件(第一次开启的时候没有)—>启动了—>会写入一些数据—>redis会在某一时刻把内存的数据写入磁盘(生成持久化文件)1.RDB持久化原理原理是redis会单独创建(fork)一个和当前线程一模一样的子进程来进行持久化,这个子进程的所有数据(变量、环境变量、程序计数器等)和原进程一模一样,会先将数据写入到一个临时文件中,待持久化结束,再用这个临时文件替换上次持久化好的文件,整个过程中,主进程不进行任何io操作,这就确保
2021-04-20 11:06:43
55161
原创 AES的256带偏移量、128不带偏移量的加解密算法(PKCS7Padding)
AES的加解密:AES 256加密支持java中的AES 256算法遇到 Illegal key size or default parameters错的解决办法解决方法:http://stackoverflow.com/questions/6481627/java-security-illegal-key-size-or-default-parametersJDK8 jar包下载地址:http://www.oracle.com/technetwork/java/javase/downlo
2021-03-31 16:47:49
57333
原创 SpringBoot项目打包分离lib,配置和资源文件部署总结
前言先前发布springboot项目的时候,每次改动一点东西,就需要将整个项目重新打包部署,并且打包出来的jar包太庞大,每次更新项目的时候,需要上传的文件很大,十分不便,故把依赖lib里面的jar包从项目分离出来,每次部署只需要发布代码即可。先前使用的是spring-boot-maven-plugin来打包,这个插件会将项目所有的依赖打入BOOT-INF/lib下,替换为maven-jar-plugin# 原来使用的打包插件:spring-boot-maven-plugin<bu.
2020-12-29 10:50:17
53384
原创 Linux构建JVM(HotSpot) 源码调试环境(OpenJDK8)
一、准备环境1.1、服务器资源操作系统:CentOS 6.8 x64二、下载源码(OpenJDK8)yum 源使用的是阿里的 https://opsx.alibaba.com/mirror?lang=zh-CN这里使用 mercurial(类似 Git 的版本控制系统) 下载源码,方便更新。安装hg服务yum install mercurial -y使用hg下载jdk8u源码到/opt目录hg clone http://hg.openjdk.java.net/jdk8u/
2020-05-12 10:31:09
83130
原创 JMH微基准测试入门案例
JMH - java Microbenchmark Harness微基准测试,他是测试某个方法的性能到底是好还是不好。这个测试框架是2013年发出来的,有JLT开发人员开发,后来归到OpenJDK下面。官网:http://openjdk.java.net/projects/code-tools/jmh/下面介绍什么是JMH,他是用来干什么的,怎么使用?基于idea中使用。创建...
2020-05-08 17:05:08
82590
原创 synchronized和volatile底层原理分析
CASCompare And Swap (Compare And Exchange) / 自旋 / 自旋锁 / 无锁因为经常配合循环操作,直到完成为止,所以泛指一类操作cas(v, a, b) ,变量v,期待值a, 修改值bABA问题,你的女朋友在离开你的这段儿时间经历了别的人,自旋就是你空转等待,一直等到她接纳你为止解决办法(版本号 AtomicStampedReference),基础...
2020-04-27 14:16:23
82270
原创 垃圾回收和GC调优
GC和GC TuningGC的基础知识1.什么是垃圾C语言申请内存:malloc freeC++: new deletec/C++ 手动回收内存Java: new ?自动内存回收,编程上简单,系统不容易出错,手动释放内存,容易出两种类型的问题:忘记回收多次回收没有任何引用指向的一个对象或者多个对象(循环引用)2.如何定位垃圾引用计数(ReferenceCount)...
2020-04-27 14:05:32
84790
3
原创 Window下配置Redis和Elasticsearch
Window下Redis和Elasticsearch的配置(一)Window下Redis的配置1.Redis的Window最新版下载下载地址:https://github.com/microsoftarchive/redis/releases".msi"是安装版的redis,需要安装才能用".zip"是解压版的redis,解压之后就能直接使用(建议下载这个)解压版下载解压之后...
2019-12-12 10:19:49
82294
4
原创 信息系统项目管理--论文分析笔记
信息系统项目管理–论文分析(1)整体管理制定项目章程1.项目发起人发布了这个文件,项目启动了,我被授权了2.项目章程的内容(6个项目,2个总体,2个其他)制定项目管理计划1.和大家一起制定了一个项目管理计划,为以后的项目执行奠定了基础2.计划编写的原则(人打算计划用什么方案实现什么目标的过程)3.计划编写的步骤(目标、团队、准备、概要计划、分计划、优化、项目计划、审批...
2019-11-11 09:00:13
86418
原创 信息系统项目管理--计算题笔记
(1)进度管理计算题,案例分析缩短工期的措施?赶工,缩短关键路径上的工作历时采用并行施工方法以压缩工期追加资源改进方法和技术缩减活动范围使用高素质的资源或经验更丰富人员加强质量管理,及时发现问题,减少返工,从而缩短工期只画出了项目进度网络图,完成了进度管理哪些功能,未完成哪些工作?已完成:活动定义、活动排序、活动历时估算未完成:活动资源估算、制定进度计划表...
2019-11-11 08:59:54
84721
原创 信息系统项目管理--案例分析笔记
信息系统项目管理–案例分析(1)人力资源管理人力资源管理过程:人力资源管理规划,团队组建,团队建设,团队管理成功团队的特点和标志:1.团队的目标明确,成员清楚自己工作对目标的贡献。2.团队的组织结构清晰,岗位明确。3.有成文的工作流程和方法,而且流程简明有效4.项目经理对团队成员有明确的考核和评价标准5.组织纪律性强6.互相信任,善于总结和学习人力资源可能出...
2019-11-11 08:59:27
84505
1
原创 信息系统项目管理--上午分析笔记
信息系统项目管理–上午分析软件度量:项目度量、产品度量、过程度量RBAC基于角色的访问控制,用户只能被动接受,不能自主决定,也不能自主的将访问权限授予其他用户。运维管理平台使运维自动化、操作化,但并不能降低运维人员的技术要求。UML是一种标准的图形化建模语言不可抗力:1.自然灾害(地震、洪水);2.政府行为(征收、停电);3.社会异常(战争、骚乱)合同调解,选择的裁定机构一般选择经济...
2019-11-11 08:58:45
83574
原创 负载均衡算法
负载均衡算法负载均衡算法说明负载均衡介绍负载均衡,英文名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送过来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡能够平均分配客户请求到服务器阵列,借此提供快速...
2019-10-11 14:46:19
82615
原创 SpringMVC源码解析
SpringMVC源码解析Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring框架中。其正式名称“Spring Web MVC”来自它的源模块(Spring -webmvc)的名称,但它更常见的名称是“Spring MVC”。本节介绍Spring Web MVC。(1)servlet3.0新特性通过上图可以知道,servl...
2019-09-26 16:47:56
24764
2
原创 观察者设计模式
观察者设计模式用订阅和发布来理解更好,我想了一下是的为什么呢?因为监听器这个名词听起来是一个主动的,可实际监听器是一个被动的玩意比如我们事件源发布一个事件,然后监听器订阅了这个事件就能做出动作。里面涉及到三个对象,事件源,事件、监听器,大家好好理解一下特点:被观察者持有监听的观察者的引用被观察者支持增加和删除观察者被观察者主题状态改变,通知观察者下面开始模拟观察者设计模式...
2019-09-24 09:09:57
24653
原创 Tomcat8源码解析
Tomcat8源码解析Tomcat总体架构Connector:开启Socket并监听客户端请求,返回响应数据;Container:负责具体的请求处理;一个Service负责维护多个Connector和一个Container,这样来自Connector的请求只能有它所属的Service维护的Container处理;Engine:代表整个servlet引擎Host:表示一个虚拟...
2019-09-18 15:59:11
25005
原创 Spring5源码解析二
Spring5源码解析(bean实例化)在上一边的博客里面已经介绍:spring在bean扫描过程,已经将所有的bean保存在一个beanDefinitionMap的map对象中,但是这些bean还是一个beanDefinition,还没进行实例化的,所以这次就重点解析bean的实例化过程。bean扫描过程源码分析:https://blog.youkuaiyun.com/qq_24101357/arti...
2019-09-11 15:49:13
24514
原创 spring5新特性日志体系
spring5新特性日志体系主流的log技术名词1.juljava自带的一个日志记录的技术,直接使用java.util.logging.Logger2.log4j//log4j依赖<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId>...
2019-09-04 18:11:06
24884
harbor-v2.9.0离线安装(arm架构)
2024-01-31
openoffice在arm64环境下运行的docker镜像包制作文件
2023-08-09
openoffice在arm64环境下运行的解决方案
2023-08-08
windows x86-64系统上建立arm(aarch64)centos虚拟机
2023-05-31
hue-4.10.0离线压缩包(已编译)
2023-05-15
harbor-v2.4.0离线安装(arm架构)
2022-12-13
Docker打包制作rocketmq镜像
2022-06-16
JKS2PFX证书转换工具
2022-05-12
word转pdf所需的jar包
2022-04-16
nacos适配postgresql数据库
2022-03-11
nacos适配oracle数据库
2022-03-01
nacos适配dm达梦数据库
2022-01-28
openoffice-window&linux-4.1.10.zip
2021-08-10
kingbase8.2和8.6版本
2021-08-02
ArcGIS的SDK和JS API.zip
2020-09-02
eclipse2020.03最新版package.zip
2020-04-21
redis-5.0.5linux版本.zip
2020-03-04
es-head-0.1.5插件.zip
2020-01-03
snap.zip网页快照功能代码
2019-11-11
powerDesigner破解工具
2019-03-05
natapp网络穿透工具(window,linux,mac)
2019-01-22
路由侠 网路穿透神器
2019-01-07
editcookie插件
2018-11-26
ngrok的各个版本工具
2018-11-07
jxplorer-3.3.1.1.exe
2018-11-07
Smali2Java1.0.0.558
2018-10-19
redis-desktop-manager可视化工具
2018-09-10
软件设计师教程 第4版
2018-08-22
Navicat Premium 12 x64 工具
2018-08-13
echarts实现的中山地图demo
2018-08-03
vue-devtools-4.1.4.Crx
2018-07-21
postman-win64-4.10.3-setup.exe
2018-07-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人