自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一点莹的博客

抬头是山,路在脚下

  • 博客(84)
  • 收藏
  • 关注

原创 java.lang.RuntimeException: java.lang.IllegalStateException: failed to connect to zookeeper server

zookeeper版本支持问题,经测试(dubbo3.0.2.1),3.4.13及以下版本正常运行,3.4.14后报错。cmd命令窗中输入“TelnetIP端口或者Telnet域名端口”并且回车,如果进入Telnet页面(全黑的),证明端口可用。2.是否超时时间,把超时时间设置很大,且设置了多个还是报错,根据报错位置调试源码发现,zk的connection不为null,但是后续报错。所以怀疑是版本问题,降低版本后成功运行。项目启动报zookeeper连接错误。...

2022-07-28 13:36:53 2616 1

原创 Threads and Locks

如果程序没有任何的数据竞争,那么程序的所有执行操作将表现为连续一致。可能被观察到的在外部执行的操作,同时它的执行结果受外部环境控制,可以理解为Java调用了一个native方法,Java可以得到这个方法的返回值,但对于具体的执行不感兴趣,意味着Java不能对这种语句进行重排序,因为Java无法知道方法体会执行哪些指令;“线程内语义”在单线程中,我们可以通过一行一行看代码来预测执行结果的,只不过,代码中使用到的读取内存的值我们是不能确定的,这取决于在内存模型这个大框架下,我们的程序会读到的值。...

2022-07-20 10:46:33 205

原创 广告缓存架构及相关知识(Lua、OpenResty、Canal)学习

1.广告数据变更频率低,访问频率高,那么如何提升访问速度呢?2.LUA(了解)2.1 Lua是什么?Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。2.2 特性支持面向过程(procedure-oriented)编程和函数式编程(functional programming);(可以写sql)自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;语言内置模式

2021-12-29 23:41:26 541

原创 Lock wait timeout exceeded; try restarting transaction

问题:修改数据库的时候,发现有两条数据一直无法修改(增删改都不可以),但是同库同表的其他数据都可以操作,数据库报错Lock wait timeout exceeded; try restarting transaction解决方法:我们可以通过到information_schema 中来进行查找被锁的语句。解释: information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。再简单点,这台MySQL服务器上,到底有哪些数据库

2021-12-24 11:40:54 559

原创 FastDFS学习笔记

1、FastDFS工作流程2.FastDFS文件上传流程客户端上传文件后存储服务器将文件ID返回给客户端,此文件ID用于以后访问该文件的索引信息。文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名。ep:group1/M00/02/44/GHFD654GFD.sh组名: 文件上传后所在的storage组名称,在文件上传成功后由storage服务器返回,需要客户端自行保存。虚拟磁盘路径: storage配置的虚拟路径,与磁盘选项store_path对应,如果配置了了store_path0则

2021-12-09 11:11:21 1210

原创 通用Mapper中insert方法与insertSelective的区别

通用方法中但凡带有selective的方法都会忽略空值mapper.insertSelective(student) ==> sql 语句 insert into students(id,name) values (?,?)mapper.insert(student) ⇒ 语句 insert into students(id,name,sex,telep,address) values (?,?,?,?,?)...

2021-12-08 22:00:31 554

原创 Docker入门

重启服务就可以systemctl restart network

2021-12-03 15:18:05 1180

原创 如何查看mysql的日志

1、打开cmd输入 mysql -u root -p,然后输入密码2、查询当前日志记录状况mysql>show variables like 'log%';(是否启用了日志)如果lob_bin="OFF"则执行SET GLOBAL general_log = ‘ON’如果lob_bin="ON"证明日志开启,日志在对应目录下这个文件中,打开即可...

2021-11-29 17:51:00 9166

原创 虚拟机tar解压出错:gzip: stdin: unexpected end of file的解决

安装Redis时候,解压的时候出现了这样的错误:gzip: stdin: unexpected end of filetar: Unexpected EOF in archivetar: Error is not recoverable: exiting now最后发现,这个问题是因为压缩文件是从Windows拖拽到虚拟机,后来改成从Windows复制粘贴到虚拟机就可以了...

