自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ElasticSearch

倒排索引:正排索引和倒排索引倒排索引的核心组成:两个部分:1.单词词典(Term Dictionary) ,记录所有文档的单词,记录单词到倒排列表的关联关系。单词词典一般比较大,可以通过B+树或者Hash链表法来实现,以满足高性能的插入与查询。2.倒排列表(Posting List) :记录了单词对应的文档结合,由倒排索引项组成倒排索引项(posting)文档ID词频TF-该单词在文档中出现的次数,用于相关性的评分位置(position) 单词在文档中分词的位置。用于语句的搜索偏移

2023-03-11 14:49:27 540

原创 java堆外内存

堆外内存申请和释放:堆外内存时不受jvm管理,gc算法不能被回收的。如何申请和释放?1. unsafe类我们可以使用unsafe类来进行申请和释放:申请:// 分配 10M 堆外内存long address = unsafe.allocateMemory(10 * 1024 * 1024);释放:unsafe.freeMemory()使用:private static Unsafe unsafe = null;static { try { Field getU

2022-03-14 00:37:29 1581

原创 快速学习mysql inndb底层存储原理

首先来看看mysql的体系架构:从图中来开,主要分为了几大部分网络层连接服务层 mysql server存储引擎层系统文件层我们来看一下 msyql运行的机制再看一下mysql官网给出的inndb存储架构图看了很多我们可以通过查询和更新来将这些组件串联起来查询:查询进入server端,依次进入 连接器 分析器 优化器 执行器a. 连接器: 进行管理连接,权限验证b. 分析器:i. 词法解析:sql语句,识别出里面的字符是干什么的ii. 语法解析:输入的sql语句是否

2022-02-27 16:56:03 1123

原创 快速学习垃圾收集器

serial收集器:最古老的收集器,单线程,收集工作的时候需要暂停其他所有的工作线程(stop the world)。老年代版本:serial old新生代复制,老年代标记-整理parallel scavenge:serial多线程版本。 关注点是吞吐量老年代版本:parallel old新生代复制,老年代标记整理ParNew收集器:serial多线程版本,主要为了减少stw,不是提升吞吐量(cpu利用率)4核CPU就可以支持4个垃圾回收线程并行执行,可以提升4倍的性能通常和CMS

2022-02-27 12:12:03 375

原创 ThreadLocal

