
java
文章平均质量分 96
java和相关框架(spring相关单独放在一个文件夹)
迷雾总会解
我来,我见,我征服!
展开
-
ElasticSearch使用和架构分析
ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。ES 把数据分成多个 shard(分片),下图中的 P0-P2,多个 shard 可以组成一份完整的数据,这些 shard 可以分布在集群中的各个机器节点中。随着数据的不断增加,集群可以增加多个分片,把多个分片放到多个机子上,已达到负载原创 2022-09-21 15:37:15 · 1485 阅读 · 0 评论 -
JVM知识点总结
JVM知识点总结原创 2022-02-14 21:06:43 · 428 阅读 · 0 评论 -
JVM-09-字节码介绍
字节码介绍原创 2022-02-14 20:56:22 · 604 阅读 · 0 评论 -
JVM-08-垃圾回收器
垃圾回收器原创 2022-02-14 20:55:38 · 531 阅读 · 0 评论 -
JVM-07-垃圾回收概述和相关算法
垃圾回收概述和相关算法原创 2022-02-14 20:54:52 · 249 阅读 · 0 评论 -
JVM-06-执行引擎
执行引擎原创 2022-02-14 20:54:09 · 210 阅读 · 0 评论 -
JVM-05-对象,直接内存,字符串常量池
对象,直接内存,字符串常量池原创 2022-02-14 20:53:16 · 467 阅读 · 0 评论 -
JVM-04-运行时数据区-堆,方法区
运行时数据区-堆,方法区原创 2022-02-14 20:49:14 · 326 阅读 · 0 评论 -
JVM-03-运行时数据区-pc,栈,本地方法栈
运行时数据区-pc,栈,本地方法栈原创 2022-02-14 20:48:08 · 165 阅读 · 0 评论 -
JVM-02-类加载子系统
类加载子系统原创 2022-02-14 20:40:24 · 1353 阅读 · 0 评论 -
JVM-01-JVM与Java体系结构
JVM与Java体系结构原创 2022-02-14 20:35:21 · 442 阅读 · 0 评论 -
并发全知识点总结
主要是对于并发知识点的总结,用于简单的熟悉各个重要知识点。原创 2022-01-15 15:51:05 · 382 阅读 · 0 评论 -
并发-03-线程池,Fork&Join,ThreadLocal,JUC,ConcurrentHashMap,LinkedBlockingQueue
主要讲解:Fork&Join,ThreadLocal,JUC,ConcurrentHashMap,LinkedBlockingQueue原创 2022-01-13 16:05:03 · 310 阅读 · 0 评论 -
并发-02-可见性,原子性,有序性,volatile,CAS,原子类,Unsafe
主要讲解:可见性,原子性,有序性,volatile,CAS,原子类,Unsafe原创 2022-01-13 16:00:42 · 497 阅读 · 1 评论 -
并发-01-创建Thread,sleep,yield,wait,join,interrupt,线程状态,synchronized,park,ReentrantLock
主要讲解:创建Thread,sleep,yield,wait¬ify,join,interrupt,线程状态,synchronized,park&unpark,ReentrantLock原创 2022-01-13 15:56:24 · 308 阅读 · 1 评论 -
ReentrantLock使用和源码分析
当我们new一个ReentrantLock对象时,底层会默认帮我们new一个NonfairSync对象,NonfairSync/FairSync都是基于AQS队列实现,AbstractQueuedSynchronizer简称为AQS队列(队列同步器)。原创 2022-01-09 10:52:19 · 309 阅读 · 0 评论 -
synchronized的介绍,使用和原理
synchronized实际上利用对象保证了临界区代码的原子性,临界区内的代码在外界看来是不可分割的,不会被线程切换所打断。原创 2022-01-07 11:47:17 · 848 阅读 · 0 评论 -
乐优商城项目实战
项目背景了解电商行业了解乐优商城项目结构能独立搭建项目基本框架能参考使用ES6的新语法项目分类主要从需求方、盈利模式、技术侧重点这三个方面来看它们的不同传统项目各种企业里面用的管理系统(ERP、HR、OA、CRM、物流管理系统…)需求方:公司、企业内部盈利模式:项目本身卖钱技术侧重点:业务功能互联网项目门户网站、电商网站:baidu.com、qq.com、taobao.com、jd.com …需求方:广大用户群体盈利模式:虚拟币、增值服务、广告收益…技术侧重点:网站原创 2020-10-19 16:15:31 · 3064 阅读 · 2 评论 -
Hive学习和实战
概念什么是HiveHive:由 Facebook 开源用于解决海量结构化日志的数据统计。Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 SQL 查询功能。本质是:将 HQL 转化成 MapReduce 程序Hive 处理的数据存储在 HDFSHive 分析数据底层的默认实现是 MapReduce执行程序运行在 Yarn 上优缺点优点操作接口采用类 SQL 语法,提供快速开发的能力(简单、容易上手)。避免了原创 2020-10-19 16:12:18 · 1619 阅读 · 0 评论 -
HBase学习
介绍定义HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库数据模型逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensional map逻辑结构HBase表由行和列组成,每个行由行键(row key)来标识,列划分为若干列族,一个列族中可以包含任意多个列,同一个列族里面的数据存储在一个文件中。当这个文件达到一定大小后,会进行分裂形成多个r原创 2020-10-19 16:10:15 · 564 阅读 · 0 评论 -
Zookeeper学习
入门概述Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目特点Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的。更新请求顺序进行,来自同一个Client的更新请求按其发送顺序依次执行。数据更新原子性,一次数据更新要么成功,要么失败。实时性原创 2020-10-19 16:08:54 · 166 阅读 · 0 评论 -
大数据介绍和hadoop学习(搭建,HDFS,Yarn,Mapreduce,优化,原理)
大数据介绍概念大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。最小的基本单位是bit,按顺序给出所有单位:bit、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB。特点volume大 数据的采集,计算,存储量都非常的庞大。variety多 种类和来源多样化。种类有:结构化、半结构化和非结构化数原创 2020-10-18 18:53:41 · 628 阅读 · 0 评论 -
HDFS服务器使用命令可以上传文件,但客户端上传失败问题File ~ could only be written to 0 of the 1 minReplication nodes.
今天怀着忐忑的心情测试一下客户端上传文件,一开始创建文件夹成功,以为没什么问题了,但是接下来上传文件时,却发生了错误。???? 具体报错如下:org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /0529/dashen/test01.txt could only be written to 0 of the 1 minReplication nodes. There are 1 datanode(s) running and原创 2020-08-13 11:46:09 · 6240 阅读 · 10 评论 -
springboot整合dubbo
安装Zookeeper安装jdk下载jdk-8u171-linux-x64.rpm安装 rpm -ivh jdk-8u171-linux-x64.rpm,会自动安装到usr目录中的java中通过pwd命令,查看jdk安装路径:/usr/java/jdk1.8.0_171-amd64配置环境变量: vi /etc/profile,在文件最后追加:export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64export CLASSPATH=$JAVA_原创 2020-07-26 14:35:57 · 182 阅读 · 0 评论 -
Netty -12- 用 Netty自己实现 RPC
RPC 基本介绍RPC(Remote Procedure Call)— 远程过程调用,是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程两个或多个应用程序都分布在不同的服务器上,它们之间的调用都像是本地方法调用一样(如图)常见的 RPC 框架有: 比较知名的如阿里的Dubbo、google的gRPC、Go语言的rpcx、Apache的thrift,Spring 旗下的 Spring CloudRPC 调用流程图原创 2020-07-25 23:20:49 · 206 阅读 · 0 评论 -
Netty -12- 任务加入异步线程池
介绍在 Netty 中做耗时的,不可预料的操作,比如数据库,网络请求,会严重影响 Netty 对 Socket 的处理速度。而解决方法就是将耗时任务添加到异步线程池中。但就添加线程池这步操作来讲,可以有2种方式,而且这2种方式实现的区别也蛮大的。处理耗时业务的第一种方式—handler 中加入线程池处理耗时业务的第二种方式—Context 中添加线程池当我们使用addLast方法添加线程池后,handler将优先使用这个线程池,如果不添加,将使用IO线程 流程方式一se.原创 2020-07-25 23:18:15 · 893 阅读 · 0 评论 -
Netty -11- TCP 粘包和拆包及解决方案
TCP 粘包和拆包基本介绍TCP 是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的 socket, 因此,发送端为了将多个发给接收端的包,更有效的发给对方,使用了优化方法(Nagle 算法),将多次间隔 较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样做虽然提高了效率,**但是接收端就难于分辨出完整的数据包了,因为面向流的通信是无消息保护边界的 **由于 TCP 无消息保护边界, 需要在接收端处理消息边界问题,也就是我们所说的粘包、拆包问题,原创 2020-07-25 23:16:09 · 174 阅读 · 0 评论 -
Netty -10- 整合log4j
整合log4j引入依赖<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version></dependency><dependency> <groupId>org.slf4j</groupId> <ar原创 2020-07-25 23:14:26 · 324 阅读 · 0 评论 -
Netty -09- Netty 编解码器和 handler 的调用机制
基本说明netty 的组件设计:Netty 的主要组件有 Channel、EventLoop、ChannelFuture、ChannelHandler、ChannelPipe 等ChannelHandler 充当了处理入站和出站数据的应用程序逻辑的容器。例如,实现 ChannelInboundHandler 接口(或 ChannelInboundHandlerAdapter),你就可以接收入站事件和数据,这些数据会被业务逻辑处理。当要给客户端 发送 响 应 时 , 也 可 以 从 ChannelInb原创 2020-07-25 23:13:25 · 302 阅读 · 0 评论 -
Netty -08- Google Protobuf
编码和解码的基本介绍编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据 时就需要解码codec(编解码器) 的组成部分有两个:decoder(解码器)和 encoder(编码器)。encoder 负责把业务数据转换成字节 码数据,decoder 负责把字节码数据转换成业务数据Netty 本身的编码解码的机制和问题分析Netty 自身提供了一些 codec(编解码器)Netty 提供的编码器StringEncoder,对字符串数据进原创 2020-07-25 23:11:11 · 219 阅读 · 0 评论 -
Netty -07- Netty 核心模块组件
Bootstrap、ServerBootstrapBootstrap 意思是引导,一个 Netty 应用通常由一个 Bootstrap 开始,主要作用是配置整个 Netty 程序,串联 各个组件,Netty 中 Bootstrap 类是客户端程序的启动引导类,ServerBootstrap 是服务端启动引导类常见的方法有public ServerBootstrap group(EventLoopGroup parentGroup, EventLoopGroup childGroup)该方原创 2020-07-25 23:09:35 · 163 阅读 · 0 评论 -
Netty -06- Netty 高性能架构设计
线程模型基本介绍 不同的线程模式,对程序的性能有很大影响,为了搞清 Netty 线程模式,我们来系统的讲解下 各个线程模式, 最后看看 Netty 线程模型有什么优越性. 目前存在的线程模型有:传统阻塞 I/O 服务模型Reactor 模式 根据 Reactor 的数量和处理资源池线程的数量不同,有 3 种典型的实现单 Reactor 单线程单 Reactor 多线程主从 Reactor 多线程 Netty 线程模式(Netty 主要基于主从 Reactor 多线程模型做了一定的改原创 2020-07-25 23:07:12 · 209 阅读 · 0 评论 -
Netty -05- Netty介绍
概述Netty 是由 JBOSS 提供的一个 Java 开源框架,现为 Github 上的独立项目。Netty 是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络 IO 程序。Netty 主要针对在 TCP 协议下,面向 Clients 端的高并发应用,或者 Peer-to-Peer 场景下的大量数据持续传输的应用。Netty 本质是一个 NIO 框架,适用于服务器通讯相关的多种应用场景要透彻理解 Netty , 需要先学习 NIO , 这样我们才原创 2020-07-25 23:03:56 · 147 阅读 · 0 评论 -
Netty -04- NIO的拷贝和零拷贝
零拷贝的基本介绍零拷贝是网络编程的关键,很多性能优化都离不开。Java中的零拷贝说的是只是用户态的零拷贝,不是操作系统层面的零拷贝 (CPU拷贝)在 Java 程序中,常用的零拷贝有 mmap(内存映射) 和 sendFile。那么,他们在 OS 里,到底是怎么样的一个的设计?我们分析 mmap 和 sendFile 这两个零拷贝另外我们看下 NIO 中如何使用零拷贝传统 IO 数据读写 Java 传统 IO 和 网络编程的一段代码 传统 IO 模型这是一个从磁原创 2020-07-25 23:02:49 · 476 阅读 · 0 评论 -
Netty -03- NIO
???? NIO学习记录原创 2020-07-25 23:00:27 · 141 阅读 · 0 评论 -
Netty -02- BIO
基本介绍Java BIO 就是传统的 java io 编程,其相关的类和接口在 java.ioBIO(blocking I/O) : 同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需 要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制改善(实 现多个客户连接服务器)。BIO 方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4 以前的唯一选择,程序简单易理解工作机制原创 2020-07-25 22:59:17 · 97 阅读 · 0 评论 -
Netty -01- IO模型
基本说明I/O 模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能Java 共支持 3 种网络编程模型/IO 模式:BIO、NIO、AIOJava BIO : 同步并阻塞(传统阻塞型),服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销Java NIO : 同步非阻塞,服务器实现模式为一个线程处理多个请求(连接),即客户端发送的连接请求都会注册到多路复用器上原创 2020-07-25 22:57:05 · 155 阅读 · 0 评论 -
NIO的学习记录(缓冲区,通道,分散和聚集,编码和解码,阻塞和非阻塞,管道)
介绍基本介绍 Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。Nio和io的区别IONIO面向流(Stream Oriented)面向缓冲区(Buffer Oriented)阻塞IO(Blocking IO)非阻塞IO(Non Blocking原创 2020-07-22 11:03:07 · 327 阅读 · 0 评论 -
在线考试系统(微服务,前后端分离)
项目基本功能 本在线考试系统主要完成了用户注册,根据用户名和密码实现注册用户登录,分为账号密码登录,短信登录,邮箱登录用户信息填写,用户基本信息填写(头像,名称,年龄,地区,学号,手机号,邮箱号)。用户信息搜索,根据输入的关键字进行信息检索,查看用户的数据。可以通过聚合条件检索。管理员可以查看完整数据和统计信息。用户管理,管理员可以查看用户的相关数据,并进行管理员的分配。考生管理,管理员考生考试的管理,可以查看考生考试的信息,考生试卷,重置试卷,再次考试,无条件删除考生订阅信息。学科管理,原创 2020-07-19 13:28:46 · 5593 阅读 · 4 评论 -
logback-spring.xml的创建和模板(带颜色的日志输出)
创建xml文件配置 在配置文件中配置(好像这一步不写也可,保险点写上吧)logging: config: classpath:logback-spring.xml展示代码<?xml version="1.0" encoding="UTF-8"?><!--scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒当scan为.原创 2020-07-07 11:03:32 · 3043 阅读 · 0 评论