自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux 下MySQL 安装之yum命令安装

一般来说使用yum安装软件,只需要直接yum install即可,但是我们最好在安装之前做一下安装检测,检测是否已经安装了该软件,我们在安装MySQL之前需要检测是否已经安装了MySQL,是否有MySQL在运行中。检测命令如下:[root@192 ~]# ps -ef|grep mysqlmysql 2406 1 0 04:07 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usrmysql 25

2020-08-31 21:51:05 623

原创 Spring Cloud 网关路由—Spring Cloud Gateway 自定义过滤器

在Spring Cloud 网关路由—Spring Cloud Gateway 配置详解一篇我们详细介绍了Spring Cloud Gateway路由的配置与使用,并且介绍了部分过滤器的配置,不过我们配置的都是Spring Cloud Gateway内部定义的过滤器和断言,本篇博客讲解如何创建自定义断言与过滤器的使用。自定义断言工厂需要实现RoutePredicateFactory,不过Spring Cloud Gateway为我们提供了一个抽象类,我们只需要继承该抽象类AbstractRoutePre

2020-08-31 15:26:54 615

原创 线程的安全性与Java锁Lock接口的简介与使用

在线程的安全性与synchronized的使用与锁升级一篇我们介绍了线程的安全性与synchronized解决方案,以及锁的升级过程,在该篇中我们知道synchronized是阻塞式的锁,对于性能有很大的影响。而Java SE 5之后,并发包中新增 了Lock接口(以及相关实现类)用来实现锁功能,它提供了与synchronized关键字类似的同步功 能,只是在使用时需要显式地获取和释放锁,这篇内容我们将会介绍并发包中的工具锁重入锁ReentrantLock和读写锁ReentrantReadWriteLock

2020-08-31 12:22:15 99

原创 Spring Cloud 网关路由—Spring Cloud Gateway 配置详解

前面我们简单的介绍了Spring Cloud Gateway的使用和原理,以及SpringCloud Gateway的三大组件:路由、断言和过滤器。而路由则是由一个ID、一个目的URL、一组断言工厂和一组Filter过滤器组成。本篇博客主要介绍路由的配置,ID表示一个路由的唯一标识,URL为要转发的地址,这两个比较简单。复杂的就是断言和过滤器的配置。首先我们介绍断言的配置,Spring Cloud Gateway将路由作为Spring WebFlux HandlerMapping基础设施的一部分进行匹配

2020-08-28 16:45:16 3167

原创 MyBatis原理之动态代理在MyBatis中的使用

在使用Mybatis时,我们有两种使用方式,第一种是直接通过SqlSession提供的select等方法进行操作数据库,传入的参数为Mapper.xml的Id和对应的参数,如下我们配置的mapper.xml并且根据该种方式查询。<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybati

2020-08-26 20:40:08 628

原创 Spring Cloud 网关路由—Spring Cloud Gateway 简介与入门

前面已经介绍了Netflix提供的网关路由组件Zuul,提供统一的API地址访问我们的服务,唯一不足的是Zuul采用的是Servlet的堵塞IO,性能比较低,而作为网关,性能是至关重要的,因此Spring 团队重新打造了一个网关路由组件Spring Cloud Gateway,他不仅仅支持HTTP协议,还支持websocket等协议,本篇我们将介绍Spring Cloud Gateway的使用。为了转型的方便Spring Cloud Gateway采取了与Zuul相似的策略,学习完Zuul很容易对Sprin

2020-08-26 20:01:47 365

原创 线程的安全性与synchronized的使用与锁升级

所谓线程安全性是指多线程访问共享变量时导致实际值与预期值不符合的问题。所谓共享变量是指可以被多个线程访问到的变量,一般指实例变量或者静态变量,局部变量与方法参数变量为单独线程所有不会存在安全问题,我们下面使用一个例子演示实例变量中的安全问题。如下代码所示,我们创建一个AutoIntegerIncr类,用于整数的自加操作。

2020-08-25 20:26:49 295

原创 Spring Cloud Alibaba 限流与熔断 — Sentinel 限流入门案例

前面我们降解了Netflix 的限流与熔断组件Hystrix,了解了熔断与限流的基本概念与Hystrix的基本使用方式,本篇我们介绍Alibaba开源的熔断限流组件Sentinel。Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。...

2020-08-24 15:56:55 263

