-
arp协议
1、主机在相同的网段Title: ARP协议解析note left of 主机A: 主机A首先查看ARP缓存表,\n判断是否包含有主机B的ARP表项。\n如果有,则主机A直接利用\nARP表中的MAC地址,\n对IP数据包进行帧封装,\n并将数据包发送给主机B。主机A->主机B: 广播ARP请求报文主机A->主机C: 广播ARP请求报文note left of 主机B: 主机B比较请求报文ip发现\n和自己的ip相同,将主机A的\nip和mac信息存入arp缓存note rig...…
-
线程池详解
1.ThreadPoolExecutor构造函数:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable...…
-
Lua和Redis类型转换
Lua 数据类型和 Redis 数据类型转换当 Lua 使用 call() 或 pcall() 调用 Redis 命令时,Redis 返回值将转换为 Lua 数据类型。同样,在调用 Redis 命令和 Lua 脚本返回值时,Lua 数据类型会转换为 Redis 协议,以便脚本可以控制 EVAL 将返回给客户端的内容。这种数据类型之间的转换是这样设计的,如果将 Redis 类型转换为 Lua 类型,然后将结果转换回 Redis 类型,结果与初始值相同。换句话说,Lua 和 Redis 类型之...…
-
Redis常见问题
Redis常见问题1.Redis到底是单线程还是多线程Redis6.0版本之前的单线程,指的是网络IO和键值对读写是由一个线程完成。Redis6.0后引入多线程指的是网络请求采用了多线程,而键值对读写仍然是单线程处理的,所以Redis仍然是并发安全的。也就是说,只有网络请求和数据操作是单线程的,其它的如持久化,数据同步,是由额外线程执行的。2.Redis单线程为什么还能这么快1.命令基于内存操作2.命令执行是单线程,没有线程切换的开销3.基于IO多路复用机制,提升IO利用率4.高效的数据结...…
-
jvm内存分区
1.程序计数器 作用,记住下一条指令的地址 通过寄存器实现 特点 线程私有 不会存在内存溢出 2.jvm虚拟机栈2.1 定义 栈帧默认1MB 每个线程运行需要的内存,成为虚拟机栈 每个栈由多个栈帧(Frame)组成,对应着每次调用所占的内存 每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法2.2 栈内存溢出问题辨析:1.垃圾回收是否涉及栈内存? 没有,栈内存在执行完之后自动弹出栈顶销毁。2.栈内存分配是否越大越好?...…
-
redis集群原理与搭建
1.主从第一次同步是全量同步分为三个阶段:1.1.第一阶段我们先明白两个概念: Replication Id:简称replid,是数据集的标记,id一致则说明是用一数据集。每一个主节点都有唯一的replid,从节点会继承主节点的replid offset:偏移量,随着记录在repl_baklog中的数据增多而逐渐增大。slave完成同步时也会记录当前同步的offset。如果slave的offset小于master的offset,说明slave数据落后于master,需要更新。因此sla...…
-
tomcat解析
通过这份配置文件,我们就可以了解 Tomcat 的体系结构,示例文件如下所示<Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngin...…
-
docker部署pxc集群
1.首先准备拉取pxc镜像1.1.每台机器都需要执行docker pull percona/percona-xtradb-cluster:5.7.21改一下名字docker tag percona/percona-xtradb-cluster:5.7.21 pxcdocker rmi percona/percona-xtradb-cluster:5.7.211.2.初始化集群在机器1上执行docker swarm init执行完毕后会得到一条命令docker swarm join –tok...…
-
linux部署springboot+vue项目
记录一下这几天部署项目的过程:1.首先准备springboot项目1.1.切换一下配置文件1.2.由于我们使用内置的tomcat服务器,所以直接打成jar包,在pom文件里面添加jar1.3.点击clean执行完毕后点击package1.4.执行完毕后就能看见target目录下有个jar包,这个就是我们需要的2.准备vue项目把vue项目里面的后端路由改成服务器ip:springboot运行端口2.1.在vue目录里面执行npm install命令执行完毕2.2.执行npm run bui...…
-
MySQL性能优化
这几天有兴致想更新下博客,记录一下学习过程:1.数据类型优化1.1.更小更好更小的数据类型更快,因为它们占用更少的资源。但是要确保没有低估需要存储的数值范围,因为在schema中增加数据类型范围是十分耗时的操作。如果无法确定哪个数据类型最好,就选择你认为的不会超过的最小类型。1.2.简单就好简单数据类型通常需要更少的CPU周期,例如整型比字符操作代价低,因为字符集和校对规则使字符比较比整型比较更加复杂。1.3.尽量避免NULL很多表都包含可为NULL(空值)的列,这是因为可为NULL是列的...…
-
Spring底层概念
这几天有兴致想更新下博客,记录一下学习过程:BeanDefinationBeanDefination表示bean定义,Spring根据BeanDefination来创建Bean对象,BeanDefination有多种属性用来描述Bean,BeanDefination是Spring中非常核心的概念。下面是BeanDefination中比较重要的几个属性:1.beanClass表示一个bean的类型,比如UserService.class、OrderService.class,Spring在创...…
-
es学习
这几天有兴致想更新下博客,记录一下学习过程:为什么要使用 Elasticsearch?系统中的数据, 随着业务的发展,时间的推移, 将会非常多, 而业务中往往采用模糊查询进行数据的搜索, 而模糊查询会导致查询引擎放弃索引,导致系统查询数据时都是全表扫描,在百万级别的数据库中,查询效率是非常低下的,而我们使用 ES 做一个全文索引,将经常查询的系统功能的某些字段,比如说电商系统的商品表中商品名,描述、价格还有 id 这些字段我们放入 ES 索引库里,可以提高查询速度。Elasticsearc...…
-
Test
mysql一个update经历什么步骤:https://www.jianshu.com/p/dbbd8d601f8c…
-
开闭原则
这几天有兴致想更新下博客,记录一下学习过程:开闭原则对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类。因为抽象灵活性好,适应性广,只要抽象的合理,可以基本保持软件架构的稳定。而软件中易变的细节可以从抽象派生来的实现类来进行扩展,当软件需要发生变化时,只需要根据需求重新派生一个实现类来扩展就可以了。 原始链接 版权声明:自由转载-非商用-非衍生-保持署名...…
-
Elasticsearch教程与实例
概述Elasticsearch简称ES,是一个全文搜索服务器,也可以作为NoSQL数据库,存储任意格式的文档和数据,同时,也可以做大数据的分析,是一个跨界开源产品。ES有如下特点: 全文搜索引擎,ES是建立在Lucene上的开源搜索引擎可以用来进行全文搜索地理信息搜索。Wikipedia、GitHub、 StackOverFlow等网站均使用 ES. 文档存储和查询,可以像 NoSQL 那样存储任意格式文档,并能根据条件查询文档。 大数据分析,ES号称...…
-
使用Nacos搭建SpringCloud集群
基于Nacos搭建集群,希望对你有帮助。转载请标明出处,谢谢概述 Nacos 是开源的服务发现与注册中心,一个更易于构建云原生应用的动态服务发现(Nacos Discovery)、服务配置(Nacos Config)和服务管理平台。 服务发现和服务健康检查Nacos 使服务通过 DNS 或 HTTP 接口注册自己和发现其他服务变得简单。 Nacos 还提供服务的实时健康检查,以防止向不健康的主机或服务实例发送请求。 动态配置管理动态配置服务允许您在所有环境中以集中和动态的方式管理所有...…