ThreadLocal为每隔使用该变量的线程提供独立的变量副本。并发环境下 我们使用simpledataformat。我们可以封装一下用threadlocal来保存。为什么这么做呢?simpledateformat是不安全的simpledateformate中的calendar线程是不安全的calendar是线程不安全,为什么不安全?类中存放日期数据变量是线程不安全的,比如里面的time等属性public class TestSimpleDateFormat2 { // (1)创建

2022-02-26 13:13:33 383

原创 SpringMVC

springmvc:三层 本质是对sevlet的封装,只用一个dispatcherServlet, 执行handler<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> &lt

2021-12-16 05:18:08 391

原创 CPU缓存一致性和伪共享

多核cpu的好处在不提升cpu主频之后,多核cpu提升吞吐率。CPU:寄存器:cpu cache: L1 L2 L3 使用SRAM(SRAM(Static Random-Access Memory,静态随机存取存储器))存储,SRAM一旦断电,数据就会丢失了。L1 嵌入在CPU内部L1 L2 L3 访问的速度递减cpu cache高速缓存分成了指令缓存(Instruction Cache)和数据缓存(Data Cache)两部分。内存:内存使用DRAM(DRAM(Dynamic Rando

2021-12-04 10:28:34 535

原创 eureka和nacos注册中心缓存高并发读写比较

eureka和nacos ap模式下为了高并发读写,都在内存中修改,但是分别采用了不同的策略。nacos 使用的是CopyOnWrite思想防止并发冲突。eureka使用的是3级缓存。注册中心支持大量provider和consumer,所以有高并发的读写。引用一个dubbo的图,大体上nacos和eureka也是大致的逻辑。nacosprovider向注册中心注册,将服务器相关信息写入内存。consumer拉取,读取注册中心服务信息。eureka为了增加读写并发,在内存中运用读写分离的思想。

2021-09-01 23:59:46 1580

原创 Zookeeper集群搭建

zookeeper官网内容其实已经很详细了。本文以官网为行文路线:https://zookeeper.apache.org/doc/current/zookeeperStarted.htmlzookeeper事先需要安装jdk,然后下载一个稳定的版本。具体在:https://zookeeper.apache.org/releases.html目前已经是3.7了。但是本文搭建还是以3.4.6版本。下载地址:https://archive.apache.org/dist/zookeeper/zoo

2021-05-03 01:36:34 208 1

原创 模板方法模式(模板方法设计模式)与回调机制解析

模板方法是什么?模板方法模式在一个方法中定义一个算法的骨架,将某些步骤推迟到子类中实现。模板方法模式可以让子类在不改变算法整体的结构情况下,重新定义算法中的某些步骤。public abstract class AbstractClass { public void templateMedhod(){ //一堆代码,通用的代码 method1(); //一堆代码,通用的代码 method2(); //一堆代码,通用的代码

2021-02-28 14:42:50 442 1

原创 【转】JVM 故障排查shell脚本

线程引起cpu问题:top 命令,查找到使用 CPUtoptop -Hp $pidprintf %x $tid## jstack 命令,查看 Java 进程的线程栈jstack $pid >$pid.logless $pid.log相关信息保留:(1)系统当前网络连接ss -antp > $DUMP_DIR/ss.dump 2>&1ss 命令将系统的所有网络连接输出到 ss.dump 文件中,netstat 在网络连接非常多的情况下,执行非常缓慢,所以使用

2021-02-15 14:08:21 362

原创 快速了解数据中台

数据中台,看到这个词,很迷茫。快速了解的话,先看看数据发展的历史把。在互联网初期,可能就是一个公司的一个部门里面就有着一个后台系统,互不畅通,每个系统数据量相对较少。为了实现业务共享,出现SOA架构,将各个系统串联了起来,解决了信息的孤岛,数据量开始变多。在后期的互联网的高并发场景里面,数据库不再是一个,而是数据库集群,而且为了解决用户的查询操作,出现了数据库读写分离。数据库读写分离,有两种,一种是横向切分,一种是纵向切分。横向切分:通常通过hash取余算法来分散数据。纵向切分:按照功能模块进行

2020-09-04 00:16:37 198

原创 第22讲 | AtomicInteger底层实现原理是什么?如何在自己的产品代码中应用CAS操作?

AtomicInteger底层实现原理是什么?如何在自己的产品代码中应用CAS操作?AutomicInteger是对int类型的一个封装,提供原子性的访问和更新操作,原子操作的实现是基于cas(compare-and-swap)来实现的。什么是原子性访问?一组操作要么全部成功,要么全部失败。原子类操作都有哪些?不光有AtomicInteger,还有很多原子类操作的类型。基本分为6类:Atomic*:AtomicInteger、AtomicLong 和 AtomicBoolean以Atomic

2020-07-19 12:44:40 1084

原创 订单系统设计

订单是如何生成的,又是如何推送到下游的各个系统的。订单系统的低延迟,高可用的,不丢单问题。万级和千万级架构是不一样的。思路:首先,设计一个简单的订单系统。分析那几个环节会丢单。日万级如何优化。日千万如何升级改造。简单系统:只有前台和后台,前台结算页提供用户去结算。当后台收到前台用户点击去结算的操作时,就会处理下单服务。起初,订单会被处理到后台的数据库中,然后异构数据到缓存...

2020-05-21 23:52:54 4087

原创 第11讲 Java提供了哪些IO方式? NIO如何实现多路复用?

Java提供了哪些IO方式? NIO如何实现多路复用?Java IO方式有很多种,基于不同的IO抽象模型和交互方式,可以进行简单区分。首先,传统的java.io包,它基于流模型实现,提供了我们最熟知的一些IO功能,比如File抽象、输入输出流等。交互方式是同步、阻塞的方式,也就是说,在读取输入流或者写入输出流时,在读、写动作完成之前,线程会一直阻塞在那里,它们之间的调用是可靠的线性顺序。ja...

2020-04-01 00:26:45 499

原创 BIO NIO AIO

首先我们看一下在操作系统中有几种I/O模型。在《Unix 网络编程》中归纳了5种I/O模型:Unix下可用的I/O模型为5种blocking I/O (BIO):阻塞IOnonblocking I/O (NIO):非阻塞IOI/O mutiplexing(select ,poll):IO多路复用signal driven I/O(SIGIO): 信号驱动式IOasynchronou...

2020-03-28 19:52:26 380 1

原创 Tomcat调优参数

tomcat的整体结构:tomcat主要有两个核心的功能:1.处理socket连接,字节流的request responese转换2.加载管理servlet所以 tomcat设计了两个组件:connector和container容器在xml中是这样呈现的tomcat的启动流程我们纵向观察一下启动流程回到正题默认的tomcat配置主要有:server.tomcat.ac...

2020-03-19 15:34:35 2234

原创 Redis分布式锁思路

对于线程安全问题,传统的而方案是对线程资源操作加锁。线程锁通常使用synchronized 或者lock关键字来进行加锁。但是这个是对于同一个jvm内存的。分布式锁如果在多个进程中保证任务同一时刻执行,那么这个就是分布式锁了。分布式锁实现有很多方式,常见的有zookeeper实现,缓存实现,数据库实现。但是这些锁都有如下的特征:多个进程可见互斥的,也就是在同一时刻只有一个进程获得...

2020-02-29 19:49:13 296

原创 Redis哨兵

当主数据库遇到异常中断服务后,我们需要将宕机的master下线,然后找一个slave作为master,并且通知所有点的slave连接新的master。之后启动就可以了。哨兵上面的操作,通过哨兵就可以解决。哨兵是一个用于对主从结构中每台服务器的监控,当出现故障的时候通过投票机制来选择新的master并且将所有的slave连接到新的master。通过上面的理解,我们知道哨兵主要就是监控通...

2020-01-19 12:58:45 240

原创 Redis主从复制

互联网三高架构高并发高性能高可用高可用H.A.(High Availability):指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。比如一年有三次宕机,宕机时间分别是:4小时27分15秒,11分36秒,2分16秒。则3此总和为866467秒。1年= 3652460*60 = 31536000秒可用性= 315360...

2020-01-19 06:59:43 837

原创 Redis事务

定义redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令事务的基本操作Redis事务以multi为开始,之后跟着用户传入多个命令,最后以exec为结束。开启事务:multi:设定事务的开启位置,此指令执行后,后续的所有指令均加入到事务中。执行事务:exec:设定事务的结束位置,同时执行事务。与multi成对出现成对使用。当加入事务的命令暂时进入到任务队列中,并没有立...

2020-01-18 08:27:58 135

原创 Redis 持久化RDB AOF

持久化简介每次我们使用word的时候,会发现在其目录下还会生成一个隐藏文件。其实这个也是防止word意外关闭而造成忘记保存。我们平时写文件都是操作内存,生成的隐藏word是保存在硬盘中,保证了持久化。Redis同样也是这样。Redis持久化的概念:利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制叫做持久化。持久化是为了保障数据安全的。持久化保存的是什么?...

2020-01-18 06:45:56 113

原创 分布式事务2PC,3PC

事务的ACID特性分布式事务是多个事务的组合,务的特征 ACID,也是分布式事务的基本特征。原子性(Atomicity)事务最终的状态只有两种,全部执行成功和全部不执行。多线程中也有原子性这个概念,某个线程执行操作,其他的线程是无法看中间的这个结果。而ACID中描述的是客户端发起的一个包含多个写操作的请求时候发生的情况。例如写了一部分,系统发生故障。这些写操作纳入到一个原子事务,出现状...

2020-01-14 14:34:56 329

原创 mysql视图

1.视图视图(View)是一种虚拟存在的表。视图就是一条SELECT语句执行后返回的结果集。视图相对于普通的表的优势:简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集。安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制到某个行某个列,但是通过视图就可以简单的实现。数据独立:一旦视图的结构确定了...

2020-01-03 18:50:19 792

原创 Mysql存储过程和函数

文章目录存储过程和函数1.1.创建存储过程1.2 调用1.3 查看存储过程1.4 删除存储过程1.5存储过程编程语法:1.5.1 变量1.5.2 if条件判断1.5.3 传递参数1.5.4 case结构1.5.5 while循环1.5.6 repeat结构1.5.7 loop语句1.5.8 leave语句1.5.9 游标/光标1.6 存储函数存储过程和函数存储过程和函数是 事先经过编译并存储在...

2020-01-03 18:48:29 99

原创 Mysql子查询练习

本数据来源于网络如有侵权,请联系。用到的数据库:github用于保存员工的信息。employees表departments表jobs表locations表工资级别表前置知识:分类:按子查询出现的位置进行分类:select后面要求:子查询的结果为单行单列(标量子查询)from后面要求:子查询的结果可以为多行多列where或having后面 ★要求:子查...

2020-01-03 08:55:54 975

原创 hashCode和equals方法:自定义HashMap的key时需要注意什么?

使用当我们需要自定义HashMap这种散列数据结构(HashSet,HashMap,LinkedHashMap,LinkedHashSet)的Key时候:需要重写hashCode()和equals(Object o)方法。使用方法public class Key { private Integer id; public Integer getId(){ re...

2019-12-29 02:39:15 352

原创 4. OpenCV svm模型

SVM概览http://blog.csdn.net/liukun321/article/details/41574617简单来说,SVM就是用于区分不同的类型(车牌、非车牌)。SVM的训练数据既有特征又有标签,通过训练,让机器可以自己找到特征和标签之间的联系,在面对只有特征没有标签的数据时,可以判断出标签。属于机器学习中的监督学习。核函数: 用于将不同类型进行提维(需要一点空间想象力)...

2019-12-24 08:30:06 392

原创 3 OpenCV 车牌识别-2 颜色定位

HSV颜色模型如果我们想找出一副图像中的蓝色部分,我们需要检查rgb分量中的blue分量就可以了。一般blue分量是0-255的值,即便蓝色分量255了,由于另外两个分量的影响,需要考虑各个分量的配比问题,rgb作为颜色判断很难实现,就有了hsv模型hsv,photoshop中hsbHSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978...

2019-12-24 08:29:23 1387

转载 02.OpenCV 车牌识别 sobel定位

opencv模块介绍简介​ OpenCV是一个基于BSD许可开源发行的跨平台计算机视觉库。拥有C++,Python和Java接口,并且支持Windows, Linux, Mac OS, iOS 和 Android系统。实现了图像处理和计算机视觉方面的很多通用算法。模块功能Core核心基础模块,定义了被所有其他模块和基本数据结构(包括重要的多维数组Mat)使用的基本函数、...

2019-12-24 08:28:05 719

原创 1.opencv人脸检测

opencv使用visual Studio开发。首先搭建工程。1,人脸检测 (只适合静态图像的检测)2,人脸跟踪(适合视频流检测人脸)打开摄像头CMakeLists.txt# CMakeList.txt: Opencv_Face 的 CMake 项目,在此处包括源代码并定义# 项目特定的逻辑。#cmake_minimum_required (VERSION 3.8)inc...

2019-12-24 08:26:32 188

原创 1.1OpenCV 环境配置

OpenCV ndk环境配置opencv ndkVisual Studio环境准备[下载Visual Studio][1],这里我们下载 Visual Studio Community 2019 社区免费版即可。运行安装程序,勾选 使用C++的Linux开发 ,单个组件中 SDK 、库和框架 下勾选 Windows 10 SDK 和 Windows 通用 C 运行时,[外链图片转存...

2019-12-24 08:25:06 143

原创 MySql索引

1.索引1.1介绍索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构。左边的是数据记录的物理地址。右边所示的二叉查找树从图中可以看出,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找快速获取到相应数据。目的:快速查找数据1.2 优势劣势:优势劣势提...

2019-12-11 15:52:19 160

原创 分布式概念

集群与分布式区别集群:复制模式,每台机器做一样的事。分布式:两台机器分工合作,每台机器做的不一样。分布式好处:独立开发,部署,测试易于扩展复用性高,例如:所有的产品都可以使用该系统作为用户系统,无需重复开发。架构演进架构演进一: 早期雏形特征:应用程序主要做静态文件读取,返回内容给浏览器。架构演进二: 数据库开发(LAMP特长)特征:应用程序主要主要读取数据表值,填充h...

2019-12-11 15:43:12 7197

原创 安卓中getApplicationContext(),getApplication(),this的区别

getApplicationContext();生命周期长,只要应用还存活它就存在。Activity实际上是应用程序context上下文的一个子集。this:生命周期短,只要Activity不存在了,系统就会回收;getApplication():andorid 开发中共享全局数据;

2019-12-05 20:08:00 1690 2

原创 SQLyog远程登录mysql

文章目录写在前面环境实现远程登陆1.阿里云设置3306端口2.关闭防火墙,开放3306端口2.1. 关闭firewall2.2. 安装iptables防火墙2.3. 启动设置防火墙2.4查看状态2.5 添加端口2.6 重启配置,重启系统2.7. 调试3306端口是否能登陆上去3 sqlyog新建连接navicat也是相同的规则写在前面mysql安装请看mysql安装环境阿里云 cento...

2019-11-17 23:29:35 654

原创 Mysql基础

什么是SQLStructured Query Language 结构化查询语言SQL分类1.DDL(Data Definition Language)数据定义语言操作数据库,表,列等2.DML(Data Manipulation Language)数据操作语言增删改表中的数据3.DQL(Data Query Language)数据查询语言用来查询表的记录(数据)。关键字:selec...

2019-11-17 22:34:15 142

原创 linux安装mysql5.7

环境:环境阿里云centos7.2 安装mysql5.7步骤1.下载MySQL源wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm下载完成:2.安装源yum localinstall mysql57-community-release-el7-11.noarch.rpm遇到是...

2019-11-17 22:31:24 192

原创 第21讲 Java并发类库提供的线程池有哪几种? 分别有什么特点?

通常开发者都是利用Executors提供的通用线程池创建方法,去创建不同配置的线程池,主要区别在于不同的ExecutorService类型或者不同的初始参数。Executors目前提供了5种不同的线程池创建配置:newCachedThreadPool(),它是一种用来处理大量短时间工作任务的线程池,具有几个鲜明特点:它会试图缓存线程并重用,当无缓存线程可用时,就会创建新的工作线程;如果线程...

2019-11-10 21:08:45 457

原创 互联网公司技术网站 公众号

互联网技术公司网址是否有公众号美团技术团队https://tech.meituan.com/字节跳动技术团队https://techblog.toutiao.com/阿里中间件团队博客http://jm.taobao.org/阿里开源https://yq.aliyun.com/opensource阿里技术https://102.ali...

2019-10-24 20:33:19 765

空空如也

空空如也

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

TA关注的人

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