原创 Spring Cloud Alibaba 服务注册与发现之 Zookeeper

在多次填坑之后,使用Spring Cloud Alibaba Nacos作为注册中心,成功的演示了一个Hello Name 案例,具体案例参考博客Spring Cloud Alibaba Nacos之服务注册与发现。然后就觉得自己有点飘飘欲仙的感觉,可能是突然不见了Bug的刀了,也可能是成功就会有动力,突发奇想的将服务注册中心Nacos换成Zookeeper。Spring Cloud官方为了方便Zookeeper作为配置和服务注册中心为我们提供了一个starter的jar包,Maven依赖如下: &l

2020-08-21 12:43:15 991 1

原创 Spring Cloud Alibaba Nacos之服务注册与发现

Spring Cloud Alibaba是阿里巴巴为分布式开发提供的一站式解决方案,它包含了分布式开发所需的一切组件。其底层通信采用很多人都熟悉的Dubbo框架,并且提供了分布式事务,新的服务注册与发现模块等组件,简单的说Spring Cloud AliBaba就是Alibaba将原有组件整个Spring Boot与Spring Cloud之后的产物,在使用的过程中,我们只需要引入starter包,并且加入少许的配置即可以开发出分布式应用。本篇我们将讲述如何使用Spring Cloud Alibaba服务的

2020-08-20 20:07:24 388

原创 Java线程状态与生命周期

前面我们介绍了创建线程的三种基本方法,学会如何创建和运行线程之后,接下来就是对线程生命周期的了解,本篇我们介绍Java线程的声明周期,并且使用一些案例演示声明周期的变化。在Thread类中,使用枚举类为Java线程定义了六种状态,代码如下:public enum State { NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED;}在上述状态中,NEW:初始状态,线程被构建,但

2020-08-20 16:40:43 223

原创 Spring Cloud Alibaba Nacos 之配置中心

Nacos是什么?官方是这么介绍Nacos的,Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。在Nacos中,服务(Service)是 Nacos 世界的一等公民。Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理:Kubernetes Service;gRPC & Dubbo RPC Service;Spring Cloud RESTful Service。它提供了服务发现和服务健康监测、

2020-08-19 20:01:03 143

原创 Java 多线程编程简介与线程的创建

进程与线程进程是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。一个进程就是一个具有独立功能的应用程序。线程是进程中执行运算的最小单位。可以理解为进程中独立运行的子任务。一个线程只能属于一个进程,但是一个进程可以拥有多个线程。多线程处理就是允许一个进程中在同一时刻执行多个任务。线程是进程的实体,属于进程,是CPU调度和分派的基本单位。资源分配给进程,所有线程共享该进程的资源。进程是操作系统分配资

2020-08-18 20:40:31 144

原创 Spring Cloud 微服务之配置中心解决方案

关于注册中心这一篇博文,本来想分很多篇去介绍的,但是仔细想想,觉得太繁复而且啰嗦,所以还是写一篇介绍其中的核心原理,并不做任何示例,如果想要查看具体用法可以自行查看官方文档或者度娘。因为配置中心太多了,不说其他的Spring Cloud就集成了好几种框架作为配置中心比如:Spring Cloud Config, Archaiu,Consul, Spring Cloud Zookeeper ,Alibaba Nacos等。每个公司都有不同的选择,不可能一一的去列举,重点是掌握核心,当遇到新的配置中心的时候能够

2020-08-18 11:15:44 409

原创 Spring Cloud Netflix 路由和过滤器—Zuul原理与高级应用

前面介绍了Spring Cloud Zuul的入门案例以及使用Zuul路由的各种配置,本篇我们会简单的讲解Zuul的简单原理和一些高级应用,比如过滤器、授权等。在讲解Zuul的路由原理之前,我们先看一下Spring MVC的请求流程,简单的来说,在Spring MVC中DispatcherServlet拦截所有请求,然后根据路径交给对应的Controller去处理。同样Zuul的路由原理也是一样的,它是通过一个Servlet拦截所有请求,然后根据配置的path和请求的path去转发请求。如下代码为Zuul的

2020-08-14 14:26:43 179

原创 Spring Cloud Netflix 网关路由— Zuul 网关路由配置

