自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 为什么微服务一定要有网关?

一、什么是服务网关服务网关 = 路由转发 + 过滤器1、路由转发:接收一切外界请求,转发到后端的微服务上去;2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过过滤器完成(其实路由转发也是通过过滤器实现的)。二、为什么需要服务网关上述所说的横切功能(以权限校验为例)可以写在三个位置: 每个服务自己实现一遍...

2019-06-29 23:48:46 304

原创 微服务——API网关

API网关:API Gateway 是一个服务器,也可以说是进入系统的唯一节点(Gateway可做负载均衡)。这跟面向对象设计模式中的Facade 模式很像。API Gateway 封装内部系统的架构,并且提供 API 给各个客户端。它还可能有其他功能,如授权、监控、负载均衡、缓存、请求分片和管理、静态响应处理等。下图展示了一个适应当前架构的 API Gateway。API G...

2019-06-29 19:42:00 373

原创 Java多线程并发——并发知识库,4种线程创建方式,4种线程池,线程生命周期,终止线程4种方式

JAVA 并发知识库JAVA 线程实现/创建方式 1、继承 Thread 类Thread 类本质上是实现了 Runnable 接口的一个实例,代表一个线程的实例。启动线程的唯一方法就是通过 Thread 类的 start()实例方法。start()方法是一个 native 方法,它将启动一个新线程,并执行 run()方法。public class MyThread ...

2019-06-29 14:40:09 1047

原创 插入排序

插入排序原理:给定的一组记录,将其分为两个序列组,一个为有序序列(按照顺序从小到大或者从大到小),一个为无序序列,初始时,将记录中的第一个数当成有序序列组中的一个数据,剩下其他所有数都当做是无序序列组中的数据。然后从无序序列组中的数据中(也就是从记录中的第二个数据开始)依次与有序序列中的记录进行比较,然后插入到有序序列组中合适的位置,直到无序序列组中的最后一个数据插入到有序序列组中为止。我们...

2019-06-29 12:00:06 92

原创 选择排序

选择排序原理:先将第一个位值上的数跟之后所有位置上的数依次进行比较,如果第一个位置上的数比第二个位置上的数大,则进行互换,然后继续将第一个位置上的数与第三个位置上的数进行比较,经过一轮的比较后,第一个位值上的数就是所有数中最小的一个,接着将第二个位置上的数与之后所有位置上的数进行比较,同样的规则,第二轮比较结束后,第二位放的就是所有数中第二小的数,依次往下比,直到最后一个位置结束。按照这种方法进...

2019-06-29 11:23:41 151

原创 冒泡排序

