摘要: 一、CPU使用率过高的原因一般是: 1、线程空耗,如大量线程获取锁的过程中自旋等待; 2、系统进行密集运算(密集数学运算的AI程序等); 3、内存不足造成JVM频繁fullGC; 4、系统正在进行大量线程上下文切换消耗资源; 线程相关问题使用jstack指令(java虚拟机自带的指令)获取JVM中指 阅读全文
posted @ 2022-10-05 19:41 ys-fullStack 阅读(813) 评论(0) 推荐(0) 编辑
 
摘要: 一、Spring Cloud Stream 在实际的企业开发中,消息中间件是至关重要的组件之一。消息中间件主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。不同的中间件其实现方式,内部结构是不一样的。如常见的RabbitMQ和Kafka,由于这两个消息中间件的架 阅读全文
posted @ 2022-10-01 23:55 ys-fullStack 阅读(255) 评论(0) 推荐(0) 编辑
 
摘要: 一、微服务网关概述 如下图: 不同的微服务一般会有不同的网络地址,客户端在访问这些微服务时必须记住几十甚至几百个地址,这对于客户端方来说太复杂也难以维护。如果让客户端直接与各个微服务通讯,可能会有很多问题: 客户端会请求多个不同的服务,需要维护不同的请求地址,增加开发难度,在某些场景下存在跨域请求的 阅读全文
posted @ 2022-09-25 23:48 ys-fullStack 阅读(1634) 评论(1) 推荐(0) 编辑
摘要: 一 、Ribbon概述 Netflixfa 发布的一个负载均衡器,有助于控制HTTP和TCP客户端行为。在SpringCloud中,Ribbon提供了客户端负载均衡的功能,Ribbon自动从服务注册中心Eureka中读取到的服务提供者的列表信息(动态获取服务列表方式),在调用服务节点提供的服务时,基 阅读全文
posted @ 2022-09-25 22:40 ys-fullStack 阅读(1419) 评论(0) 推荐(0) 编辑
 
摘要: 1、spring Cloud概述 Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring 阅读全文
posted @ 2022-09-15 23:41 ys-fullStack 阅读(949) 评论(0) 推荐(0) 编辑
 
摘要: 一、系统架构的演变 1、技术架构发展历史时间轴 ①单机垂直拆分:应用间进行了解耦,系统容错提高了,也解决了独立应用发布的问题,存在单机计算能力瓶颈。 ②集群化负载均衡可有效解决单机情况下并发量不足瓶颈。 ③服务改造架构 虽然系统经过了垂直拆分,但是拆分之后发现有重复的功能,比如,用户注册、发邮件等等 阅读全文
posted @ 2022-09-14 23:19 ys-fullStack 阅读(794) 评论(0) 推荐(2) 编辑
 