在Zuul入门案例一篇我们讲述了Zuul简单用法,默认情况下通过网关的请求默认路径为http://ip:port/serviceId/**,除此之外Zuul还提供了自定义路由配置。Zuul通过zuul.routes进行配置路由转发规则。如下是一个简单的路由配置。zuul: routes: hystrixservice: #路由名称 path: /hyservcie/** #路由路径 serviceId: hystrix-consume #服务Id如上配置,我们添

2020-08-13 17:13:58 540

原创 MyBatis源码解析——配置部分源码解析

任何一款优秀的框架对于配置文件的配置与解析都有一套优秀的方案,MyBatis也是如此,MyBatis提供了很多配置以方便用户自定义的使用MyBatis,目前为止MyBatis提供了一下配置:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-conf

2020-08-13 17:11:53 200

原创 Spring Cloud Netflix 网关路由— Zuul 入门案例

通过前面的Eureka、Ribbon、Hystrix我们很容易构建一个简单的微服务架构,服务提供方将服务注册到服务注册与发现中心,服务调用这从服务发现与调用中心拉取服务列表,并且通过Ribbon提供的负载均衡器进行调用,在服务提供方出现故障的时候可以通过Hystrix进行断路而防止整个服务崩溃。但是这样还会存在一些问题,比如每个服务调用者都需要维护一系列的服务提供者的地址列表,因为某种因素,可能各个服务提供者维护的列表不一致,又比如需要限流的时候需要每个服务提供者都有限流逻辑,造成臃肿,需要授权的时候也是一

2020-08-13 11:38:00 279

原创 MyBatis-Plus特性之强大的CURD操作

MyBatis-Plus特性之一就是通过少量配置即可实现单表大部分 CRUD 操作,学过Spring Boot时,在学习JPA时,可能用到过Repository接口相关的一系列接口(CrudRepository,PagingAndSortingRepository,JpaRepository),我们的数据库访问层接口只需要继承Repository相关接口就可以实现简单的增删改查分页操作,无需自己实现。同样MyBatis-Plus提供了与上面功能类似的Mapper接口,只需要继承该接口即可以实现简单的增删改查

2020-08-12 17:56:16 1491

原创 Spring Cloud Netflix 熔断组件 —Hystrix @HystrixCommand配置详解

在微服务架构中, 我们将系统拆分成了很多服务单元,各个服务之间通过远程调用的方式执行,这样就有可能因为网络原因或其他原因出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加, 最后就会因等待出现故障的依赖方响应形成任务积压,最终导致自身服务的瘫痪。...

2020-08-11 17:22:15 1098

原创 Spring Cloud Netflix 熔断组件 — Hystrix入门案例

Hystrix是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方,防止级联失败,从而提高系统的可用性和容错性。Hystrix主要通过一下几点实现延迟或者容错:包裹请求:使用HystrixCommon的或者HystrixObservableCommond包裹对依赖的调用逻辑,每个命令在独立线程执行,即设计模式中的命令模式。跳闸机制:当某服务错误率超过一定阀值,Hystrix可以自动或者手动跳闸,停止请求该服务一段时间。资源隔离:Hystrix为每个依赖都维护了一个小型线

2020-08-10 16:53:19 306

原创 MyBatis-Plus 简介与入门案例

官方是这样介绍Mybatis-Plus的,MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。我觉得它们之间的关系有点类似于Spring与 Spring Boot之间的关系。Spring Boot是为了简化Spring开发。MyBatis-Plus对MyBatis做了增强功能以简化MyBatis的开发。MyBatis-Plus支持多种数据库,包括mysql 、mariadb 、oracle 、db2 、h2 、hsql 、

2020-08-10 11:49:51 681

原创 Spring Cloud Netflix 负载均衡组件—Ribbon 高级应用

上一部分,我们使用Ribbon通过Sping 提供的RestTemplate了解了Ribbon负载均衡的使用,那么是如何通过RestTemplate实现客户端的负载均衡的呢?本篇我们将详细分析Ribbon是如何使用RestTemplate进行负载均衡的,并且会介绍Ribbon的一些自定义的配置。在Spring-Web中,我们使用RestTemplate调用远程服务时,不涉及负载均衡,URI只需要是IP+端口即可,而在Ribbon中则是服务名,因此Ribbon需要根据服务名获取要调用的服务的IP +端口地

2020-08-07 20:11:30 314 1

空空如也

空空如也

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

TA关注的人

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