自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 排他网关,并行网管,包含网关,事件网关

网关用来控制流程的流向网关可以消费也可以生成token。网关显示成菱形图形,内部有有一个小图标。 图标表示网关的类型。基本分支首先 利用 流程变量 写个带有分支的一个基本流程流程图:部署流程文件//获取流程引擎 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); @Test public void deployFlow(){ ...

2020-06-22 15:45:49 4750

原创 单机Qps上限了解

现在这个年代,你要是不懂高并发,你都不好意思说自己是搞互联网的!一、什么是并发,什么是高并发并发,两个及以上的行为一起发生,比如你一边吃饭一边看电视高并发,多个行为(至于是多少,这个没有定数,你可以认为是100,1000)一起发生二、要多久才能处理完这些请求首先,我们需要明确两个基本点1、处理每个请求需要耗费时间,哪怕时间很短2、服务资源是有限的,不能一次性处理...

2020-04-13 10:53:13 1214

原创 Tomcat的调优参数配置

1.Tomcat启动行参数的优化Tomcat 的启动参数位于tomcat的安装目录\bin目录下,如果你是Linux操作系统就是catalina.sh文件,如果你是Windows操作系统那么你需要改动的就是catalina.bat文件。打开该文件,一般该文件头部是一堆的由##包裹着的注释文字,找到注释文字的最后一段如: # $Id: catalina.sh 522797 2007-0...

2020-04-13 10:29:27 577

原创 什么是mysql锁表

为何会锁表首先我们了解一下数据库查询机制,首先我们用工具进行连接查询时,会创建一个connection,此时数据库会将查询语句解析成一棵“树”,各个引擎底层的结构不一样,mysql的话在innodb用的是b-tree,俗称b+树,那么再到执行器进行处理,最后返回给客户端。锁表的原因:当多个连接(数据库连接)同时对一个表的数据进行更新操作,那么速度将会越来越慢,持续一段时间后将出现数据表被锁...

2020-04-12 20:32:48 7705

原创 什么是布隆过滤器

本文是站在小白的角度去讨论布隆过滤器,如果你是科班出身,或者比较聪明,又或者真正想完全搞懂布隆过滤器的可以移步。不知道从什么时候开始,本来默默无闻的布隆过滤器一下子名声大燥,仿佛身在互联网,做着开发的,无人不知,无人不晓,哪怕对技术不是很关心的小伙伴也听过它的名号。我也花了不少时间去研究布隆过滤器,看了不少博客,无奈不是科班出身,又没有那么聪明的头脑,又比较懒...经过“放弃,拿起,放弃,拿起...

2020-04-12 15:09:28 222

原创 什么是零拷贝

我们首先来认识一下传统的I/O操作。假如说用户进程现在要把一个文件复制到另一个地方。那么用户程序必须先把这个文件读入内存,然后再把内存里的数据写入另一个文件。不过文件读入内存也不是直接读入用户进程的内存,而是先读入操作系统内核的内存,然后再从操作系统内核的内存区读到用户进程的内存。与之对应的是,写文件也不是直接写到磁盘上的文件,而是用户进程先把自己内存的数据传到操作系统内核的内存,然后再从...

2020-04-12 14:50:42 990

原创 了解 “BIO、NIO、AIO”