摘要: 一、锁 锁是一种互斥的机制,在多线程环境中实现对资源的协调与控制,凡是有资源被多线程共享,涉及到修改的情况就要考虑锁的加持。 (0)Java锁原理 0)引申:Java对象结构 Java对象结构分为3部分: ①对象头(包括:Mark Word(存储了当前对象运行时的状态信息,如HashCode、指向锁 阅读全文
posted @ 2022-06-08 08:14 ys-fullStack 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 一、ThreadLocal原理分析 1、概念 ThreadLocal类并不是用来解决多线程环境下的共享变量问题,而是用来提供线程内部的共享变量。在多线程环境下,可以保证各个线程之间的变量互相隔离、相互独立。 2、核心原理 即:实际上是ThreadLocal的静态内部类ThreadLocalMap为每 阅读全文
posted @ 2022-06-08 00:07 ys-fullStack 阅读(164) 评论(0) 推荐(0) 编辑
 
摘要: 一、java集合 研究表明,人类大脑右脑的记忆能力是左脑的10万的倍,右脑对图形图像处理比较敏感,因而借助于图形图像能快速提高记忆效率,废话不多说,直接上图: Collection集合体系继承关系 Map集合体系继承关系 1、线性表的性能分析 各种线性表的性能分析概览: 1.1、数组 以一块连续内存 阅读全文
posted @ 2022-05-16 23:33 ys-fullStack 阅读(174) 评论(0) 推荐(0) 编辑
 
摘要: 一、数据结构的理解 简单地说,数据结构是计算机组织数据和存储数据的方式;即数据结构是指一组相互之间存在一种或多种特定关系的数据的组织方式和它们在计算机内的存储方式,以及定义在该组数据上的一组操作。 引申: 1、计算机解决一个具体问题时,一般需要经过以下几个步骤: 在每个步骤中,数据的表现形式都不相同 阅读全文
posted @ 2022-05-15 00:01 ys-fullStack 阅读(1350) 评论(0) 推荐(0) 编辑
 
摘要: 一、核心概念 1、概念 数据库事务:数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。 事务概念扩展:事务概念来源于数据库事务,扩展为事务是一个由有限操作集合组成的逻辑单元,包括文件系统,消息队列,一 阅读全文
posted @ 2021-12-31 18:41 ys-fullStack 阅读(977) 评论(0) 推荐(0) 编辑
摘要: 一、ES原理 1、索引结构ES是面向文档的 各种文本内容以文档的形式存储到ES中,文档可以是一封邮件、一条日志,或者一个网页的内容。一般使用 JSON 作为文档的序列化格式,文档可以有很多字段,在创建索引的时候,我们需要描述文档中每个字段的数据类型,并且可能需要指定不同的分析器,就像在关系型数据中“ 阅读全文
posted @ 2021-12-31 18:38 ys-fullStack 阅读(1478) 评论(0) 推荐(0) 编辑
 
摘要: 一、基础概念 1、Elasticsearch简介 Lucene是Java语言编写的全文(全部的文本内容进行分析,建立索引,使之可以被搜索)检索引擎工具包(全文检索引擎的架构),用于处理纯文本的数据,提供建立索引、执行搜索等接口,但不包含分布式服务。 Elasticsearch是近实时(新增到 ES 阅读全文
posted @ 2021-12-08 17:22 ys-fullStack 阅读(955) 评论(1) 推荐(0) 编辑
 
摘要: 1、checkPoint (1.1)Flink 中的每个方法或算子都是有状态的。 状态化的方法在处理元素/事件的时候存储数据,使得状态成为使各个类型的算子重要部分。 Flink 通过为状态添加 checkpoint(检查点),使状态具备容错能力。 (1.2)Flink的CheckPoint机制可以与 阅读全文
posted @ 2021-08-29 19:42 ys-fullStack 阅读(1585) 评论(0) 推荐(0) 编辑
 
摘要: 前言、flink介绍: Apache Flink 是一个分布式处理引擎,用于在无界和有界数据流上进行有状态的计算。通过对时间精确控制以及状态化控制,Flink能够运行在任何处理无界流的应用中,同时对有界流,则由一些专为固定数据集设计的算法和数据结构进行了内部处理,从而提升了性能。 1、flink特性 阅读全文
posted @ 2021-08-23 22:09 ys-fullStack 阅读(1082) 评论(0) 推荐(0) 编辑
 
摘要: 说明:本文的侧重点在于快速了解机器学习在项目中涉及到常见算法概念、应用,以及在保持核心原理本质的前提条件下,尽量用简单易懂的方式介绍这些算法原理,抛砖引玉,打破心理障碍,让AI尽快走进项目,服务于社会(后续会逐渐对原理进行展开深入分析,了解了原理,用起来才能得心应手)。 一、分类算法 分类算法是应用 阅读全文
posted @ 2021-06-21 22:36 ys-fullStack 阅读(1354) 评论(0) 推荐(1) 编辑
 
摘要: 一、概念 1、人工智能、机器学习、深度学习 (1)人工智能; (2)机器学习(从数据中自动分析获得的模型,并利用模型对未知数据进行预测)是人工智能的一个实现途径,即选择合适的算法对模型训练; (3)深度学习是机器学习的一个方法发展而来。 2、人工智能三要素:数据、算法、计算力; 3、人工智能主要分支 阅读全文
posted @ 2021-05-30 23:44 ys-fullStack 阅读(1094) 评论(0) 推荐(0) 编辑
 
摘要: 一、静态代理 eg: package test.tmp; interface interfDog { void info(); } class OriginDog implements interfDog { @Override public void info() { System.out.pri 阅读全文
posted @ 2021-05-15 20:02 ys-fullStack 阅读(239) 评论(0) 推荐(0) 编辑
 
摘要: 一、线程的状态 (1)线程的状态包括新建(初始状态)、就绪、运行、阻塞、销毁 (2)java中定义了线程执行的的6种状态(1.创建 2. 执行 3.销毁 4.时间限制的等待 5.无线等待 6.阻塞) 二、线程通信 1、传统的线程通信(java Object类中提供的方法,适用于所有java对象) w 阅读全文
posted @ 2021-05-01 23:10 ys-fullStack 阅读(487) 评论(0) 推荐(0) 编辑
 
摘要: 1、servlet与servlet容器 (1)servlet本质 前方高能,请注意、注意、注意。。。重要的事情说三遍,servlet本质就是一个Java接口 ,目的在于定义一套处理网络请求的规范,如下所示: package javax.servlet; import java.io.IOExcept 阅读全文
posted @ 2021-01-10 23:26 ys-fullStack 阅读(380) 评论(0) 推荐(0) 编辑