自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分布式定时任务Spring Boot + Quartz实现

分布式定时任务Spring Boot + Quartz实现最近在工作中使用Spring Boot自带的@Scheduled执行定时任务,但是当我的应用部署在多台机器上时,发现使用@SchedulerLock来控制单节点执行定时任务有点问题,所以决定更换定时任务框架,改用Spring Boot + Quartz来做分布式定时任务控制。废话不多说,开整!引入依赖<dependency> <groupId>org.springframework.boot</..

2020-11-27 15:35:34 1794

原创 使用logging.handlers.TimedRotatingFileHandler按日期切割日志问题

import osimport loggingimport sysfrom logging.handlers import TimedRotatingFileHandlerimport timeLOG_PATH = "logs"def get_logger(name): logger = logging.getLogger(name) if os.path.exists(LOG_PATH): pass else: os.mkdir(.

2020-11-18 09:31:29 3999 4

转载 CentOS7下yum方式安装docker

移除旧版本:yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ ...

2020-09-08 17:49:28 300

原创 Ubuntu安装docker

我的Ubuntu版本是:依次执行以下命令:# Install packages to allow apt to use a repository over HTTPS 支持解析https$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common# Add Docker's official GPG key 添加GPG密钥$ curl -fsSL https://do

2020-09-01 15:25:36 211

转载 分库分表如何平滑的扩容?

众所周知,数据库很容易成为应用系统的瓶颈。单机数据库的资源和处理能力有限,在高并发的分布式系统中,可采用分库分表突破单机局限。当一家公司的业务量不停上涨,最后可能都不可避免的走上分库分表的道路。今天这一篇,我们不聊分库分表的具体做法,我们来聊聊分库分表的扩展方案。分库分表的扩容真的是一件很头疼的问题!那是否有方案,既可以快速扩展,又不降低可用性?水平分库扩展问题为了增加db的并发能力,常见的方案就是对数据进行sharding,也就是常说的分库分表,这个需要在初期对数据规划有一个预期.

2020-08-22 21:04:53 2256 2

原创 手把手教你用docker搭建数据库中间件DBLE+zookeeper集群

最近因为公司项目需要,所以搭建了一个DBLE+zookeeper集群的框架。在此记录一下。DBLE简单介绍一下DBLE:业内称作Mycat Plus。是一款分布式数据库中间件,一般用于MySQL分片。在知名数据库中间Mycat的基础上进行了大量的优化和定制,修复了很多Mycat的bug,有专业的团队维护,可以提供商业服务。官方特性一览:官方网站:DBLE官网zookeeperzookeeper我想我不用过多介绍了,时下算是最火的一个分布式服务框架。很多中间件,比如..

2020-08-13 18:20:37 690

转载 【转载】分库分表需要考虑的问题及方案

分库分表的基本思想Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID散列)切分到多个数据库(server)上。当然,现实中更多是这两种情况混杂在一起,这时候需要根据实际情况做出选择,也可能会综合使

2020-08-10 14:02:12 291

转载 【转载】分布式分库分表后,ID主键如何处理?

文章来源:https://www.cnblogs.com/mq0036/p/11612530.html面试题分库分表之后,id 主键如何处理?(唯一性,排序等)面试官心理分析其实这是分库分表之后你必然要面对的一个问题,就是 ID咋生成?ID是数据的唯一标识,传统的做法是利用UUID和数据库的自增ID,在互联网企业中,大部分公司使用的都是Mysql,并且因为需要事务支持,所以通常会使用Innodb存储引擎,UUID太长以及无序,所以并不适合在Innodb中来作为主键,自增ID...

2020-08-10 09:48:24 260

原创 浅析JVM(三)之类加载子系统

浅析JVM(一)浅析JVM(二)前面两章,重点讲解了JVM中的运行时数据区,这一章节,想重点讲解一下JVM中的类加载器子系统、执行引擎和我们最重要的垃圾回收。废话不多说,开整!类加载器子系统国际惯例,没图说个JB!先来看一下类加载器子系统的内部结构:类加载器子系统是干嘛的呢?前面两章有大概的描述,这里来系统概括一下:负责从文件系统或者网络中加载class文件,class文件在文件开头有特定的文件标识。 ClassLoader只负责class文件的加载,至于它是否可以运.

2020-08-06 17:10:23 207

原创 你女朋友也能看懂的Java并发编程(二)

