自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于设计模式--单例模式

设计模式(Design pattern),提供了在软件开发过程中面临的一些问题的最佳解决方案,是Java开发者必修的一门课程。主要分创建型模式、结构型模式和行为型模式。其中接下来我们要写的是单例模式,属于创建型模式。单例模式,顾名思义就是只有一个实例,并且她自己负责创建自己的对象,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。下面我们来看下有哪几种实现方式吧。核心代码:构造方法私有化,private。1、懒汉式懒汉式,顾名思义就是实例在用到的时候才去创建,“比

2020-07-08 17:50:46 120

原创 Zookeeper---分布式事务【一】

我们都知道普通的事务中有原子性,一致性,隔离性,持久性。而分布式事务中也有这些属性,下面我们就来介绍一下分布式事务与普通的事务有何不同之处。分布式事务随着分布式计算的发展,事务在分布式中也得到了广泛的应用。在单机数据库中,我们很容易能够实现桃满足ACID特性的事务处理系统,但在分布式数据库中,数据分散在各个不同的机器上,如何对这些数据进行分布式的事务处理具有非常大的挑战。分布式中会有机器宕机和各种网络异常。尽管存在这种种分布式问题,但是在分布式计算领域,为了保证分布式应用程序的可靠性,分布式事务是无

2020-06-17 17:30:30 467

原创 BAT一线互联网公司常见面试题

1.Redis 面试题1、什么是 Redis?.2、Redis 的数据类型?3、使用 Redis 有哪些好处?4、Redis 相比 Memcached 有哪些优势?5、Memcache 与 Redis 的区别都有哪些?6、Redis 是单进程单线程的?7、一个字符串类型的值能存储最大容量是多少?8、Redis 的持久化机制是什么?各自的优缺点?9、Redis 常见性能问题和解决...

2020-01-16 17:30:01 148

原创 keepalived+Nginx实现分布式VIP部署

Nginx安装yum install -y gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-develnginx安装[root@localhost src]# tar zxvf nginx-1.10.2.tar.gz省略安装内容...[root@lo...

2019-09-04 23:29:08 6004 2

原创 Linux环境下安装Oracle11gR2

Linux安装oracle11gR2官方步骤https://blog.csdn.net/u013634348/article/details/53552266#linux%E7%8E%AF%E5%A2%83%E4%B8%8B%E5%AE%89%E8%A3%85oracle11gr22016年12月10日 01:32:16阅读数:15459Linux环境下安装Oracle11gR2...

2019-09-04 22:12:22 1705

原创 Mybatis(七):Mybatis Generator

官网地址:http://www.mybatis.org/generator/index.html一、依赖<project> <modelVersion>4.0.0</modelVersion> <groupId>cn.saytime</groupId> <artifactId>mybatis_ge...

2019-09-03 16:41:19 72

原创 mybatis中generator自动生成代码

1、新建maven项目,新建文件夹和配置文件如下2、配置文件代码generator.propertiesdriver=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=UTCusername=rootpassw

2021-07-05 14:19:44 395

原创 红黑树,B树和B+树