冒泡排序原理:冒泡排序整个过程就像气泡一样往上升,假设从小到大排序,对于给定的n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换位置,进行一轮比较后,第n位上就是整个记录中最大的数,然后在对前n-1个记录进行第二轮比较,重复该过程直到进行比较的记录只剩下一个为止。冒泡排序无疑是最为出名的排序算法之一,从序列的一端开始往另一端冒泡(你可以从左往右冒泡,也...

2019-06-29 11:06:29 132

转载 Java多线程系列--“JUC线程池”05之 线程池原理——线程池的四种拒绝策略

概要本章介绍线程池的拒绝策略。内容包括:拒绝策略介绍拒绝策略对比和示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3512947.html拒绝策略介绍线程池的拒绝策略,是指当任务添加到线程池中被拒绝,而采取的处理措施。当任务添加到线程池中之所以被拒绝,可能是由于:第一,线程池异常关闭。第二,任务数量超过线程池的最大限制。线...

2019-06-23 13:50:40 236

转载 Java多线程系列--“JUC线程池”04之 线程池原理——线程池的五种状态

转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509960.html本章介绍线程池的生命周期。在"Java多线程系列--“基础篇”01之 基本概念"中,我们介绍过,线程有5种状态:新建状态,就绪状态,运行状态,阻塞状态,死亡状态。线程池也有5种状态;然而,线程池不同于线程,线程池的5种状态是:Running,SHUTDOWN,STOP,...

2019-06-23 13:43:49 166

转载 Java多线程系列--“JUC线程池”03之 线程池原理——线程池源码分析

概要在前面一章"Java多线程系列--“JUC线程池”02之 线程池原理(一)"中介绍了线程池的数据结构,本章会通过分析线程池的源码,对线程池进行说明。内容包括:线程池示例参考代码(基于JDK1.7.0_40)线程池源码分析 (一) 创建“线程池” (二) 添加任务到“线程池” (三) 关闭“线程池”转载请注明出处:http://www.cnblogs.com/skywa...

2019-06-22 15:41:06 2434

转载 Java多线程系列--“JUC线程池”02之 线程池原理 —— 线程池数据结构及调度

概要在上一章"Java多线程系列--“JUC线程池”01之 线程池架构"中,我们了解了线程池的架构。线程池的实现类是ThreadPoolExecutor类。本章,我们通过分析ThreadPoolExecutor类,来了解线程池的原理。内容包括:ThreadPoolExecutor简介ThreadPoolExecutor数据结构线程池调度转载请注明出处:http://www.cnblogs....

2019-06-22 14:45:47 262

转载 Java多线程系列--“JUC线程池”01之 线程池架构

概要前面分别介绍了"Java多线程基础"、"JUC原子类"和"JUC锁"。本章介绍JUC的最后一部分的内容——线程池。内容包括:线程池架构图线程池示例转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509903.html线程池架构图线程池的架构图如下:ScheduledThreadPoolExecutor继承Thread...

2019-06-22 13:22:40 115

转载 Java多线程系列目录(共43篇)

最近,在研究Java多线程的内容目录,将其内容逐步整理并发布。(一) 基础篇01.Java多线程系列--“基础篇”01之 基本概念02.Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式03.Java多线程系列--“基础篇”03之 Thread中start()和run()的区别04.Java多线程系列--“基础篇”04之 synchronized关键字...

2019-06-22 12:19:39 115

转载 Jmeter接口测试+压力测试

jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是免安装的,拿到安装包之后直接解压就可以使用,同时它在linux/windows/macos上都可以使用。  jmeter可以做接口测试和压力测试。其中接口测试的简单操...

2019-06-22 10:08:15 402

转载 Jmeter性能测试案例

一、测试需求:测试20个用户访问网站在负载达到30QPS时的平均响应时间二、QPS:Query Per Second 每秒查询率。(一台查询服务器每秒能够处理的查询次数,作为域名服务器的性能经常用每秒查询率来衡量)三、测试步骤1、添加线程组(线程数+准备时长+循环次数)1)线程数:虚拟用户数,一个虚拟用户占用一个进程或线程(设置多少个虚拟用户=设置多少个线程)2)准备时长(s)...

2019-06-22 09:11:37 1100

转载 Jmeter下载安装及基本使用

本文将讲述Jmeter的下载安装,并以一个实例来讲解如何使用Jmeter。一、Jmeter下载及安装部署下载解压JMeter压缩包下载地址: http://jmeter.apache.org/download_jmeter.cgiJMeter解压之后,…\apache-jmeter-4.0\bin\jmeter.bat,打开直接使用,无需安装。下载安装JDK下载地址:http://w...

2019-06-20 23:33:23 347

原创 java知识框架梳理

java知识学习复习框架:

2019-06-19 10:31:25 364

原创 可扩展性设计(二)

1.1 如何扩展数据库前面我们讲到了数据库扩展的一个大致流程,下面我们详细讲解每种扩展方案。1.1.1 X轴扩展—主从复制集群假设我们的service访问数据库的吞吐量在4500TPS,其中写为500TPS,这种典型的读多写少的场景,我们通常会采用读写分离,如图5-1所示,将所有的读请求分发到Slave上,Master只负责写,Master和Slave之间通过数据库自带同步机制复制数据...

2019-06-18 23:46:53 2429

原创 可扩展性设计(一)相关概念

我们也可以把加机器得到的性能提升叫做横向扩展。横向扩展(scale out)也叫水平扩展,指用更多的节点支撑更大量的请求。例如1台机器支撑10000TPS,两台机器是否能支撑20000TPS?纵向扩展(scale up)也叫垂直扩展,扩展一个点的能力支撑更大的请求。通常通过提升硬件实现,例如把磁盘升级为SSD。横向扩展通常是为了提升吞吐量,响应时间一般要求不受吞吐量影响即可。因为本身在...

2019-06-18 21:46:12 5301

原创 概念及架构整理

概念介绍:①分布式:系统中的多个模块在不同服务器上部署,即可称为分布式系统,如 Tomcat 和数据库分别部署在不同的服务器上,或两个相同功能的 Tomcat 分别部署在不同服务器上。②高可用:系统中部分节点失效时,其他节点能够接替它继续提供服务,则可认为系统具有高可用性。③集群:一个特定领域的软件部署在多台服务器上并作为一个整体提供一类服务,这个整体称为集群。如 Zookeepe...

2019-06-14 13:09:53 414

转载 Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(7) TimeZone