你女朋友也能看懂的Java并发编程(一)前面一篇讲了很多多线程的基础知识,现在这篇我们讲一下多线程并发中的共享模型。一、共享问题:共享是什么意思?通过字面意思我可以知道,共享就是多对一。在线程中,简单来说就是指多个线程可能会同时去改变同一个变量。那么这会带来什么问题呢?看一个例子:1、老王(操作系统)有一个功能强大的算盘(cpu),现在想把它租出去,赚点外块。2、小明(线程1)想使用这个算盘进行一些计算,并按照时间给老王支付费用。3、但是小明不可能一天24小时都在使用算盘,.

2020-08-02 12:13:40 302

原创 你女朋友也能看懂的Java并发编程(一)

关于Java并发编程,内容很多,可能要分成许多个章节,只希望能由浅入深写明白并发编程的内容。废话不多说,开整!一、进程和线程:首先我们得搞懂两个概念,进程和线程。1、进程:一个程序,是由指令和数据两部分组成的。指令需要运行,数据要读写,那就需要把指令交给cpu,由cpu去加载,去执行。数据呢,也需要预先加载到内存,供cpu去读取。我们的进程,就是做这个事情的,加载指令,管理内存。当一个程序被运行的时候,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。现在我可以发现,磁盘上.

2020-07-26 00:00:36 214

原创 浅析JVM(二)

上一篇中我们讲了JVM运行时数据区中的虚拟机栈、本地方法栈、程序计数器,现在我们来讲一下我们JVM中的方法区(元空间)和堆。一、方法区(元空间):

2020-07-17 10:57:45 197

原创 浅析JVM(一)

