- 博客(60)
- 资源 (1)
- 收藏
- 关注
原创 分布式锁的学习笔记
分布式锁1.1什么是锁?– 多个线程运行的时候,共享了同一块资源(临界资源),为了解决多个线程同时访问临界资源的过程中,加上了一把锁,只允许一个线程访问资源。1.2常见的锁– 1.互斥锁:互斥,只允许一个线程进入(有你没我,有我没你)– 2.自旋锁(很常用)2.什么是分布式锁– 讨论分布式锁前,先假设一个业务场景2.1 业务场景–先假设一个电商业务场景,在电商中,用户购买商品需要扣减商品库存,一般有两种扣减库存方式:下单减库存优点:用户体验好,下单成功,库存直接扣除,用户支付不会
2020-08-03 20:56:48 343
原创 SpringCloud(二)
springCloud学习笔记(二)1.学历经历– 去年工作之余,决定系统学习一下springCloud知识,由于公司框架也是微服务,加深springCloud知识理解,一方面有利于提高工作效率,另一方面也是增强自己知识储备。在最后学习springCloud组件的过程中,写了个订单服务案例,综合练习负载均衡、自定义负载均衡、超时设置等等。代码仓库:springCloud-demo仓库学习笔记world文档如下:文档前半部分是简单地springBoot总结,后半部分是SpringCloud学习笔记
2020-05-27 10:41:07 750
原创 Docker -minio安装使用
docker - minio安装使用1. 查找Minio镜像docker search minio2.拉取镜像docker pull minio/minio3. 启动miniodocker run -it -p 9000:9000 -d minio/minio server /data4. 查看logs 获取minio账号密码docker ps -adoc ker l...
2019-11-08 11:45:26 6497 4
原创 SpringCloud学习笔记(一)
SpringCloud学习笔记(一)1.Eureka– springCloud Eureka 主要负责完成微服务架构中的服务治理功能。springCloud为Eureka增加了springBoot风格的自动化配置,我们只需通过简单的引入依赖和注解配置就能让springBoot构建的微服务应用轻松的与Eureka服务治理体系进行整合。话不多说,上代码:pom.xml依赖<depend...
2019-07-26 16:16:41 234
原创 ElasticSearch(一)
ElasticSearch 基础知识点与安装部署1.ES是什么ElasticSearch,简称ES,是一个开源的、高扩展的、分布式全文搜索引擎,是整个ElasticStack技术栈的核心,它可以近乎实时的存储、检索数据。它具有非常优秀的扩展性,可以扩展到上百台服务器,处理PB级别的数据。一句话总结:是一个分布式、RESTful风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。2.全文索引Google,百度类的网站搜索,它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们
2022-03-29 14:57:01 2267
原创 oracle/PG库死锁问题处理
oracle表死锁导致接口超时问题处理今天遇到个生产环境问题,线上系统工资表死锁,导致修改工资表的接口504超时经排查确实工资表死锁了。oralce数据库查询死锁的表:select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o ,v$session s where l.object_id = o.object_id and l.session_id=s.sid;杀掉死锁会话:取上一步sql中的
2022-01-14 10:41:37 864
原创 shell脚本学习笔记
shell 脚本入门shell介绍shell 是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核shell 还是一个功能相当强大的编程语言,易编写,易调试,灵活性强shell 在开发生产中随处可见,例如服务启动脚本,自动化部署脚本等等,在这些场景中经常可以看到shell的身影Linus提供的Shell解析器有:bash 和 sh 的关系sh是bash的一种特殊的模式,也就是 /bin/sh 相当于 /bin/bash --posix。说白了sh就是 开启了POSIX(可移植
2021-12-24 16:15:23 848
转载 SpringCloud(四) Gateway网关
Gateway网关1.背景说明:SpringCloud Gateway 是SpringCloud的一个全新项目,基于Spring5.0+Spring Boot 2.0和Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的API路由管理方式。SpringCloud Gateway 作为SpringCloud生态系统中的网关,目标是替代Zuul,在Spring Cloud 2.0以上版本中,没有对新版本Zuul2.0以上最高性能版进行集成,仍然耗时使用Zuul1.x
2021-07-21 16:38:18 307
原创 SpringCloud(三)服务降级、熔断
服务降级、熔断1.服务降级1.1 什么是服务降级服务提供方由于网络原因,服务器原因,程序问题等等,导致服务不可用,响应缓慢,服务崩溃宕机。这时,为了较好的用户体验,需要进行服务降级,在出现问题时,返回又好消息,如返回一个提示信息:当期网络波动,请稍后再试。从而避免程序报错返回500,影响体验。1.2 怎么解决1.yml增加配置feign: hystrix: enabled: true2. 启动类增加注解@EnableHystrix3. 编写服务降级接口,实现类
2021-07-20 16:57:07 407
原创 正则校验手机号是否存在3位以上豹子号或升降连号
需求背景需求近期开发了一个需求,校验工资表中的人员手机号是否存在3位以上连号,或者3位以上豹子号,网上的文章有点搞人,正则可以用,但各种案例的方法根本不行。现自己结合需求,写出这篇文章。先上正则://匹配3位以上豹子号String pattern1 = "([\\d])\\1{2,}";//匹配3位或以上顺增或顺降String pattern2 = "(?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){2
2021-07-02 11:59:29 1290 1
原创 SpringCloud(三) 自定义Ribbon轮询算法
前言在日常的项目中,负载均衡基本上都是采用默认的loadBalance,今天便根据源码,手写轮询算法去实现负载均衡。先上loadBalance源码:new AtomicInteger (0) 便于后面原子操作reachableServers 表示有心跳的服务,即在注册中心正常的服务。allServers 表示所有的服务。nextServerIndex: 通过自旋获取实际请求服务的下标server:实际调用的服务自旋锁实现CAS,获取请求次数,用于服务集合下标改造,手撸代码实现轮询:
2021-05-06 16:53:43 313 1
原创 源码篇-JDK9对String类的优化改进
JDK9对String类做了优化改进,具体如下:JDK8源码:当我们new一个String对象时,对应的字符串其实是以char数组的形式存储在String对象内部。而这个char数组是final的,也就是说不可变的。这也就是为什么我们说String字符串拥有不可变的特性,当字符串改变了,char数组不可变,就只能创建一个新的对象,新的char数组了。JDK9源码:可以看到JDK9将char数组改成了byte数组。在程序中,绝大多数字符串只包含英文字母数字等字符,使用Latin-1编码,一个字符
2021-04-28 18:43:56 388
原创 JAVA开发常用工具整理
JAVA 开发常用工具整理天翼云盘自取链接:https://cloud.189.cn/t/BZrYjuyU3uu2(访问码:7w5y)
2021-04-08 20:48:04 219
原创 大数据学习笔记(四)-Hadoop集群脚本分发和群起
前面,已经搭建好了三台服务器,并实现了单机器启动,现在,将要实现集群启动,并使用xsync.sh煎熬本实现集群之间的配置分发,集群群起,这样就只需在一台机器上操作,就可以配置集群了。直接开干:1.配置集群分发脚本scp(secure copy)安全拷贝scp -r $pdir/$fname $user@hadoop$host:$pdir/$fname命令 递归 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称将hadoop1
2021-03-10 16:46:04 452 1
原创 大数据学习笔记(三)-yarn&日志
大数据学习笔记(三)-yarn配置yarn并允许MapReduce## 配置yarn-env.sh 修改JAVA_HOMEexport JAVA_HOME=/opt/module/jdk1.8.0_51## 配置yarn-site.xml<!-- Reducer获取数据的方式 --><property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_s
2021-01-04 15:40:22 247
原创 大数据学习笔记(三)-hdfs
单台服务器启动HDFS1.修改配置文件1.1.hadoop-env.shLinux系统中获取JDK的安装路径:[atguigu@ hadoop101 ~]# echo $JAVA_HOME/opt/module/jdk1.8.0_144修改JAVA_HOME 路径:export JAVA_HOME=/opt/module/jdk1.8.0_1441.2.core-site.xml<!-- 指定HDFS中NameNode的地址 --><property><
2020-12-31 16:05:31 153
原创 大数据学习笔记(二)-官方案例-Grep/WordCount
1、官方Grep案例1.首先,在hadoop-2.7.2文件夹下创建一个input目录然后,将etc/hadoop/*.xml复制到input目录中cp etc/hadoop/*.xml input/2.然后启动hadoop中的examples包中的grep案例,知道input路径和output路径,注意:此时若output文件夹存在,则会报output已存在错误hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.
2020-12-31 15:16:22 322
原创 大数据学习笔记(二)
环境搭建java环境1.在/opt 下创建两个文件夹,一个module,一个softwaresoftware放安装包,module放安装包解压后的文件将准备好的jdk和hadoop2.7.2tar包放入software文件夹中hadoop2.7.2下载地址:http://archive.apache.org/dist/hadoop/common/hadoop-2.7.2///解压至/opt/module文件夹下tar -zxvf jdk-tar包 -C /opt/module修改 /
2020-12-29 15:06:28 253
原创 事务回滚与手动回滚
前提一般我们在开发时,在方法或者类上加了@Transactional事务注解,然后会用 try catch 将可能会出问题的代码块包起来,在catch里面处理捕获的异常,但是,如果在catch里面没有把异常抛出去,此时事务是不会自动回滚的异常模拟比如这种情况:这里既没有抛出异常,也没有手动回滚,在插入流水表之后,模拟报错,下面更新总支出和总缴存不会执行,但上面的流水已经插入了,看结果这种情况显然不可取手动回滚在catch里面将手动回滚代码加上//手动回滚TransactionAsp
2020-12-04 16:21:58 1300
原创 大数据学习笔记(一)
概念大数据:指无法在一定时间范围内用常规软件工具进行捕捉、关联和处理的数据集合,是需要新处理模式才能具有更强的决策力,洞察力和流程优化能力的海量、高增长率和多样化的信息资产。特点大量高速多样低价值密度应用场景物流仓储:大数据分析助力商家精细化运营、提升销量、节约成本零售:分析用户消费习惯,为用户购买商品提供方便,从而提升商品销量。旅游:深度结合大数据能力与旅游行业的需求,共建旅游产业智慧管理、智慧服务和智慧营销的未来。商品广告推荐:给用户推荐可能喜欢的商品保险:海量数据挖掘及风
2020-12-04 09:49:11 253
原创 idea导入项目后启动报错,关于org.spring.xxx.xxx不存在
关于idea导入项目启动报错:xxxx不存在前几天导入公司项目,启动报错,检查了配置,maven本地仓库都配置好了,jdk版本和编译都设置的是好的,就是启动报错,如下图:报错不存在的包也有:到网上找了很多帖子,都不解决不了,后来发现有一个地方没有勾选:File–Settings–maven–Runner授权IDE去build/run maven项目,勾上之后完美解决...
2020-09-28 19:50:32 418
原创 以程序员的方式解决武汉公积金用户注册页面无法点击下一步问题
以程序员的方式解决武汉公积金注册页面无法点击下一步问题1.问题背景如图:当我们银行卡身份认证和发送验证码之后,页脚信息下移将返回和下一步的button覆盖掉了,所以点击无效,并没有触发点击按钮事件。2.解决方法1.当我们到达这个页面之后,发送完短信验证码,按快捷键F12(ps:有些电脑键盘需要配合Fn一起使用)打开信息如图:2.找到图中红色框标注的一行,并点击左侧头部三角形展开此...
2019-10-10 19:40:04 4727 8
原创 SpringData jpa(一)
orm思想和hibernate以及jpa的概述和jpd的基本操作1.orm思想主要目的:操作实体类就相当于操作数据库表 建立两个映射关系: 实体类和表的映射关系 实体类中属性和表中字段的映射关系 不在关注的重点: sql语句实现了ORM思想的框架:mybatis 、 hibernate2.hibernate框架介绍Hibernate是一个开放源代...
2018-12-28 21:01:18 423
原创 com.alibaba.dubbo.remoting.TimeoutException异常的解决方法
今天写商品分类和规格使用redis进行缓存的时候碰到一个头疼的BUG,早上刚开机的时候运行没有任何问题,电脑运行的东西多了之后,突然就给我报了个bug,头疼了一下午,后来找到个大牛解决了,原来是调用SpringDataRedis对数据进行存储到redis的时间过长,结果页面请求的超时时间过了,报了这个BUG .... 解决方法:在@Service注解这里设置timeout@Serv...
2018-12-11 21:02:59 6347
原创 Oracle
Oracle 视图---视图的概念:视图就是提供一个查询的窗口,所有数据来自于原表。---视图就是封装了一条查询的语句1.简化查询 2.提高数据的安全性 3.保证总部和分布数据即使统一例句:---查询语句创建表create table emp as select * from scott.emp;select * from emp;---创建视图【必须有db...
2018-11-21 19:50:36 185
原创 maven高级之SSM框架依赖jar包管理
maven高级之SSM框架依赖jar包管理 解决jar包冲突的三种方式:声明优先原则:---- 哪个jar包的坐标在靠上的位置,这个jar包就是先声明的。 先声明的jar包坐标下的依赖包,可以优先进入项目中。---- maven导入jar包中的一些概念: 直接依赖:项目中直接导入的jar包,就是该项目的直接依赖包。 传递依赖:项目中没有直接导入的jar包,可以通过项目直接依赖j...
2018-11-21 19:42:58 583
原创 SSM框架执行流程及底层源码讲解【本文持续更新...】
SSM框架执行流程及底层源码讲解---- 本篇文章主要讲解市面流行的项目框架:SpringMVC+Spring+MyBatis (简称SSM) 的执行流程以及执行过程中各个关键技术的底层实现原理。(博主接触java编程语言近两年时间,一直对框架实现原理懵懵懂懂,终于下定决心研究一番底层源码,本文为原创作品,原文出自本人hexo+github个人博客,地址: https:lhbit.to...
2018-11-21 19:38:35 8797 3
原创 【Servlet登录案例】
登录案例 --------- 分析 a) 建工程, 建数据库, 建表, b) 准备好 连接数据库的 代码. 德鲁伊 (druid) , mysql驱动jar包, spring的jdbcTemplate 建包 com.itheima.web 放servlet类 com.itheima.dao ...
2018-09-21 21:52:33 645 2
原创 【MySQL多表、事物】
本文内容介绍1. 多表查询2. 事务3. DCL多表查询:* 查询语法: select 列名列表 from 表名列表 where....* 准备sql # 创建部门表 CREATE TABLE dept( id INT PRIMARY KEY AUTO_INCREMENT, ...
2018-09-07 22:35:54 252
原创 【MySQL简单查询语句与约束】
1. 简单查询语句与约束1.1. 本文目录1. 简单查询语句与约束1.1. 本文内容介绍1.2. DQL:查询表中的记录(掌握)1.2.1. 基本语法1.2.2. 简单查询语句1.2.3. 条件查询1.2.4. 排序查询1.2.5. 聚合函数1.2.6. 分组查询1.2.7. 分页查询1.3. 约束(理解约束的作用)1.3.1. 概念: 对表...
2018-09-07 22:25:02 711
原创 【MySQL基础】
数据库的基本概念1. 数据库的英文单词: DataBase 简称 : DB2. 什么数据库? * 用于存储和管理数据的仓库。3. 数据库的特点: 1. 持久化存储数据的。其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库 -- SQL 4. 常见的数据库软件 * 参见《MySQL基础.pdf》M...
2018-09-07 22:20:12 241
原创 【基础加强,Junit单元测试、反射、注解】
今日内容1. Junit单元测试2. 反射3. 注解Junit单元测试:* 测试分类: 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。 2. 白盒测试:需要写代码的。关注程序具体的执行流程。* Junit使用:白盒测试 * 步骤: 1. 定义一个测试类(测试用例) * 建议: ...
2018-08-30 10:44:29 230
原创 【函数式接口】
函数式接口:有且仅有一个抽象方法的接口(允许有其他的方法) @FunctionalInterface 用来标记一个函数式接口 函数式接口的使用:一般结合Lambda表达式使用 使用Lambda表达式的前提,就你是必须要有一个函数式接口。使用场景有下面两种 1. 函数式接口作为方法的参数使用 调用这个方法时,可以传递Lambda表达式。 ...
2018-08-25 21:33:17 264
原创 【网络编程、图片上传案例】
网络编程:编写基于网络的应用程序,实现网络之间的数据传输。网络编程的三要素 1. 通信协议: 网络中数据传输的规则 UDP协议:面向无连接,不可靠(有可能丢失数据包) TCP协议:面向有连接,可靠(比较安全) 2. ip地址:网络中主机的一个唯一标识 ipv4: 占4个字节 127.0.0.1 本机的地址 ...
2018-08-25 21:28:38 324
原创 【缓冲流、转换流、序列化流,打印流、Properties集合】
缓冲流:缓冲流其实是一个包装流,基于基本输入和输出流,提供程序读写的效率。 字节缓冲流:底层的读和写还是依赖于InputStream和OutputStream 字符缓冲流:底层的渡河写还是依赖于Reader和Writer 字节缓冲流 //把a.flv内容复制到b.flv中 //使用BufferedInputStream 对InputStream进行包装...
2018-08-25 21:26:36 280
原创 【I/O流】
IO流概述:IO流是用来处理设备之间的数据传输(内存、硬盘) 输入流(读数据): 硬盘-->内存 输出流(存数据): 内存-->硬盘 记忆小技巧:以内存(程序)为基准,从内存(程序)中出去【输出流】,进入内存(程序)【输入流】。IO流的按照读写数据分类 字节流: 读写任何类型的文件 字节输出流(写字节) Out...
2018-08-25 21:17:51 214
原创 【File类、递归】
File类:表示一个文件或者文件夹(目录)的路径 路径分为相对路径和绝对路径 绝对路径:从盘符开始的路径 举例:"C:\\IdeaProjects\\javajob\\day08-code\\a.bmp" 相对路径:相对于项目的根目录(省略了项目的根目录) //假设项目的根目录为:"C:\\IdeaProjects\\javajob" ...
2018-08-25 21:12:03 176
原创 【线程池、Lambda表达式】
【线程池、Lambda表达式】今日主要内容* 等待与唤醒案例* 线程池* Lambda表达式(JDK1.8新特性)今日目标-[1 ] 能够理解线程通信概念-[ 2] 能够理解等待唤醒机制-[ 3] 能够描述Java中线程池运行原理-[4] 能够理解函数式编程相对于面向对象的优点-[5 ] 能够掌握Lambda表达式的标准格式-[ 6] 能够使用Lambda...
2018-08-18 10:52:27 996
原创 【异常、线程】
今日内容 异常 多线程异常 什么是异常 异常就是不正常的情况,在Java中的异常指的是程序在运行过程中出现的错误 Java是面向对象的语言,所有的东西都可以封装对象,异常也照样被封装成了对象,方便我们对这些错误 进行研究和解决,这些对象肯定有对应的类,这些类就是异常类,在程序中可能出现各种各样的错误,所以定义了 ...
2018-08-17 08:54:57 227
SpringCloud学习笔记
2020-12-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人