一、阻塞?同步?可能大家平常会经常听到这两个名词,但是没花太多心思详细了解,今天就来揭开这层面纱。一次IO操作,以read方法举例,会经历两个阶段:(1)等待数据准备(Waitingfor the data to be ready)是否阻塞指的就是这一个阶段。(2)将数据从内核拷贝到进程中(Copying the data from the kernel to the process...

2020-04-12 14:37:22 184

原创 2020-面试官可提问的问题目录参考

技术 java基础 锁/线程/集合/jvm内存模型/反射原理/深克隆和浅克隆 对象的创建有什么方法/过程是什么 类加载过程 如何分析内存逃逸 对象创建之后在堆中的过程是什么 mysql基础 设计表的规范 索引...

2020-04-11 15:55:07 240

原创 cookie中各参数含义

Name:该Cookie的名称。一旦创建,该名称便不可更改。Value:该Cookie的值。如果值为Unicode字符,需要为字符编码。如果值为二进制数据,则需要使用BASE64编码。Domain:可以访问该Cookie的域名。例如,如果设置为.zhihu.com,则所有以zhihu.com,结尾的域名都可以访问该Cookie。Max Age:该Cookie失效的时间,单位为秒,也常和...

2020-04-09 16:46:04 1993

原创 Java-实际开发中,将同样属性的不同-DTO-类优雅映射的最佳实践

业务中使用依赖方 DTO 类所带来的问题我负责的系统所依赖的部分服务接口需要重构,把对应的接口从 A 服务迁移到了 B 服务,虽然入参出参格式都一样,但包路径完全变了。而原有的 A 服务仍然有接口依赖,所以我必须要兼容两种【类名一样结构几乎一样!】但【包路径完全不同!】的出入参。但由于我这边的系统代码结构中业务逻辑一直使用了 A 服务提供的 SDK 中的 DTO 定义来做业务参...

2020-04-07 00:36:01 3186

原创 MySQL的四种事务隔离级别

本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB一、事务的基本要素(ACID)  1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。  2、一...

2020-04-06 16:10:17 91

原创 Redis | 主从复制、哨兵模式、缓存穿透、雪崩、热点KEY

Redis 缓存场景客户端请求在缓存层命中直接返回内容,如果Miss就去存储层读取,存储层读取到数据再写入缓存层,然后再返回客户端。优点:加速读写效率,降低后端负载,减少存储层压力缺点:数据不能保证一致性,代码维护成本和运维成本主从复制主节点数据更新后根据配置和策略,自动同步到备节点的master/slaver的机制,主节点负责写数据,从节点负责读数据,主节点定期把数据同...

2020-03-31 16:13:53 151

原创 spring读写分离 - 事务配置篇(转)

如何配置mysql数据库的主从?单机配置mysql主从:http://my.oschina.net/god/blog/496常见的解决数据库读写分离有两种方案1、应用层http://neoremind.net/2011/06/spring实现数据库读写分离目前的一些解决方案需要在程序中手动指定数据源,比较麻烦,后边我会通过AOP思想来解决这个问题。2、中间...

2020-03-31 15:36:56 484

原创 Kafka 入门

初识 Kafka什么是 KafkaKafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。Kafka 的基本术语消息:Kafka 中的数据单元被称为消息,也被称为记录,可以把它看作数据库表中某一行的记录。批次:为了提高效率, 消息会分批次写入 Kafk...

2020-03-31 01:12:08 159

原创 Zookeeper基础核心知识与投票机制详解(入门必备)

一、基础介绍Zookeeper数据模型与session机制:zookeeper的数据模型有点类似于文件夹的树状结构,每一个节点都叫做znode,每一个节点都可以有子节点和数据,就好像文件夹下面可以有文件和子文件夹。 * 每一个节点存储的数据不宜过大。 * 我们可以为节点设置相应的控制权限。 * 每个节点都带有版本号,数据变更时,版本号(乐观锁)变更。  zookeeper的客户端与...

2020-03-30 23:49:32 580

原创 IOC 的理解与解释

IOC 是什么?Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下:●谁控制谁,控制什么:传统Jav...

2020-03-29 21:52:00 785 1

原创 Linux权限详解(chmod、600、644、666、700、711、755、777、4755、6755、7755)

权限简介Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。Linux下权限的粒度有 拥有者 、群组 、其它组 三种。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可...

2020-03-29 13:54:54 3224

原创 java内存屏障的原理与应用(jmm)

一.java内存屏障1.1 什么是内存屏障(Memory Barrier)?内存屏障(memory barrier)是一个CPU指令。基本上,它是这样一条指令: a) 确保一些特定操作执行的顺序; b) 影响一些数据的可见性(可能是某些指令执行后的结果)。编译器和CPU可以在保证输出结果一样的情况下对指令重排序,使性能得到优化。插入一个内存屏障,相当于告诉CPU和编译器先于这个命令的必须先...

2020-03-29 12:59:54 1283

转载 MySQL索引

目录1.介绍 2.索引的原理 2.1索引原理 2.2索引的影响 2.3磁盘IO与预读 3.索引的数据结构 4.聚集索引与辅助索引 4.1聚集索引 4.2辅助索引 5.MySQL索引管理 5.1功能 5.2MySQL常用的索引 5.3索引的两大类型hash与btree 5.4创建/删除索引的语法 6.测试索引 6.1准备 6.2在没有索引...

2020-03-29 12:30:09 134

原创 MySQL explain 查询计划结果集

MySQL 的 explain 语句显示了 MySQL 如何使用索引来处理 select 语句以及连接表,可以帮助我们分析如何选择更好的索引和写出更优性能的查询语句查询示例explain select * from (select * from `user` limit 10, 20) as t1 left join `user_profile` as t2 on t1.id...

2020-03-29 11:06:22 273

原创 cglib动态代理和jdk动态代理的区别与应用