算是对自己最近这段时间学习JVM的一个总结吧。不说废话,开整!一、Java虚拟机的内存模型首先,我们创建一个简单类:public class HelloWorld { public static void main(String[] args) { HelloWorld helloWorld = new HelloWorld(); int result = helloWorld.add(); System.out.println(result); } publi.

2020-07-13 22:15:02 280

原创 Docker拉取镜像加速-阿里云

登录你的阿里云账户,在你的控制台搜索输入“镜像加速”:按照页面中的命令操作,即可添加一个daemon.json文件在/etc/docker路径下,但是这时候我发现我的docker启不起来了,提示:网上说了很多种方法,什么配置文件里面多“,“,配置文件里面路径格式不对什么的,我都没有这种现象,后来终于被我找到解决方法,把daemon.json文件后缀改一下,改成daemon.conf...

2019-08-23 17:08:31 236

原创 在VirtualBox中安装CentOS7详解(Mac版)

1、首先你需要安装一个VirtualBox,网上很多,我就不给大家贴地址了。2、然后下载一个CentOS的镜像文件,可以自行在官网下载,我下载的是CentOS-7-x86_64-DVD-1810.iso3、打开VirtualBox,点击新建按钮:4、然后自己填名称,选择linux系统,版本就选Red Hat(64-bit):5、设置内存大小,默认就行:6、创建虚拟硬...

2019-08-23 10:07:41 718

原创 Redis在Mac下的安装和使用

1.安装Redis官网下载:https://redis.io/download下载稳定版本:这里我下载了4.0.14版本。下载完成后:解压:tar zxf redis-4.0.14.tar.gz安装:cd /redis-4.0.14sudo make install启动服务:cd src/redis-server启动成功如图:2....

2019-08-16 10:19:41 232

原创 将Maven仓库地址修改为阿里云的仓库地址

<mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/publi...

2019-08-15 17:40:41 7151

原创 SpringBoot2.1.7引入spring-cloud-starter-openfeign依赖问题

最近在学习SpringCloud,需要用到Feign,在引入Feign依赖的时候遇到的问题:网上很多人说SpringBoot2.X版本后,引入Feign依赖是:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-...

2019-08-14 16:03:53 23970 5

原创 VirtualBox for Mac “安装器遇到一个错误,导致安装失败” 问题解决

1.在官网下载安装包。2.双击运行会出现下面的图:接安装后面会提示失败,没关系。3.失败后不要删除安装文件,然后双击这个文件:记住打开就好,不要执行里面的命令,执行了就卸载软件了。4.然后是关键的步骤,打开电脑的 系统偏好设置---->安全性与隐私---->通用在画红框的地方会出现个 oracl.... 的一个选项,点允许:5.然后再重新安装...

2019-08-13 14:42:16 23527 7

原创 Linux查看日志常用的命令

1.查看日志常用命令tail: 从日志的后往前看,-n 是显示行号,相当于nl命令,例子如下: tail -100f test.log 实时监控100行日志。 tail -n 10 test.log 查询日志尾部最后10行的日志。 tail -n +10 test....

2019-08-13 09:25:48 858

原创 Mac OS系统安装以及破**解IntelliJ IDEA UItimate教程

1.下载IDEA,官网地址:http://www.jetbrains.com/idea/download/#section=windows,记得选择UItimate版,系统MacOS。2.下载完成后进行安装。3.安装完成后进行破**解。首先下载破解所需要的jar包,链接: https://pan.baidu.com/s/1yzoGdEGSHHGwx9RfYKyCdg 提取码: 5mxt。...

2019-08-08 14:38:46 1071

原创 Mac配置Java开发环境

1.下载JDK这个可以自行在官网下载对应的版本2.安装JDK双击你下载好的jdk-xxxxx.dmg文件进行安装3.查看是否安装成功打开terminal,输入:java -versionxxAir:~ xx$ java -versionjava version "1.8.0_181"Java(TM) SE Runtime Environment (buil...

2019-06-23 23:22:27 914

原创 【原创】Java中将2019-05-13T06:31:57.790Z这种时间格式转化成本地时间格式yyyy-MM-dd HH:mm:ss

解决方法:(String类型无法直接parse为一个date类型,所以需要先把String字符串,格式化为一个date类型,最后再格式化为你想要的格式)public String formatDate(String inputDate){ try{ DateFormat outputFormat = new SimpleDateFormat("yyyy...

2019-05-14 17:06:59 1842

原创 SpringBoot2.0.2.RELEASE集成ElasticSearch6.6.1(RestHighLevelClient)

最近项目有用到Elasticsearch(以下简称ES),用了官方提供的RestHighLevelClient,在这里记录一下。首先ES是有专门的同事在维护,我的应用层只是调用他们的服务,来进行日志检索。第一步:引入Elasticsearch依赖<properties> <elasticSearch.version>6.6.1</elasticS...

2019-04-02 15:37:13 2321

转载 【转载】Java 性能优化的 38 个细节

目录1.尽量在合适的场合使用单例2.尽量避免随意使用静态变量3.尽量避免过多过常地创建Java对象4.尽量使用final修饰符5.尽量使用局部变量6.尽量处理好包装类型和基本类型两者的使用场所7.慎用synchronized,尽量减少synchronize的方法8.尽量不要使用finalize方法9.尽量使用基本数据类型代替对象10.多线程在未发生线程安全前...

2019-03-26 16:27:27 268

转载 VMware安装14.0安装CentOS7.2

目录一.安装前准备二.在VMware中创建虚拟机三.安装CentOS 7.2一.安装前准备VMware14.0https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.htmlCentOS 7.2 64位镜像http://isoredirect.centos.org/c...

2019-03-15 15:22:09 195

转载 一文搞定Java并发面试

目录1、Object的wait()和notify() 方法2、并发特性 - 原子性、有序性、可见性3、synchronized 实现原理?4、volatile 的实现原理?5、Java 内存模型(JMM)6、有关队列 AQS 队列同步器7、锁的特性8、ReentrantLock 锁9、ReentrantReadWriteLock10、Synchronized...

2019-03-12 17:43:21 601

转载 并发编程中要理解的进程、线程、协程

1.什么是进程?进程是操作系统进行资源分配和调度的基本概念,可以说进程是线程的容器,一个进程里包括数据区域和堆栈存储着活动过程调用的指令和本地的变量,进程没运行时候处于没有生命的一个实体的状态,运行时依赖处理器给他活体状,一个进程至少有一个线程,如果没有的话那么这个线程就是它本身。2.多进程的概念理论上一个CPU只能给一个进程,如果想一个CPU运行多个进程的话,那就是多进程,就要...

2019-03-12 15:06:13 151

原创 Java经典排序—冒泡排序

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下:一、比较相邻的元素,如果第一个比第二个大,就交换他们两个;二、对每一对相邻元素作同样...

2019-03-11 23:16:14 378

原创 SpringBoot异步任务@EnableAsync

1、启动类加注解@EnableAsync开启异步任务,自动扫描:import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.scheduling.annotat...

2019-03-11 17:40:15 405

原创 SpringBoot定时任务@EnableScheduling

一、SpringBoot定时任务schedule1、启动类加注解@EnableScheduling开启定时任务,自动扫描。import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.spr...

2019-03-11 17:26:29 1033

转载 【转载】Java工程师面试题1-10

目录1、抽象方法(abstract)是否可以同时是静态的?是否同时是本地的(native)?是否可以同时是synchronized?2、静态变量和实例变量的区别是什么?3、break和continue的区别是什么?4、抽象类(abstract)和接口(interface)之间有什么异同?5、复制对象和复制引用的区别?6、什么是深拷贝什么是浅拷贝?7、两个对象值相同(即x...

2019-03-11 16:11:43 188

转载 【转载】最全阿里 Java 面试题总结(开源框架知识)

目录1.简单讲讲tomcat结构,以及其类加载器流程,线程模型等?2.tomcat如何调优?涉及哪些参数?3.讲讲Spring加载流程?4.Spring AOP的实现原理?5.讲讲Spring事务的传播属性?6.Spring如何管理事务的?7.Spring怎么配置事务(具体说出一些关键的xml 元素)?8.说说你对Spring的理解,非单例注入的原理?它的生命周期?...

2019-03-07 10:25:53 375

转载 【转载】Kafka总结

目录Kafka是什么Kafka简介KafKa基本结构KafKa特性Kafka是什么KafKa是一个高吞吐量、分布式的发布—订阅消息系统。据KafKa官网介绍,当前的KafKa已经定位为一个分布式流式处理平台(a distributed streaming platform),它以可水平扩展和具有高吞吐量等特性而著称。越来越多的开源分布式处理系统(Flume、Apache S...

2019-03-06 11:31:57 237

原创 Java多线程面试大全

目录多线程的几种实现方式?什么是线程安全?volatile的原理?作用?能代替锁吗?画一个线程的生命周期状态图?sleep和wait的区别?sleep和sleep(0)的区别?Lock与Synchronized的区别?synchronized的原理是什么?一般用在什么地方(比如加在静态方法和非静态方法的区别,静态方法和非静态方法同时执行的时候会有影响吗?)解释以...

2019-03-05 16:54:10 884

原创 【转载】最全阿里 Java 面试题总结(JVM知识)

目录1.操作系统中 heap 和 stack 的区别?2.什么情况下会发生栈内存溢出?2.什么情况下会发生堆溢出?3.JVM的内存结构,Eden和Survivor比例?4.JVM内存为什么要分成新生代,老年代,持久代?新生代中为什么要分为Eden和Survivor?5.JVM中一次完整的GC流程是怎样的?对象如何晋升到老年代?说说你知道的几种主要的JVM参数?6.你知道...

2019-02-28 11:22:27 2520

原创 【转载】最全阿里 Java 面试题总结(Java基础)

目录1.JAVA中的几种基本数据类型是什么?各自占用多少字节?2.String类能被继承吗,为什么?3.String,Stringbuffer,StringBuilder的区别?4.ArrayList和LinkedList有什么区别?5.讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当new的时候,他们的执行顺序?6.用过哪些Map类,...

2019-02-24 21:34:13 2410

转载 【转载】hashcode相等两个类一定相等吗?equals呢?相反呢?

不一定相等,都不一定相等。equals() 的作用是 用来判断两个对象是否相等。equals() 定义在JDK的Object.java中。通过判断两个对象的地址是否相等(即,是否是同一个对象)来区分它们是否相等。源码如下:public boolean equals(Object obj) {return (this == obj);}既然Object.java中定义了equ...

2019-02-22 14:31:08 635

转载 【转载】现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?

停机迁移方案我先给你说一个最 low 的方案,就是很简单,大家伙儿凌晨 12 点开始运维,网站或者 app 挂个公告,说 0 点到早上 6 点进行运维,无法访问。接着到 0 点停机,系统停掉,没有流量写入了,此时老的单库单表数据库静止了。然后你之前得写好一个导数的一次性工具,此时直接跑起来,然后将单库单表的数据哗哗哗读出来,写到分库分表里面去。导数完了之后,就 ok 了,修改系统的数据...

2019-02-22 10:43:48 304

转载 【转载】如何设计可以动态扩容缩容的分库分表方案?

如果你们公司之前已经做了分库分表,你们当时分了 4 个库,每个库 4 张表;公司业务发展的很好,现在的数据库已经开始吃力了,不能满足快速发展的业务量了,需要进行扩容。1)停机扩容这个方案跟单库迁移方案是一样的,就是停服进行数据迁移,不过现在的数据迁移比之前的单库迁移要复杂的多,还有数据量也是之前的好几倍,单库的数据量可能就几千万,但是现在是 12 个表,那么数据量是几十亿,可能光数据迁移就...

2019-02-22 09:25:01 1166

空空如也

空空如也

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

TA关注的人

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