- 博客(37)
- 资源 (9)
- 收藏
- 关注
转载 Yarn介绍
ApplicationMaster 负责协调来自 ResourceManager 的资源,并通过 NodeManager 监视容器的执行和资源使用(CPU、内存等的资源分配),通俗讲是管理发起的任务,随着任务创建而创建,任务的完成而结束。Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示的。在资源紧张的情况下,可以kill掉优先级低的,来运行优先级高的任务。
2023-04-01 13:29:29 2456
转载 数据库行存储及列存储详解
1.传统行式数据库的特性如下:①数据是按行存储的。②没有索引的查询使用大量I/O。比如一般的数据库表都会建立索引,通过索引加快查询效率。③建立索引和物化视图需要花费大量的时间和资源。④面对查询需求,数据库必须被大量膨胀才能满足需求。2.列式数据库的特性如下:①数据按列存储,即每一列单独存放。②数据即索引。③只访问查询涉及的列,可以大量降低系统I/O。④每一列由一个线程来处理,即查询的并发处理性能高。⑤数据类型一致,数据特征相似,可以高效压缩。
2023-03-31 10:44:28 2097
转载 java常用的几种线程池比较
诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方式可能是通过网络协议(例如 HTTP、FTP 或 POP)、通过 JMS 队列或者可能通过轮询数据库。不管请求如何到达,服务器应用程序中经常出现的情况是:单个任务处理的时间很短而请求的数目却是巨大的。构建服务器应用程序的一个简单模型是:每当一个请求到达就创建一个新线程,然后在新线程中为请求服务。实际上对于原型开发这种方法工作得很好,但如果试图部署以这种
2022-06-15 11:18:18 1284
转载 Netty框架基本介绍
NIO1.概述:NIO全称java non-blocking IO ,是指JDK1.4开始,java提供了一系列改进的输入/输出的新特性,被统称为NIO(即New IO )。新增了许多用于处理输入输出的类,这些类都被放在java.nio包及子包下,并且对java.io包中的许多类进行了改写,新增了满足NIO的功能。NIO和BIO有着相同的目的和作用,但是他们的实现方式完全不同,BIO以流的方式处理数据,而NIO以块的方式处理数据,块I/O的效率比流I/O高很多。另外,NIO是非阻塞式的,这一点跟BIO也很
2022-06-09 09:38:04 18181 6
转载 Netty框架介绍及实战
Netty框架模型NIO 的类库和API繁杂,使用麻烦:需要熟练掌握Selector、ServerSocket、ChannelSocketChannel、 ByteBuffer等。开发工作量和难度都非常大: 例如客户端面临断连重连、 网络闪断、心跳处理、半包读写、 网络拥塞和异常流的处理等等。Netty 对 JDK 自带的 NIO 的 API 进行了良好的封装,解决了上述问题。且Netty拥有高性能、 吞吐量更高,延迟更低,减少资源消耗,最小化不必要的内存复制等优点。Netty 现在都在用的是4.x,
2022-06-09 08:31:57 585
转载 Netty框架
概述Netty 是由 JBOSS 提供的一个 Java 开源框架。Netty 提供异步的、基于事件驱动的网络应用程序框架,用以快速开发高性能、高可靠性的网络 IO 程序。Netty 是一个基于 NIO 的网络编程框架,使用 Netty 可以帮助你快速、简单的开发出一个网络应用,相当于简化和流程化了 NIO 的开发过程。作为当前最流行的 NIO 框架,Netty 在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,知名的 Elasticsearch 、Dubbo 框架内部都采用了 Net
2022-06-08 20:00:01 10351
转载 Reactor网络编程模型解析
前言Reactor设计模式是一种处理并发I/O比较常见的一种模式,将客户端请求分别发送到不同处理器上,来提升事件处理的效率。最常见的应用场景java NIO当中用户处理网络请求,使用的是异步非阻塞IO。包括netty框架等都是使用该模型。至于什么异步 和 非阻塞的定义这个可以看看我下面的文章网络编程基础之七层协议及TCP、UDP、Http、Nio解析Reactor模型概述为什么要使用Reactor模型,主要来自于只使用NIO,只能解决多连接问题,非阻塞。但是建立连接过后每个连接的处理也只有单线程,同步的
2022-06-08 15:25:59 211
转载 网络编程基础之七层协议及TCP、UDP、Http、Nio解析
前言本篇博客主要介绍的网络编程基础,包括七层协议,TCP和UDP对比特性,Http协议,以及何为Nio编程,有何优缺点,应用场景等,都有一个比较大介绍。OSI网络七层模型为了不同的厂家的计算机可以通信,以便在更大范围内建立计算机能够通信,就必须要建立一个国际范围内的网络体系结构标准。 通过网络建立好对应的关系,而每个层次不相关联,每个层次进行开发各自层次的内容,互不影响。 我们在开发应用是,并不关系物理层的东西,这就是七层表现形式。 物理层 是原始的数据比特流能够在物理介质上传输,例如常见的网线光纤等
2022-06-08 13:52:34 779
转载 java 8中forEach遍历
public class ForEachTest { public static void main(String[] args) { /** list */ //ArrayList in Arrays.forEach(Consumer<? super E> action) Arrays.asList("a", "b", "d").forEach(e -> System.ou
2022-06-07 19:19:36 541
转载 常用集合工具包-CollectionUtils包
在maven中引入 commons-collections commons-collections 3.2.2常用方法 :public class TestCollections { List list1 = new ArrayList
2022-06-07 19:17:35 1436
转载 @Validated注解
一. 在javaEE项目中经常要判断一些字段的格式是否正确。在以前基本上都是用if(啥啥 啥)else(啥啥啥) 。但是在知道@Validated之后就开始尝试用这个注解了。不但减轻代码量而 且代码更加的易读规整。二. 下面就以简单例子来说明。在要校验对象上加上@Validated注解2.Bean层3.测试(1)传入数据(2)测试结果:三.@Validated 相关注解...
2022-06-07 19:08:00 19390
转载 @RequestParam,@PathParam,@PathVariable等注解的区别
@RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @PathVariable 是从一个URI模板里面来填充看下面一段代码:根据上面的这个URL,你可以用这样的方式来进行获取12345 @RequestParam 支持下面四种参数defaultValue 如果本次请求没有携带这个参数,或者参数为空,那么就会启用默认值name 绑定本次参数的名称,要跟URL上面的一样
2022-06-07 18:54:19 426
转载 HttpServlet详解
Servlet的框架是由两个Java包组成:javax.servlet和javax.servlet.http. 在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的的通用接口和类.在javax.servlet.http包中定义了采用HTTP通信协议的HttpServlet类.Servlet的框架的核心是javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口.在Servlet接口中定义了5个方法,其中有3个方法代表了Servlet的声明周期:init方
2022-06-07 18:38:01 2927
转载 cookie、session、token
作为一个JAVA开发,之前有好几次出去面试,面试官都问我,JAVAWeb掌握的怎么样,我当时就不知道怎么回答,Web,日常开发中用的是什么?今天我们来说说JAVAWeb最应该掌握的三个内容。1、很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加响应, 尤其是我不用记住是谁刚刚发了HTTP请求, 每个请求对我来说都是全新的。2、但是随着交互式Web应用的兴起,像在线购物网站,需要登录的网站等等,
2022-06-07 16:21:02 99
转载 Session原理
Web三大概念:cookie,session,applicationSession:记录一系列状态Session与cookie功能效果相同。Session与Cookie的区别在于Session是记录在服务端的,而Cookie是记录在客户端的。解释session:当访问服务器否个网页的时候,会在服务器端的内存里开辟一块内存,这块内存就叫做session,而这个内存是跟浏览器关联在一起的。这个浏览器指的是浏览器窗口,或者是浏览器的子窗口,意思就是,只允许当前这个session对应的浏览器访问,就算是在同一个机器
2022-06-07 14:37:28 247
转载 Session详解(一)
一、术语session在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。有时候我们可以看到这样的话“在一个浏览器会话期间,...”,这里的会话一词用的就是其本义,是指从一个浏览器窗口打开到关闭这个期间①。最混乱的是“用户(客户端)在一次会话
2022-06-07 14:35:09 1209
转载 hreadPoolExecutor线程池的使用
以下是本文的目录大纲: 一.Java中的ThreadPoolExecutor类 二.深入剖析线程池实现原理 三.使用示例 四.如何合理配置线程池的大小 若有不正之处请多多谅解,并欢迎批评指正。 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3932921.html java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java中的线程池,必须先
2022-06-06 17:38:06 304
转载 Netty入门教程2——动手搭建HttpServer
在上一章中我们认识了netty,他有三大优点:并发高,传输快,封装好。在这一章我们来用Netty搭建一个HttpServer,从实际开发中了解netty框架的一些特性和概念。在动手写Netty框架之前,我们先要了解http请求的组成,如下图:HTTP request component partsHTTP response component parts从request的介绍我们可以看出来,一次http请求并不是通过一次对话完成的,他中间可能有很次的连接。通过上一章我们对netty的了解,每一次对话都会建立
2022-06-05 15:38:10 450
转载 Netty入门教程——认识Netty
Netty和Tomcat最大的区别就在于通信协议,Tomcat是基于Http协议的,他的实质是一个基于http协议的web容器,但是Netty不一样,他能通过编程自定义各种协议,因为netty能够通过codec自己来编码/解码字节流,完成类似redis访问的功能,这就是netty和tomcat最大的不同。有人说netty的性能就一定比tomcat性能高,其实不然,tomcat从6.x开始就支持了nio模式,并且后续还有APR模式——一种通过jni调用apache网络库的模式,相比于旧的bio模式,并发性能得
2022-06-05 15:31:40 179
转载 基于@Bean修饰的方法参数的注入方式
方法参数默认注入方式为Autowired,即先根据类型匹配,若有多个在根据名称进行匹配。1:复杂类型可以通过@Qualifier(value=“XXX”)限定2:对于普通类型使用@Value(XXX)指定123456789101112131415161718192021222324252627 我使用下面两个类来进行注入的演示,这两个类分别是User和Car类:Car类:1234567891011121314151617181920212223242526272829303132
2022-06-05 10:03:14 3910
转载 @Bean的value和name属性
@Bean中的name和value属性 和 配置文件中的bean标签的name属性有同样的功能。@Bean配置的类的默认id是方法的名称,但是我们可以通过value或者name给这个bean取别名。注意:value和name属性不能并存。 而且如果配置了value或者name,那么我们将无法在通过方法名称获取这个bean了。例如: 1 //配置ArticleService对象 2 @Bean(value="aservice") 3 //@Bean(name="aservi
2022-06-05 09:45:28 4981
转载 @Autowired自动装配,@Bean注入@Primary,@Qualifier优先级讲解
spring利用依赖注入(DI),完成对IOC容器中的各个组件的依赖关系赋值对同一个Dao类,既有 @Bean 注解声明,又有Autowired 自动装配,分析一下几种情况:1、如果Dao类中声明了@Repository,且@ComponentScan 添加了dao扫描,则默认会创建一个testDao在IOC容器中。2、如果在config中指定了Bean注解,此时:a、如果Bean注解的方法名也是testDao ,则会覆盖默认对象1.新建maven工程1新建TestController.java TestS
2022-06-05 09:39:25 1280
转载 Spring注解@Qualifier的详细用法你知道几种
环境:springboot2.3.10一般使用在项目中使用@Qualifier来限定注入的Bean。由于项目中我习惯用@Resource注解,所以这里先对@Autowired和@Resource进行个简单的说明。相同点:@Autowired与@Resource都可以用来装配Bean。都可以写在字段上,或写在setter方法上。区别:默认按类型装配,默认情况下必须要求依赖对象必须存在(不存在会报错),可以通过required=false属性设置非必须 ,如果我们想使用名称装配可以结合@Qualifier注解进
2022-06-05 09:27:53 8582
转载 maven私服搭建
1 . 私服简介 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。 我们可以使用专门的 Maven 仓库管理软件来搭建私服,比如:Apache Archiva,Artifactory,Sonatype Nexus。这里我们使用
2022-06-04 00:38:10 227
转载 Maven学习 --- <distributionManagement>
在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次。我们知道,maven的依赖管理是基于版本管理的,对于发布状态的artifact,如果版本号相同,即使我们内部的镜像服务器上的组件比本地新,maven也不会主动下载的。如果我们在开发阶段都是基于正式发布版本来做依赖管理,那么遇到这个问题,就需要升级组件的版本号,可这样就明显不符合要求和实际情况了。但是,如果是基于快照版本,那么问题就自热而然的解决了,而mave
2022-06-04 00:33:19 3749
转载 spring注解之@Import注解的三种使用方式
@Import的三种用法主要包括:2.1、第一种用法:直接填class数组直接填对应的class数组,class数组可以有0到多个。语法如下:对应的import的bean都将加入到spring容器中,这些在容器中bean名称是该类的全类名 ,比如com.yc.类名2.2、第二种用法:ImportSelector方式【重点】这种方式的前提就是一个类要实现ImportSelector接口,假如我要用这种方法,目标对象是Myclass这个类,分析具体如下:创建Myclass类并实现ImportSelecto
2022-06-03 21:37:51 2347
转载 dependencyManagement和dependencies的区别
参考:http://zhaoshijie.iteye.com/blog/2094478pom.xml中build标签_cpf2016的博客-CSDN博客还有一篇转载文章也说得很详细,见:http://blog.csdn.net/jiangyu1013/article/details/52424672modelVersion:声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。parent
2022-06-03 21:26:00 7397
转载 Spring的@bean注解 @bean参数详解
1、Spring注解分类从广义上Spring注解可以分为两类:一类注解是用于注册Bean假如IOC容器就是一间空屋子,首先这间空屋子啥都没有,我们要吃大餐,我们就要从外部搬运食材和餐具进来。这里把某一样食材或者某一样餐具搬进空屋子的操作就相当于每个注册Bean的注解作用类似。注册Bean的注解作用就是往IOC容器中放(注册)东西!用于注册Bean的注解: 比如@Component , @Repository , @ Controller , @Service , @Configration这些注解就是用
2022-06-02 14:03:17 2975
转载 @PropertySource配置的用法
功能加载指定的属性文件(*.properties)到 Spring 的 Environment 中。可以配合 @Value 和@ConfigurationProperties 使用。@PropertySource 和 @Value组合使用,可以将自定义属性文件中的属性变量值注入到当前类的使用@Value注解的成员变量中。@PropertySource 和 @ConfigurationProperties组合使用,可以将属性文件与一个Java类绑定,将属性文件中的变量值注入到该Java类的成员变量中
2022-06-01 15:15:50 340
转载 redis的三种集群模式原理
一、主从同步/复制 通过持久化功能,Redis保证了即使在服务器重启的情况下也不会丢失(或少量丢失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据。 但是由于数据是存储在一台服务器上的,如果这台服务器出现硬盘故障等问题,也会导致数据丢失。为了避免单点故障,通常的做法是将数据库复制多个副本以部署在不同的服务器上,这样即使有一台服务器出现故障,其他服务器依然可以继续提供服务。为此, Redis 提供了复制(replication)功能,可以实现当一台数据库中的数据更新后,自动将更新的数据同步
2022-06-01 15:02:56 155
转载 @Qualifier的作用
这是官方的介绍This annotation may be used on a field or parameter as a qualifier forcandidate beans when autowiring. It may also be used to annotate othercustom annotations that can then in turn be used as qualifiers.简单的理解就是:(1)在使用@Autowire自动注入的时候,加上@Qualifi
2022-06-01 10:37:49 958
转载 redis和jedis的用法,区别
Redis 可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。redis与spring的整合一般分为spring-data-redis整合和jedis整合,先看看两者的区别1、引用的依赖不同:spring-data-redis使用的依赖如下: <dependency> <groupId>org.springframework..
2022-05-31 12:01:57 5713
转载 SpringBoot整合Redis
前言在本篇文章中将SpringBoot整合Redis,使用的是RedisTemplate,分别实现了SpringBoot与redis的单机版、集群版、哨兵模式的整合。Maven依赖<!-- 整合redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-st...
2022-05-31 10:42:31 546
转载 Tomcat服务器
一、打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下: 范例:将JavaWebDemoProject这个JavaWeb应用打包成war包 执行完之后,就可以得到一个文件,平时开发完JavaWeb应用后,一般都会将JavaWeb应用打包成一个war包,然后将这个war包放到Tomcat服务器的webapps目录下,当Tomcat服务器启动时,就会自动将webapps目录下的war包解压。比如现在将放到放到
2022-05-27 16:07:30 223
转载 HttpServletResponse常见应用
一、HttpServletResponse常见应用——生成验证码1.1、生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类, 生成随机图片范例: 1 package gacl.response.study; 2 3 import java.awt.Color; 4 import java.awt.Font; 5 import java.awt.Graphics2D; 6 import java.awt.image.BufferedImage;
2022-05-27 16:05:36 636
转载 HttpServletResponse对象
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了。一、HttpServletResponse对象介绍 HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码
2022-05-27 16:03:13 1278
转载 request
一、HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。二、Request常用方法2.1、获得客户机信息 getRequestURL方法返回客户端发出请求时的完整URL。 getRequestURI方法返回请求行中的资源名部分。 getQueryString 方法返回请求行中的参数部分。 getP
2022-05-27 15:59:31 695
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人