本章介绍TimeZone。TimeZone 简介TimeZone 表示时区偏移量,也可以计算夏令时。在操作 Date, Calendar等表示日期/时间的对象时,经常会用到TimeZone;因为不同的时区,时间不同。下面说说TimeZone对象的2种常用创建方式。1 获取默认的TimeZone对象使用方法:TimeZone tz = TimeZone.ge...

2019-06-09 00:21:48 1184

转载 Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(6) Locale

本章介绍Locale。1 Locale 介绍Locale 表示地区。每一个Locale对象都代表了一个特定的地理、政治和文化地区。在操作 Date, Calendar等表示日期/时间的对象时,经常会用到;因为不同的区域,时间表示方式都不同。下面说说Locale对象的3种常用创建方式。1 获取默认的Locale使用方法:Locale locale = Loc...

2019-06-09 00:18:18 427

转载 Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(5) SimpleDateFormat

本章介绍SimpleDateFormat。SimpleDateFormat 介绍SimpleDateFormat 是一个格式化Date 以及 解析日期字符串 的工具。它的最常用途是,能够按照指定的格式来对Date进行格式化,然后我们使用可以格式化Date后得到的字符串。更严格的说,SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格...

2019-06-09 00:14:47 320

转载 Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(4) DateFormat

本章主要介绍DateFormat。DateFormat 介绍DateFormat 的作用是格式化并解析“日期/时间”。实际上,它是Date的格式化工具,它能帮助我们格式化Date,进而将Date转换成我们想要的String字符串供我们使用不过DateFormat的格式化Date的功能有限,没有SimpleDateFormat强大;但DateFormat是SimpleDateFor...

2019-06-09 00:05:23 251

转载 Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(3) Date

本章主要介绍Date类,并通过示例学习如何使用它。最后,讲解一下UTC、GMT和时区的关系。Date 介绍Date 定义public class Date implements java.io.Serializable, Cloneable, Comparable<Date> {}Date 是表示时间的类。一个Date对象表示一个特定的瞬间,能精确到毫秒。我们...

2019-06-08 23:59:33 222

转载 Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(2) 自己封装的Calendar接口

本章主要是收藏一些常用的类和接口,包括:万年历(农历、阳历节日、阴历节日)、自定义的Calendar接口。万年历源码如下(ChineseCalendar.java): 1 package com.via.mce.monthcalendar.utils; 2 3 import java.util.Calendar; 4 import java.util....

2019-06-08 23:55:42 233

转载 Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(1) Calendar

Java 操作日期/时间,往往会涉及到Calendar,Date,DateFormat这些类。最近决定把这些内容系统的整理一下,这样以后使用的时候,会更得心应手。本章的内容是主要讲解“Java时间框架”以及“类Calendar”。在学习Calendar类时,我们先对它有个整体认识,心中建立一个框架,然后再通过示例学习如何使用它。Java 时间架构图Java 的Calendar...

2019-06-08 23:51:06 887

转载 Java 反射机制(包括组成、结构、示例说明等内容)

第1部分 Java 反射机制介绍Java 反射机制。通俗来讲呢,就是在运行状态中,我们可以根据“类的部分已经的信息”来还原“类的全部的信息”。这里“类的部分已经的信息”,可以是“类名”或“类的对象”等信息。“类的全部信息”就是指“类的属性,方法,继承关系和Annotation注解”等内容。举个简单的例子:假设对于类ReflectionTest.java,我们知道的唯一信息是它的类名是“co...

2019-06-08 18:49:50 118

转载 Java Annotation认知(包括框架图、详细介绍、示例说明)

摘要Java Annotation是JDK5.0引入的一种注释机制。网上很多关于Java Annotation的文章,看得人眼花缭乱。Java Annotation本来很简单的,结果说的人没说清楚;弄的看的人更加迷糊。我按照自己的思路,对Annotation进行了整理。理解 Annotation 的关键,是理解Annotation的语法和用法,对这些内容,我都进行了详细说明;理解Ann...

2019-06-08 18:31:34 87

转载 Java 随机数

本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示。广义上讲,Java中的随机数的有三种产生方式:(01). 通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。(02). 通过Math.random()返回一个0到1之间的double值。(03). 通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大。...

2019-06-08 17:36:43 59026 4

转载 Java hashCode() 和 equals()的若干问题解答

本章的内容主要解决下面几个问题:1equals() 的作用是什么?2equals() 与 == 的区别是什么?3hashCode() 的作用是什么?4hashCode() 和 equals() 之间有什么联系?第1部分 equals() 的作用equals() 的作用是用来判断两个对象是否相等。equals() 定义在JDK的Object.java...

