- 博客(32)
- 收藏
- 关注
原创 局域网连接另一台机器数据库连不上问题
然后找bind-address,默认是127.0.0.1,改成0.0.0.0就行。安装个gufw,用可视化配置防火墙,先关了排查下是不是防火墙问题。查看Host字段是什么,如果是localhost就改成%ubuntu的mysql8.0+路径是在。由于是sudo出的权限需要输入密码。这里改完记得刷新权限。改完配置记得重启服务。
2024-05-08 14:22:12
987
原创 Docker部署Nacos的运行命令参数解析
官方镜像为nacos/nacos-server,直接启动是前台模式,命令行窗口不能关,建议加-d参数后台运行。这些是鉴权配置身份识别加密相关的,而且密钥不建议设太短,设置成差不多这个长度即可。ping容器,正常情况下使用mysql容器名和容器ip都可ping通。必开8848,但是网上有说建议开三个端口,所以我这开了。注意:Nacos2.3.1版本在使用内置数据库会出现。的bug,我这里建议开启外置数据库。支持IP还是域名模式(默认是ip)环境变量配置错误,此变量配置为。运行成功后进入nacos容器。
2024-03-20 23:51:33
1160
原创 记一次Tomcat启动失败报循环依赖的问题(AncestorAxisIterator-AncestorOrSelfAxisIterator)
[org.jaxen.util.AncestorAxisIterator->org.jaxen.util.AncestorOrSelfAxisIterator->org.jaxen.util.AncestorAxisIterator]
2022-06-30 15:59:35
861
转载 MySQL explain详解
本文主要讲述如何通过 explain 命令获取 select 语句的执行计划,通过 explain 我们可以知道以下信息:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引实际使用了,表之间的引用,每张表有多少行被优化器查询等信息。下面是使用 explain 的例子:在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询时,会返回执行计划的信息,而不是执行这条SQL(如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中)。 复制代码
2021-08-19 19:56:08
145
原创 SpringMVC简介
MVC(model view control)本质上是一种设计模式,而在我们的web项目中,spring通过这种设计模式管理了我们的项目,即SpringMVC。SpringMVC 简单介绍SpringMVC 框架是以请求为驱动,围绕 Servlet 设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是 DispatcherServlet,它是一个 Servlet,顶层是实现的Servlet接口。SpringMVC 使用需要在 web.xml 中配置 Dispatcher
2021-08-17 22:32:05
112
原创 事务的隔离级别
以MYSQL数据库来分析四种隔离级别基础概念更新丢失(Lost update)如果多个线程操作,基于同一个查询结构对表中的记录进行修改,那么后修改的记录将会覆盖前面修改的记录,前面的修改就丢失掉了,这就叫做更新丢失。这是因为系统没有执行任何的锁操作,因此并发事务并没有被隔离开来。第1类丢失更新:事务A撤销时,把已经提交的事务B的更新数据覆盖了。第2类丢失更新:事务A覆盖事务B已经提交的数据,造成事务B所做的操作丢失。解决方法:对行加锁,只允许并发一个更新事务。脏读(Dirty Reads)脏
2021-08-15 22:41:11
117
原创 Sql执行计划的一些指标含义
Using where: 表示优化器需要通过索引回表查询数据。Using index: 即覆盖索引,表示直接访问索引就足够获取到所需要的数据,不需要通过索引回表,通常是通过将待查询字段建立联合索引实现。Using index condition: 在5.6版本后加入的新特性,即大名鼎鼎的索引下推,是MySQL关于减少回表次数的重大优化。Using filesort: 文件排序,这个一般在ORDER BY时候,数据量过大,MySQL会将所有数据召回内存中排序,比较消耗资源。...
2021-08-15 21:43:09
418
原创 慢查询优化方案
如果你的项目中出现了一些查询超时情况,很可能是项目中有了一些慢查询的情况产生,下面就慢查询的排查和解决方案进行一番分析。sql排查方式首先,如何排查sql是否走了索引,通过explain关键字找出sql的执行计划,通过在对执行计划的分析,找出某表关联部分是否走了索引。具体语法:explain select * from table_name;让不走索引的sql走索引mysql有个特别神奇的东西叫做索引,一个sql走或不走索引,查询效率差别极大,因此大部分的查询效率问题都是不走索引造成的,也就意
2021-08-15 21:36:35
4171
原创 不走索引的情况及一些规避方案
通过一些日常的开发经验,归纳了一些不走索引的常规情况,欢迎大家补充或指正。1、在字符集不一致的时候,不走索引。如果两个关联表的字符集不一致,会导致索引失效,因此,在生产环境执行DDL建表语句时,要注意不要指定某表或某字段(尤其是关联字段)的字符集,让整个数据库的字符集一致,这样可以避免因字符集导致索引失效的慢sql的问题。2、在字段类型不一致的时候,不走索引。如果有两个关联键字段类型不一致的时候,会导致索引失效。因此在执行创建关联键字段时候,一定要确定另一张表的关联键字段类型是什么。3、在左模糊查
2021-08-15 20:25:32
1783
原创 动态代理简介
在了解动态代理之前,我们首先要理解什么是代理模式,动态代理究竟要解决什么问题。因此,在介绍动态代理之前,先介绍下代理模式(静态代理)静态代理充分利用了Java的多态性,通过对接口的多个实现,另代理类与被代理类实现同一个接口,通过代理类调用接口方法,实现了调用被代理类(另一个实现类)的方法。具体实现:在编写代理类时,在代理类中声明父类接口,构造方法入参即为父类接口。在主方法中创建被代理类对象时,会调用被代理类的构造器,此时通过java的多态性,将接口的实现类声明为父接口,并将其作为参数传入被代理类,这样
2021-08-15 19:29:31
244
原创 GC实现机制
一、GC实现机制-我们为什么要去了解GC和内存分配?说道这个问题,我有一个简单的回答:在真实工作中的项目中,时不时的会发生内存溢出、内存泄露的问题,这也是不可避免的Bug,这些潜在的Bug在某些时候会影响到项目的正常运行,如果你的项目没有合理的进行业务内存分配,将会直接影响到的项目的并发处理,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节,而了解了GC实现机制则是我们一切监控和调节的前提。二、GC实现机制-Java虚拟机将会在什么地方进行垃圾回收?说起垃
2021-08-14 22:43:27
327
转载 mysql B+树 索引机制
索引在mysql数据库中分三类:B+树索引,Hash索引,全文索引。我们今天要介绍的是工作开发中最常接触到innodb存储引擎中的的B+树索引。要介绍B+树索引,就不得不提二叉查找树,平衡二叉树和B树这三种数据结构。B+树就是从他们仨演化来的。二查找叉树、平衡二叉树、B树、B+树1 二叉查找树首先,让我们先看一张图从图中可以看到,我们为user表(用户信息表)建立了一个二叉查找树的索引。图中的圆为二叉查找树的节点,节点中存储了键(key)和数据(data)。键对应user表中的id,数据对应
2021-08-14 22:29:16
196
原创 Java锁的简介
Java中锁的分类在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:公平锁/非公平锁可重入锁独享锁/共享锁互斥锁/读写锁乐观锁/悲观锁分段锁偏向锁/轻量级锁/重量级锁自旋锁 上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内容是对每个锁的名词进行一定的解释。公平锁/非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁。 非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线
2021-08-14 21:56:01
117
转载 Java8 中的 HashMap 和 ConcurrentHashMap 解析
Java8 HashMapJava8 对 HashMap 进行了一些修改,最大的不同就是利用了红黑树,所以其由 数组+链表+红黑树 组成。根据 Java7 HashMap 的介绍,我们知道,查找的时候,根据 hash 值我们能够快速定位到数组的具体下标,但是之后的话,需要顺着链表一个个比较下去才能找到我们需要的,时间复杂度取决于链表的长度,为 O(n)。为了降低这部分的开销,在 Java8 中,当链表中的元素超过了 8 个以后,会将链表转换为红黑树,在这些位置进行查找的时候可以降低时间复杂度为 O(l
2021-08-13 23:27:03
387
转载 Java7 中的 HashMap 和 ConcurrentHashMap 解析
阅读建议:四节基本上可以进行独立阅读,建议初学者可按照 Java7 HashMap -> Java7ConcurrentHashMap -> Java8 HashMap -> Java8 ConcurrentHashMap顺序进行阅读,可适当降低阅读门槛。 阅读前提:本文分析的是源码,所以至少读者要熟悉它们的接口使用,同时,对于并发,读者至少要知道CAS、ReentrantLock、UNSAFE 操作这几个基本的知识,文中不会对这些知识进行介绍。Java8用到了红黑树,不过本文不会
2021-08-13 22:56:54
120
原创 双亲委派机制
双亲委派想要知道为什么要破坏双亲委派,就要先从什么是双亲委派说起,在此之前,我们先要了解一些概念:对于任意一个类,都需要由加载它的类加载器和这个类本身来一同确立其在Java虚拟机中的唯一性。什么意思呢?我们知道,判断一个类是否相同,通常用equals()方法,isInstance()方法和isAssignableFrom()方法。来判断,对于同一个类,如果没有采用相同的类加载器来加载,在调用的时候,会产生意想不到的结果:public class DifferentClassLoaderTest
2021-08-11 00:14:10
125
原创 spring三级缓存
大家在实际使用spring的时候,不知道有没有发现,spring在实现依赖注入的时候,每一个被注入的对象必须有无参构造器。否则会提示你不能自动注入(如图)。原因就是,spring在注入对象的时候,会先调用无参构造器创建一个空的对象,然后在调用对象的set方法一个个的进行属性值的传入。但是为什么spring会选择这种初始化方式而不是直接调用有参构造器进行对象创建呢,这就涉及到了spring的设计 -- 三级缓存。首先假想一个场景嗷,如果有两个对象,A依赖B,B依赖A,在你的理解中spring能不能
2020-08-30 19:54:54
198
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人