一、红黑树1、红黑树的特性(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!](4)如果一个节点是红色的,则它的子节点必须是黑色的。(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。[这里指到叶子节点的路径]包含n个内部节点的红黑树的高度是 O(log(n)).如图:2、红黑树的使用场景java中使用到红黑树的有TreeSet和JDK1.8的HashMap。但是问

2021-02-02 19:39:38 1396

原创 对象作集合Key遇到的坑

官方文档:@EqualsAndHashCode原文中提到的大致有以下几点:1. 此注解会生成equals(Object other)和hashCode()方法。2. 它默认使用非静态,非瞬态的属性3. 可通过参数exclude排除一些属性4. 可通过参数of指定仅使用哪些属性5. 它默认仅使用该类中定义的属性且不调用父类的方法6. 可通过callSuper=true解决上一点问题。让其生成的方法中调用父类的方法。另:@Data相当于@Getter @Setter @RequiredA..

2020-12-16 17:13:50 218

原创 SpringBoot工具类读取配置文件,静态变量从配置文件读取

关于Java类读取 application.yml 配置文件里的值的问题。 目前我所了解的主要是三种方式:①@Value("${xxxx}")② ConfigurationProperties 配置③ 通过 Enviroment 获取这里只介绍第三种静态工具类JdbcUtil 里获取 application.yml 里的数据源信息(user) 解决代码如下import org.springframework.beans.factory.annotation.Autowired;im.

2020-08-27 16:15:57 623

原创 Redis性能监控指标汇总

监控指标 性能指标:Performance 内存指标: Memory 基本活动指标:Basic activity 持久性指标: Persistence 错误指标:Error 性能指标:PerformanceName Description latency Redis响应一个请求的时间 instantaneous_ops_per_sec 平均每秒处理请求总数 hi rate(calculated) 缓存命中率(计算出来的

2020-07-22 10:28:33 153

原创 关于线程池原理

今天我们就来详细讲解一下Java的线程池,首先我们从最核心的ThreadPoolExecutor类中的方法讲起,然后再讲述它的实现原理,接着给出了它的使用示例,最后讨论了一下如何合理配置线程池的大小。Java 中的 ThreadPoolExecutor 类java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java 中的线程池,必须先了解这个类。下面我们来看一下 ThreadPoolExecutor 类的具体实现源码。在.

2020-07-22 10:08:56 164

原创 设计模式---代理模式【动态、静态代理】

什么是代理代理是设计模式的一种,代理类为委托类提供消息预处理,消息转发,事后消息处理等功能。Java中的代理分为三种角色:代理类(ProxySubject) 委托类(RealSubject) 接口(Subject)三者关系可以表示如下图:代理模式Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理代理类在编译期就生成,而动态代理代理类则是在Java运行时动态生成。静态代理Java中的静态代理要求代理类(ProxySubject)和委托类(RealSubj

2020-07-09 18:09:52 121

原创 zookeeper--客户端脚本【三】

我们来看下zkCli这个脚本。进入ZooKeeper的bin目录后,直接执行如下命令:$sh zkCli.sh当看到如下输出信息时,表示已经成功连接上本地的ZooKeeper服务器了。WatchedEvent state:SyncConnected type:Node path:null[zk:localhost:2181(CONNECTED)0]注意上面的命令没有显式地指定ZooKeeper服务器地址,那么默认是连接本地ZooKeeper服务器。如果希望连接指定ZooKeeper服务器

2020-06-17 17:28:34 132

原创 zookeeper---服务安装与启动【二】

Zookeeper官方文档特别强调,由于FreeBSD系统的JVM对Java的NIO Selector支持的不是很好,所以不建议在该系统上部署生产环境的Zookeeper服务器。zookeeper使用1,下载Zookeeper安装包。下载地址为:http://zookeeper.apache.org/releases.html。注意用户可以选择稳定版本进行下载,下载后会得到一个文件名类似于zookeeper-x.x.x.tar.gz的文件,解压到一个目录,例如/opt/zookeeper-3.4

2020-06-17 17:27:15 143

原创 kafka相关知识request.required.acks

request.required.acks0:这意味着生产者producer不等待来自broker同步完成的确认继续发送下一条(批)消息。此选项提供最低的延迟但最弱的耐久性保证(当服务器发生故障时某些数据会丢失,如leader已死,但producer并不知情,发出去的信息broker就收不到)。1:这意味着producer在leader已成功收到的数据并得到确认后发送下一条message。此选项提供了更好的耐久性为客户等待服务器确认请求成功(被写入死亡leader但尚未复制将失去了唯一的消息)。

2020-06-10 10:32:46 1242 1

原创 MySQL关于锁表的常用排查解决办法

1、查看锁表语句show OPEN TABLES where In_use > 0;2、找到锁表的进程show processlist;| Id | User | Host | db | Command | Time | State | Info || 4480334 | user | 10.230.137.2:49761 | ide | Sleep ...

2020-05-18 16:52:19 2030

原创 IntelliJ IDEA安装scala插件和scala-sdk并创建scala的详细教程

具体步骤如下:1、找到与IntelliJ IDEA对应的scala版本如图,在File下找到Settings在弹出的对话框中点击Plugins,然后点击Install JetBrains plugin在搜索框中输入scala,点击scala,在对话框右边出现该IntelliJ对应的scala版本在网站https://plugins.jetbrains.com/plugi...

2020-05-02 17:20:47 12026

原创 Java 的几把 JVM 级锁

简介在计算机行业有一个定律叫"摩尔定律",在此定律下,计算机的性能突飞猛进,而且价格也随之越来越便宜, CPU 从单核到了多核,缓存性能也得到了很大提升,尤其是多核 CPU 技术的到来,计算机同一时刻可以处理多个任务。在硬件层面的发展带来的效率极大提升中,软件层面的多线程编程已经成为必然趋势,然而多线程编程就会引入数据安全性问题,有矛必有盾,于是发明了“锁”来解决线程安全问题。在这篇文章...

2020-02-15 14:21:36 96

原创 mybatis事务提交

import java.util.List;import java.util.Map;/*** 在mapper层增加方法注释可以手动提交事务* @author jack* @time2019-12-20*/public interface TestMapper extends BaseMapper<Test> { //手动提交事务...

2019-12-20 16:51:42 289

原创 JVM情况

1.整体情况查看(任务管理器):top第三行就是CPU的使用情况了,如下:%Cpu(s)us用户空间占用CPU百分比sy内核空间占用CPU百分比ni用户进程空间内改变过优先级的进程占用CPU百分比id空闲CPU百分比wa等待输入输出的CPU时间百分比hiCPU服务于硬件中断所耗费的时间总额siCPU服务软中断所耗费的时间总额stSteal Timetop -p pidtop -u us...

2019-12-03 14:09:06 94

原创 Google的Protobuf例子

Google的Protobuf作为一门开源的高性能的编解码框架,在通信框架中扮演者很重要的角色,很多商业项目将其作为编解码框架。Protobuf有以下优点:1、产品非常成熟2、跨语言,不局限java3、编码后消息很小,利于存储和传输4、编码性能高5、支持不同版本的协议前后兼容6、支持定义可选和必选字段本文通过Protobuf对pojo对象编解码来来学习Proto...

2019-11-06 11:40:50 125

原创 Redis常用配置说明

1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize no2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定pidfile /var/run/redis.pid3. 指定Redis监听端口,默认端口为6379,作者在自己的一篇...

2019-11-01 17:58:45 218

原创 Linux常用压缩文件命令

01-.tar格式解包:[*******]$ tar xvf FileName.tar打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)02-.gz格式解压1:[*******]$ gunzip FileName.gz解压2:[*******]$ gzip -d FileName.gz压 缩:[*******]$ gz...

2019-10-29 09:35:16 102

原创 redis常用命令

清空Redis所有key:flush db # 清除当前数据库的所有keysflush all # 清除所有数据库的所有keys查询匹配key:keys * # 查看所有keyskeys prefix_* # 查看前缀为"prefix_"的所有keyskey基本操作:exists key # 确认一个key是否存在set key v...

2019-10-21 16:36:28 95

原创 Redis 实战

1.单数据源(1)pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schem...

2019-10-21 15:56:27 116

原创 Redis安装 主从 哨兵模式 cluster

单机安装:1.安装tar -zxvf redis-3.2.11.tar.gzcd redis-3.2.11makemake installvi redis.conf#bind 127.0.0.1 #注释掉protected-mode no #保护模式daemonize yes #后台进程启动2.设置密码config set requirepass te...

2019-10-21 15:53:48 1372

原创 我们用Rate代表scheduleAtFixedRate 方法, Delay代表scheduleWithFixedDelay 方法 * 从字面意思上理解Rate表示固定频率的,每隔多

我们用Rate代表scheduleAtFixedRate 方法, Delay代表scheduleWithFixedDelay 方法从字面意思上理解Rate表示固定频率的,每隔多时间执行一次,如果间隔时间内没有完成,只要完成了,立马执行,保证了频率尽可能多Delay表示延迟多长时间执行一次,如果间隔时间内没有完成,则下一次执行依然是间隔时间后再执行新的,保证了间隔,相对来说,频率会少,如下:...

2019-09-05 14:12:32 508

原创 什么是RESTful风格

什么是RESTful风格?REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移),REST 是一种体系结构,而 HTTP 是一种包含了 REST 架构属性的协议,为了便于理解,我们把它的首字母拆分成不同的几个部分:表述性(REpresentational):REST 资源实际上可以用各种形式来进行表述,包括 XML、JSON 甚至 ...

2019-09-05 09:53:27 177

原创 RESTful 两个注解@PathParam 和 @QueryParam

关于@PathParam 和 @QueryParam,两个注解都是取路径的,但是方式不同。这里我之前也遇到问题了。主要是看你怎么传入的路径。@QueryParam 主要通过键值对这样取 如 a=1QueryParam("a")@PathParam主要通过路径映射取(后面解释)1 关于@QueryParam用法,我们直接取参数传入的名字。如localhost:808...

2019-09-05 09:49:13 753

原创 Linux下MySQL数据库安装

安装mysql数据库 查看原有mysql信息rpm -qa | grep mysql卸载原有mysqlrpm -e --nodeps mysql-5.1.73-7.el6.x86_64rpm -e --nodeps mysql-server-5.1.73-7.el6.x86_64安装mysql解压tar包解压gz包复制mysql文件夹到/usr/...

2019-09-04 22:01:14 204

原创 利用quartz实现定时调度

1、Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。这里我介绍quartz的两种方式。我这里搭建的框架是采用springboot、spring-data-jpa、mysql、quartz的方式来实现。2、这里介绍的两种方式是:动态扫描的方式执行和注解的方式。  至于xml的配置方式可以参...

2019-09-04 17:25:15 102

原创 YARN 状态机的原理和使用---Hadoop中央异步调度器AsyncDispatcher代码和设计解析

有了异步处理,为什么还需要状态机?可以保存对象当前的状态。当接收到一个事件后,可以根据不同的状态,可以方便的决定怎么处理。如接收到用户发送的KILL事件时:当Job的状态为正在初始化时,只要把启动的进程kill就可以。当Job的状态为正在运行,并且是提交到yarn的作业时,除了要把启动的进程kill,还需要调用yarn application -kill 把 yarn上运行的作业k...

2019-09-04 16:03:12 701

原创 Yarn的状态机StateMachine

这种大型的调度,主要用于类与类之间的调度,简单来说,就是一个类对于那些觉得自己管控不了的事情,就将其扔给别人来处理。Yarn中很多的类都是有调度器的,而且它们大多都是持有全局调度器,对于自己处理不了的事情,干脆利落地将其扔到RM或者NM的调度器中。全局调度器就相当于一个统筹者,一根线,把所有的类给串起来,而在很多类的内部,同样支持事件的处理,而本文就讨论下这种处理机制,状态机。声明:本...

2019-09-04 16:00:25 404

原创 SpringBoot+MyBatis+MySQL读写分离

1. 引言读写分离要做的事情就是对于一条SQL该选择哪个数据库去执行,至于谁来做选择数据库这件事儿,无非两个,要么中间件帮我们做,要么程序自己做。因此,一般来讲,读写分离有两种实现方式。第一种是依靠中间件(比如:MyCat),也就是说应用程序连接到中间件,中间件帮我们做SQL分离;第二种是应用程序自己去做分离。这里我们选择程序自己来做,主要是利用Spring提供的路由数据源,以及AO...

2019-09-04 13:55:35 75

原创 SpringBoot整合Swagger2

手写Api文档的几个痛点:文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。 接口返回结果不明确 不能直接在线测试接口,通常需要使用工具,比如postman 接口文档太多,不好管理Swagger也就是为了解决这个问题,当然也不能说Swagger就一定是完美的,当然也有缺点,最明显的就是代码移入性比较强。其他的不多说,想要了解Swagger的,可以去Swag...

2019-09-04 10:09:18 65

转载 RabbitMQ(七):RabbitMQ消息确认机制之事务机制

RabbitMQ(七):RabbitMQ消息确认机制之事务机制

2019-09-03 16:40:30 205 1

原创 SpringBoot(十三):SpringBoot整合RabbitMQ

一、环境准备RabbitMQ 3.7.4SpringBoot 1.5.10.RELEASE <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp&lt...

2019-09-03 16:39:48 181

转载 SpringCloud(二):服务的注册与发现(Eureka)

SpringCloud(二):服务的注册与发现(Eureka)

2019-09-03 16:39:14 99

转载 SpringCloud(三):服务消费以及负载均衡(RestTemplate+Ribbon)

SpringCloud(三):服务消费以及负载均衡(RestTemplate+Ribbon)

2019-09-03 16:38:42 93

空空如也

空空如也

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

TA关注的人

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