2021-11-28 14:51:50 3126

原创 VMware16安装CentOS、Linux系统及配置网络连接

一、资源地址VMware16.0CentOS7二、CentOS安装步骤

2021-11-26 13:58:07 1069

原创 Dubbo原理和使用

分布式系统定义Dubbo是用于分布式系统的框架所以我们要先了解什么是分布式,分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统。老式系统(单一应用架构)是把一个系统,统一放到一个服务器当中然后每一个服务器上放一个系统,如果要更新代码的话,每一个服务器上的系统都要重新部署,十分麻烦。而分布式系统就是将一个完整的系统拆分成多个不同的服务,然后在将每一个服务单独的放到一个服务器当中应用的架构演变单一应用架构:一个项目装到一个服务器当中,也可以运行多个服务器每一个服务器当中都装一个

2021-11-22 16:47:04 2711

原创 Spring 事务隔离级别和传播行为

一、spring支持的事务声明方式编程式事务 当系统需要明确的,细粒度的控制各个事务的边界,应选择编程式事务。声明式事务 当系统对于事务的控制粒度较粗时,应该选择声明式事务二、spring支持7种事务传播行为传播行为含义propagation_required(xml文件中为required)表示当前方法必须在一个具有事务的上下文中运行,如有客户端有事务在进行,那么被调用端将在该事务中运行,否则的话重新开启一个事务。(如果被调用端发生异常,那么调用端和被调用端事

2021-11-16 00:13:47 4204

原创 Python基础

1.数据类型和变量数据类型整数(int)Python中的整数包括正整数、0 和负整数。可以使用多种进制来表示整数:(1) 十进制形式(2) 二进制形式书写时以0b或0B开头(3) 八进制形式以0o或0O开头(4) 十六进制形式书写时以0x或0X开头。浮点数(float)Python 中的小数有两种书写形式:(1) 十进制形式这种就是我们平时看到的小数形式,例如 34.6、346.0、0.346。书写小数时必须包含一个小数点,否则会被 Python 当作整数处理。(2) 指数形式a

2021-10-27 10:57:22 822

原创 FULL JOIN和CROSS JOIN的区别

FULL JOIN只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。(返回JOIN 两端表的所有数据,无论其与另一张表有没有匹配。显示左连接、右连接和内连接的并集)FULL JOIN 关键字语法SELECT column_name(s)FROM table_name1FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name注释:在某些数据库中, FULL JOIN 称为 FULL OUTE.

2021-07-10 13:41:10 5250

原创 mysql常用函数

时间日期类别select curdate(); --获取当前日期select now(); --获取当前日期和时间DAY(date); --返回给定日期的月份的日期部分--DAY函数接受一个参数,它是您要获取月份日期的日期值。如果date参数为零,例如'0000-00-00',则DAY函数返回0,如果日期为NULL,则DAY函数返回NULL值。--例子SE

2021-07-10 13:35:19 68

原创 Spring学习(七)注解开发

在Spring4之后,要使用注解开发必须要保证aop的包导入了使用注解需要导入context约束,增加注解的支持1.bean@Component 相当于注册bean2.属性如何注入@Value(“kuan”)3.衍生的注解@Component有几个衍生注解,我们在web开发中,会按照mvc三层架构分层!。dao [@Repository]service [@Service]controller [@Controller]这四个注解功能都是一样的,都是代表将某个类注册到Spring中

2021-03-17 16:37:41 78

原创 Spring学习(六)Bean的自动装配及使用注解实现自动装配

Bean的自动装配自动装配是Spring满足bean依赖一种方式!Spring会在上下文中自动寻找,并自动给bean装配属性!在Spring中有三种装配方式在xml中显式的配置在java中显式配置隐式的自动装配bean[重要]示例(1)创建实体类public class Cat { public String cat; public void shut(){ System.out.println("miao"); } @Overrid

2021-03-16 18:59:30 238

原创 Spring学习(五)Bean的作用域

在Spring中,那些组成应用程序的主体及由SpringIOC容器所管理的对象,被称之为bean。简单地讲,bean就是由IOC容器初始化、装配及管理的对象。配置文件中定义 Bean 时,我们不但可以配置 Bean 的属性值以及相互之间的依赖关系,还可以定义 Bean 的作用域 。作用域会对 Bean 的生命周期和创建方式产生影响 。Bean 的作用域类型(scope):类型说明singleton在 Spring 容器中仅存在一个 Bean 实例, Bean 以单例的形式存在,默

2021-03-16 12:36:45 90

原创 Spring学习(四)依赖注入,set注入,c命名和p命名空间注入

1.Spring框架的核心功能Spring容器作为超级大工厂,负责创建、管理所有的Java对象,这些Java对象被称为Bean。Spring容器管理容器中Bean之间的依赖关系,Spring使用一种被称为"依赖注入"的方式来管理Bean之间的依赖关系。使用依赖注入,不仅可以为Bean注入普通的属性值,还可以注入其他Bean的引用。依赖注入是一种优秀的解耦方式,其可以让Bean以配置文件组织在一起,而不是以硬编码的方式耦合在一起。2.理解依赖注入当某个Java对象(调用者)需要调用另一个Java

2021-03-15 22:58:44 178

原创 Spring学习(三)Spring配置文件的解析

1.bean标签:<!--bean讲解:1.没有id,没有name,我们依旧可以获取这个对象,但是不建议使用、需要使用类的class对象获取; User bean = context.getBean(User.class);2.id 就是对象的名字3.class 就是要实例化的类4.name就是别名 有id的时候,name是别名 , 没有id的时候,name就是对象的名字 别名可以起多个--><bean id="user" name="userTwo

2021-03-15 21:42:49 150

原创 设计模式—简单工厂和工厂方法

简单工厂:代码分析:由上图可以看出,当顾客需要购买车时不需要了解一个车是怎么生产出来的,只需和车工厂进行交互即可,一个个的品牌的车对象都是由车工场来创建的。Car接口中规定了车的名称,不同品牌的车类实现了该接口,而CarFactory类和不同品牌的车采用组合的关系给用户提供car不同品牌的car对象。缺点: 不满足开闭原则。 eg:当新增加一个车车品牌时,就要对车工场的代码进行修改。代码实例://Car接口public interface Car { void name();}

2021-03-11 17:39:20 87

原创 设计模式—静态代理和动态代理(AOP的底层实现原理)

代理模式可分为静态代理,动态代理。1.静态代理:静态代理的角色分析:真实对象;代理真实对象的对象(代理对象)一般会添加一些附加的操作;真实对象和代理对象抽象出来的公共部分(一般为抽象类或者接口);用户(通过代理对象来调用真实对象的方法)。静态代理的一个代码案例:情景模型:你(用户)通过租房中介(代理对象)从房东(真实对象)进行租房的活动。真实对象(Host)//真实对象public class Host implements Rent { public void rent(

2021-03-11 17:04:23 265

原创 Mysql常见面试题整理

1.Mysql 的存储引擎有哪些?,Myisam 引擎与Innodb 引擎的区别是什么?存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。Mysiam ,Innodb,Memory,Merge 等区别:Innodb 支持事物,而myisam 不支持事物,myisam 用于多查询及插入为主的应用,而innodb 适合频繁修改的以及设计到安全新较高的应用。myisam 支持表锁,innodb支持行锁,Innodb 是需要指定的,支持外键,不支持FULLTE

2021-03-10 16:11:11 707 1

原创 乐观锁(CAS)与悲观锁详解

1.Java并发包(java.util.concurrent)的主要实现机制:采用Volatile保证内存的可见性;采用CAS(Compare And Swap)算法保证数据的原子性。2.乐观锁(CAS算法)和悲观锁(synchronized):Synchronized就是一种悲观锁,因为它总是假设最坏的情况,每次去拿数据都会认为别人会修该,所以每次都会加锁,效率较低。乐观锁其实是一种思想,它具体有两个步骤:冲突检测和数据更新。所以它不会每次访问都进行加锁控制,只是在进行更新操作时才进行冲突检测和

2021-03-09 23:24:47 1473

原创 JVM学习笔记(六)JMM和Volatile

JMMJMM(Java Memory Model的缩写)是一种java内存模型。它类似于缓存一致性协议,用于定义数据读写的规则。JMM定义了线程工作内存和主内存的一种抽象关系,线程中的共享对象存在于主内存中,每个线程都有一块私有的本地内存。解决共享对象可见性问题,即线程中修改数据立马同步到主线程中,其它线程复制时可以得到最新的数据:volilate和synchronize关键词。JMM数据同步模型如下图。...

2021-03-09 22:14:26 114

原创 JVM学习笔记(五)GC 垃圾回收机制

1.GC 垃圾回收机制JVM堆里面可能存在GC的地区有以下几种新生代幸存区(from、to,对应前文的幸存0区和幸存1区,交替转换)老年区GC:分为轻GC(普通GC)和重GC(全局GC)程序在运行过程中,会产生大量的内存垃圾(一些没有引用指向的内存对象都属于内存垃圾,因为这些对象已经无法访问,程序用不了它们了,对程序而言它们已经死亡),为了确保程序运行时的性能,java虚拟机在程序运行的过程中不断地进行自动的垃圾回收(GC)。2.垃圾的标记:在GC进行垃圾回收时,首先要判断什么是垃

2021-03-09 15:29:20 116

原创 Spring学习(二)IoC 控制反转

1.Ioc (inversion of control)控制反转(是一种思想)。IoC是一种思想,在此之前程序中使用对象的创建都必须由程序员完成,IoC将对象的创建,保存,以及管理(生命周期)交由Spring来完成,所以Spring也相当于一个容器(存放对象的对象),该过程即为控制反转。作用:实现了对象间的解耦,大大降低了耦合性,使模块独立。2.一个小案例:(使用Idea下的maven来完成此demo)(1).通过依耐导入Jar包(spring web mvc):<!-- https:/

2021-03-08 11:06:33 93

原创 Spring学习(一)概述

1.Spring是一个轻量级的控制反转【IOC】和面向切面【AOP】的(容器)框架。2.Spring的组成:架构 : mvc三层架构Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式。组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory

2021-03-05 15:24:01 111

原创 Mybatis学习(六)动态SQL和缓存

1.动态SQL什么是动态SQL,动态SQL就是指根据不同的条件,生成不同的SQL语句(1)编写数据库内容CREATE TABLE `blog` ( `id` varchar(50) NOT NULL COMMENT '博客id', `title` varchar(100) NOT NULL COMMENT '博客标题', `author` varchar(30) NOT NULL COMMENT '博客作者', `create_time` datetime NOT NULL COMME

2021-03-03 17:55:50 92

原创 Mybatis学习(五)Lombok的使用和处理多对一,一对多问题

1.LombokLombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。使用步骤:在IDEA中安装Lombok插件!在项目中导入lombok的jar包<dependency> <groupId>org.projectlombok</groupId> <artifactId&

2021-03-01 21:48:31 206

原创 Mybatis学习(四)项目中的一些优化

1.在maven项目的pom.xml中,加入以下的代码:使得:maven在导出项目的时候,能够将我们的配置及资源导出<build> <!--希望maven在导出项目的时候,能够将我们的配置及资源导出--> <resources> <resource> <directory>src/main/java</directory>

2021-03-01 11:10:32 129

原创 Mybatis学习(三)分页的实现,使用注解开发,使用注解实现CURD

分页的实现此处有两种思路:1.使用SQL的 limit ?,?2.使用limit分页方式一 (步骤:):(1).dao层中UserMapper接口的编写: //分页的sql实现 List<User> getUserByLimit(Map<String,Integer> map);(2).dao层中UserMapper接口的userMapper.xml编写<select id="getUserByLimit" parameterType="map" resul

2021-02-28 23:10:18 192

原创 Mybatis学习(二)配置文件的详解,代码的优化和日志

1.配置解析(1)核心配置文件mybatis-config.xmlMyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)environment(环境变量)transactionManager(事务管理

2021-02-27 23:08:46 120

原创 Mybatis学习(一)使用idea和mybatis编写第一个程序

1.什么是Mybatis?(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。(2)MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。(3)通过xml 文件或注解的方式将要执行的各种 stateme

2021-02-25 11:56:56 194

原创 JAVAWEB学习(五)MVC三层框架,过滤器Filter

1.什么是MVCModel,Views,Contraller 模型,视图,控制器2.1 早些年用户直接访问控制层,控制层就可以直接操作数据库;servlet–CRUD–>数据库弊端:程序十分臃肿,不利于维护servlet的代码中: 处理请求、响应、视图跳转、 处理JDBC、处理业务代码、处理逻辑代码架构:没有什么是加-层解决不了的!2.2 MVC三层架构Model业务处理:业务逻辑(Service)数据持久层: CRUD (Dao)View展示数据提供链接发起

2021-02-21 11:21:04 429

原创 JAVAWEB学习(四)JSP原理

1.什么是JSP: Java Service Page(Java服务器页面)用来处理一些java前后端交互数据,主要用来显示数据,不建议大量的代码写在jsp中;特点:简单,和HTML差不多缺点:书写的页面会很乱,HTML代码和Java代码交错。2.1 jsp到底怎么执行的?动态请求会被分发到web容器(web服务器)中;容器会去执行字节码文件,就是 .class文件;Servlet是Java类,可以直接编译成class文件;(问题? jsp怎么编成class文件)jsp先会被转换成一个J

2021-02-20 19:19:39 81

原创 JAVAWEB学习(三)会话,Cookie和Session

会话(1)什么是会话会话:用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程可以称之为会话;有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学,曾经来过,称之为有状态会话;(2)保存会话的两种技术1.cookie 客户端技术服务端给客户端一个 信件,客户端下次访问服务端带上信件就可以了;2.session 服务端技术,利用这个技术,可以保存用户的会话信息? 我们可以把信息或者数据放在Session中!服务器登记你来过了,下次你来的时候我来匹配你;Co

2021-02-19 23:39:31 102

原创 JAVAWEB学习(二)Servlet,Response验证码实现,重定向和Request

Servlet1.1简介Servlet就是sun公司开发动态web的一门技术Sun在这些API中提供一个接口叫做:Servlet,如果你想开发一个Servlet程序,只需要完成两个小步骤:编写一个类,实现Servlet接口把开发好的Java类部署到web服务器中。把实现了Servlet接口的Java程序叫做,Servlet1.2使用步骤1).构建一个普通的Maven项目,删除其中的src目录,再在这个项目里面创建一个Module项目,这个空的module项目就是Maven的主工程,也可以

2021-02-19 20:44:34 120

原创 Maven环境搭建

1.我们为什么要学习Maven在Javaweb开发中,需要使用大量的jar包,我们手动去导入;而maven可以自动导入和配置jar包;Maven会规定好该如何去编写Java代码,必须要按照这个规范来(核心思想约定大于配置:有约束不要去违反);2.下载安装Maven2.1 到Maven官网(http://maven.apache.org)下载软件2.2 直接解压apache-maven-3.6.3-bin.zip即可2.3配置环境变量新建系统变量变量名:M2_HOME 变量值:D:\En

2021-02-07 14:36:12 128

原创 JAVAWEB学习(一)基本概念,Tomcat服务器,HTTP

1.基本概念:1.1web开发的相关知识:web即就是网页的意思,它用来表示Internet主机上供外界访问的资源,Internet上供外界访问的资源科分为:静态web资源(Html):浏览器中供人浏览的数据是不变的;动态web资源(jsp/servlet php asp):网页中供人浏览的数据是由程序提供的,不同的时间点,提供的数据是不相同的。(在Java中动态web资源开发技术,统称为Javaweb)1.2Web应用程序:web应用程序就是浏览器访问的程序,通常简称为web应用。一个w

2021-02-06 01:05:26 179

空空如也

空空如也

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

TA关注的人

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