2019-06-08 13:07:20 121

转载 《深入理解Java内存模型》读书总结

概要文章是《深入理解Java内容模型》读书笔记,该书总共包括了3部分的知识。第1部分,基本概念 包括“并发、同步、主内存、本地内存、重排序、内存屏障、happens before规则、as-if-serial规则、数据依赖性、顺序一致性模型、JMM的含义和意义”。第2部分,同步机制 该部分中就介绍了“同步”的...

2019-06-08 11:37:10 323

转载 Java 集合系列18之 Iterator和Enumeration比较

概要这一章,我们对Iterator和Enumeration进行比较学习。内容包括:第1部分 Iterator和Enumeration区别第2部分 Iterator和Enumeration实例转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3311275第1部分 Iterator和Enu...

2019-06-04 23:09:34 97

转载 Java 集合系列17之 TreeSet详细介绍(源码解析)和使用示例

概要这一章,我们对TreeSet进行学习。我们先对TreeSet有个整体认识,然后再学习它的源码,最后再通过实例来学会使用TreeSet。内容包括:第1部分 TreeSet介绍第2部分 TreeSet数据结构第3部分 TreeSet源码解析(基于JDK1.6.0_45)第4部分 TreeSet遍历方式第5部分 TreeSet示例转载请注明出处:http://www.cnblogs.com...

2019-06-04 23:08:00 123

转载 Java 集合系列16之 HashSet详细介绍(源码解析)和使用示例

概要这一章,我们对HashSet进行学习。我们先对HashSet有个整体认识,然后再学习它的源码,最后再通过实例来学会使用HashSet。内容包括:第1部分 HashSet介绍第2部分 HashSet数据结构第3部分 HashSet源码解析(基于JDK1.6.0_45)第4部分 HashSet遍历方式第5部分 HashSet示例转载请注明出处:http://www.cnblogs.com...

2019-06-04 23:05:25 98

转载 Java 集合系列15之 Set架构

前面,我们已经系统的对List和Map进行了学习。接下来,我们开始可以学习Set。相信经过Map的了解之后,学习Set会容易很多。毕竟,Set的实现类都是基于Map来实现的(HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的)。首先,我们看看Set架构。(01) Set 是继承于Collection的接口。它是一个不允许有重复元素的集合。(02)...

2019-06-04 23:03:16 92

转载 Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)

概要学完了Map的全部内容,我们再回头开开Map的框架图。本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3311126第1部分 Map概...

2019-06-04 23:01:26 118

转载 Java 集合系列13之 WeakHashMap详细介绍(源码解析)和使用示例

概要这一章,我们对WeakHashMap进行学习。我们先对WeakHashMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用WeakHashMap。第1部分 WeakHashMap介绍第2部分 WeakHashMap数据结构第3部分 WeakHashMap源码解析(基于JDK1.6.0_45)第4部分 WeakHashMap遍历方式第5部分 WeakHashMap示例转载请...

2019-06-04 22:58:41 156

转载 Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例

概要这一章,我们对TreeMap进行学习。我们先对TreeMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用TreeMap。内容包括:第1部分 TreeMap介绍第2部分 TreeMap数据结构第3部分 TreeMap源码解析(基于JDK1.6.0_45)第4部分 TreeMap遍历方式第5部分 TreeMap示例转载请注明出处:http://www.cnblogs.com...

2019-06-04 22:55:43 331

转载 Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例

概要前一章,我们学习了HashMap。这一章,我们对Hashtable进行学习。我们先对Hashtable有个整体认识,然后再学习它的源码,最后再通过实例来学会使用Hashtable。第1部分 Hashtable介绍第2部分 Hashtable数据结构第3部分 Hashtable源码解析(基于JDK1.6.0_45)第4部分 Hashtable遍历方式第5部分 Hashtable示例转载...

2019-06-04 22:50:40 113

转载 【MySQL】页面上查询时间与数据库中时间相差13个小时

今天使用mysql的时候,突然发现一个很神奇的问题,本来一般都是时间相差8小时嘛,(时区问题),但是发现数据库与本地的时间相差13个小时。一开始没有特别注意,以为是8小时,后面发现本地环境怎么配,都没有用,自己仔细看之后发现是13小时。原因:使用的是阿里的云服务器,使用rpm新装的mysql。通过:下面的命令可以显示结果法一:明确指定 MySQL 数据库的时区,不使用引...

2019-06-04 22:44:58 1729

空空如也

空空如也

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

TA关注的人

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