1,引入如果从一个Controller调用Service的非事务方法a,然后在a里调用事务方法b,b事务生效吗?public void update() { updateActual(); int a = 1 / 0; } @Transactional public void updateActual() { Wit...

2020-03-29 11:05:24 169

原创 Spring如何解决循环依赖以及三级缓存概念

一、循环依赖的产生和解决的前提循环依赖的产生可能有很多种情况,例如:A的构造方法中依赖了B的实例对象,同时B的构造方法中依赖了A的实例对象A的构造方法中依赖了B的实例对象,同时B的某个field或者setter需要A的实例对象,以及反之A的某个field或者setter依赖了B的实例对象,同时B的某个field或者setter依赖了A的实例对象,以及反之Spring对于循环依赖的解决不...

2020-03-28 21:03:18 2045

原创 ConcurrentHashMap原理分析(1.7 1.8)

1.8中使用一个volatile类型的变量baseCount记录元素的个数,当插入新数据或则删除数据时,会通过addCount()方法更新baseCount,实现如下:1、初始化时counterCells为空,在并发量很高时,如果存在两个线程同时执行CAS修改baseCount值,则失败的线程会继续执行方法体中的逻辑,使用CounterCell记录元素个数的变化;2、如果CounterC...

2020-03-28 18:28:50 208

原创 ConcurrentHashmap size(1.7 1.8)

ConcurrentHashmap size 1.8方法实现1.8中使用一个volatile类型的变量baseCount记录元素的个数,当插入新数据或则删除数据时,会通过addCount()方法更新baseCount,实现如下:if ((as = counterCells) != null || !U.compareAndSwapLong(this, BASECOUNT, b = b...

2020-03-28 18:27:17 959

原创 JVM调优总结 -Xms -Xmx -Xmn -Xss

Xms 是指设定程序启动时占用内存大小。一般来讲,大点,程序会启动的快一点,但是也可能会导致机器暂时间变慢。Xmx 是指设定程序运行期间最大可占用的内存大小。如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出OutOfMemory异常。Xss 是指设定每个线程的堆栈大小。这个就要依据你的程序,看一个线程大约需要占用多少内存,可能会有多少线程同时运行等。以上三个参数的设置都是默认...

2020-03-28 16:32:27 1310

原创 TCP/IP详解--TCP连接中TIME_WAIT状态过多

背景 TIMEWAIT状态本身和应用层的客户端或者服务器是没有关系的。仅仅是主动关闭的一方,在使用FIN|ACK|FIN|ACK四分组正常关闭TCP连接的时候会出现这个TIMEWAIT。服务器在处理客户端请求的时候,如果你的程序设计为服务器主动关闭,那么你才有可能需要关注这个TIMEWAIT状态过多的问题。如果你的服务器设计为被动关闭,那么你首先要关注的是CLOSE_WAIT。原则...

2020-03-28 09:34:11 275

原创 计算机网络【九】:下一代因特网

《计算机网络》学习的最后一章,我们来简单看看未来的因特网。这里面主要涉及三个方面:IPv6、MPLS协议与P2P。作为一个粗略的浏览,我们简要地梳理一下问题。一、IPv6协议 传统的IPv4协议面临的最大挑战是地址空间无法满足现实飞速增长的需求,尽管我们使用了CIDR和子网IP进行了最大程度的优化,依然只能推迟而不能消除地址用尽的结局。因此IETF很早就在研究IPv4的替代方...

2020-03-28 09:18:48 727

原创 计算机网络【八】:应用层

今天我们来快速地浏览一下传输层之上的应用层所使用的协议,下面将简要地列出应用层上运行的几个协议及其一些要点。一、域名系统DNS DNS主要用于在IP与域名之间建立映射,我们在网址搜索中输入好记的域名,计算机实际通信路由的还是IP地址。因特网体系使用了分层的域名结构,顶级域名分为国家级顶级域名(如cn/jp/us/uk等,都表示国家地域)和通用顶级域名(如com/edu/org...

2020-03-28 09:17:23 357

原创 计算机网络【六】:传输层-TCP概述

根据TCP/IP协议的分层结构,网络层之上是传输层,从层次结构上来看,传输层位于网络的最高层和应用的最底层。传输层的主要作用有两个:一个是居于网络层与应用层之间提供复用和分用的服务;另一个则是需要的时候为应用层提供可靠的传输服务。复用和分用指的是传输层负责实现端到端的传输,即计算机进程之间的通信;而网络层则负责点到点的传输,最重要的功能是路由寻址。 网络通信的“用户”准确地说是位...

2020-03-28 09:15:38 580

原创 Java程序内存分析:使用mat工具分析内存占用

在工作中可能会遇到内存溢出这种灾难性的问题,那么程序肯定是存在问题,找出问题至关重要,上一篇文章讲了jmap命令的使用方法,当然用jmap导出的文件我们也看不懂啊,那就交给memory analyzer(mat)这个工具,让他帮助我们来观察程序的内存分布情况吧。1.用jmap生成堆信息2.将堆信息导入到mat中分析 3. 生成分析报告HistogramDominator ...

2020-03-28 09:14:45 575

原创 计算机网络【五】:路由选择协议

我们知道网络层的关键作用在于路由寻址,这主要依靠路由选择协议来实现,而路由选择协议的核心在于利用路由算法生成路由表。在正式介绍今天的路由算法以前,我们先来了解一下关于路由的几个基本概念。1. 理想的路由算法 设计一个路由算法,如果要达到理想的作用,应该具备以下几个特点:-1. 正确性:这是最基本的,即通过路由表中的记录保证数据分组一定可以最终到达目的主机;-2. 简单:路...

2020-03-28 09:12:18 2179

原创 计算机网络【四】

还没想好怎么写

2020-03-27 23:21:36 146

原创 计算机网络【三】:数据链路层

按照TCP/IP协议由下往上的顺序,今天我们来学习一下数据链路层,数据链路层位于物理层和网络层之间,其设计的初衷就是顺利为网络层提供数据服务,不考虑可靠性,可靠性的部分由传输层的TCP协议实现。我们可以从下面的图中简单地了解一下数据链路层在网络传递中的地位,假设在通信的过程中需要通过路由器的话,那么数据的具体流动过程就像下面图中箭头的示意: 其中路由器负责路由转发,因此需要最...

2020-03-27 23:20:28 347

原创 计算机网络【二】:物理层

物理层考虑的是怎牙膏才能在连接各种计算机的传输媒体上传输数据比特流,而不是具体的传输媒体。物理层定义了一些传输介质具有的特性,比如机械特性、电气特性、功能特性和过程特性。这部分章节自己作为一个知识性的了解来进行学习。一、数据通信的基本知识1. 数据通信的模型,是信息从信源(源点、发送器)通过传输系统传达到信宿(接收器,终点)。2. 信号分为模拟信号和数字信号,模拟信号是连续的,数字...

2020-03-27 23:19:26 197

原创 计算机网络【一】:概述

毫无疑问,互联网已经彻底改变了世界。无论是个人的生活娱乐和工作,还是各种公共事务的处理,都已经不可避免地被电子化、网络化,电子商务与电子政务的兴起足以证明这种趋势。任何一个事务的发展从来都不是孤立的,网络,同样也不是,其发展的过程中都会或多或少有其“前辈兄弟”的影子。严格意义上来说,网络其实应当包含电信网络(电话、电报与传真服务)、有线电视网络(电视节目服务)和计算机网络。但是现在正在出...

2020-03-27 23:18:47 205

原创 计算机网络【七】:可靠传输的实现

TCP协议作为一个可靠的面向流的传输协议,其可靠性和流量控制由滑动窗口协议保证,而拥塞控制则由控制窗口结合一系列的控制算法实现。一、滑动窗口协议 关于这部分自己不晓得怎么叙述才好,因为理解的部分更多,下面就用自己的理解来介绍下TCP的精髓:滑动窗口协议。 所谓滑动窗口协议,自己理解有两点:1. “窗口”对应的是一段可以被发送者发送的字节序列,其连续的范围称之为“窗口...

2020-03-27 23:17:09 1450

原创 HTTP/2 新特性总结

我在想了解HTTP/2的时候,查阅了很多资料,发现这篇很好,是外国的文章.我翻译过来,加入自己的一点理解.HTTP/2 更简单,高效,强大.它在传输层解决了以前我们HTTP1.x中一直存在的问题.使用它可以优化我们的应用.HTTP/2 的首要目标是通过完全的请求,响应多路复用,头部的压缩头部域来减小头部的体积,添加了请求优先级,服务端推送.为了支持这些特性,他需要大量的协议增加头部字段来支持,...

2020-03-27 22:59:05 965

原创 交换机和路由器的区别

交换机和路由器的区别第一条路由器可以给你的局域网自动分配IP,虚拟拨号,就像一个交通警察,指挥着你的电脑该往哪走,你自己不用操心那么多了。交换机只是用来分配网络数据的。交换机和路由器区别第二条路由器在网络层,路由器根据IP地址寻址,路由器可以处理TCP/IP协议,交换机不可以。交换机在中继层,交换机根据MAC地址寻址。交换机和路由器区别第三条路由器可以把一个IP分配给很多个主机...

2020-03-27 22:08:45 470

转载 网络理论知识(四层、七层网络模型)

一、TCP/IP四层网络模型TCP/IP分层模型(TCP/IP Layening Model)被称作因特网分层模型(Internet Layering Model)、因特网参考模型(Internet Reference Model)。图2表示了TCP/IP分层模型的四层。  ┌────────────┐┌─┬─-┬─-┬─┬─-┬─┬─-┬─┬─-┬─┬─-┐  │        ││D...

2020-03-27 22:08:29 2344

原创 awk命令

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfred Aho 、Pe...

2020-03-27 21:47:38 412

空空如也

空空如也

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

TA关注的人

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