Spring生态
文章平均质量分 84
叩丁狼
用心做教育,专注每一位学员的成长
展开
-
SpringCloud-源码分析 Hystrix 熔断器
本文作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。回顾为了防止服务之间的调用异常造成的连锁反应,在SpringCloud中提供了Hystrix组件来实现服务调用异常的处理,或对高并发情况下的服务降级处理 。简单回顾一下Hystrix的使用:1.要使用 Hystrix熔断机制处理引入它本身的依赖之外,我们需要在主程序配置类上贴 @EnableHystrix 标签 开启Hystri...原创 2019-01-04 14:51:36 · 1059 阅读 · 0 评论 -
Scala快速安装及基本语法
作者:林伟兵,叩丁狼高级讲师。本文为原创文章,转载请注明出处。 1. Scala概述什么是ScalaScala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并**兼容Java程序**。为什么要学Scala 优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优...原创 2018-10-29 11:57:14 · 229 阅读 · 0 评论 -
SpringMVC拦截器详解
本文作者:钟昕灵,叩丁狼高级讲师。原创文章,转载请注明出处。 前言Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成...原创 2018-10-08 10:54:04 · 3302 阅读 · 1 评论 -
SpringCloud极简入门(十五)SpringBoot Admin
本文作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。 一.什么是SpringBoot AdminSpringBoot Admin 它是在 Spring Boot Actuator 的基础上用于监控 Spring Boot 的应用,且提供简洁的可视化 WEB UI界面。Spring Boot Admin 提供了很多功能,可以监控如:spring-boot项目的基本信息,详细的Healt...原创 2018-09-13 11:35:17 · 4927 阅读 · 1 评论 -
SpringCloud极简入门(十四)服务链路追踪(Spring Cloud Sleuth)
本文作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。 一.为什么需要服务链路追踪我们知道微服务架构就是按照功能模块把我们的应用抽取成一个一个独立的服务,而服务和服务之间相互调用,相互影响,一个服务可能会去调用很多个其他的服务,由于服务数量众多 ,业务复杂性比较高,如果出现异常或错误,我们很难快速精确的去定位到问题服务,所以在微服务的架构中,必须实现分布式链路追踪,去追踪出每一个服务每...原创 2018-09-13 11:34:19 · 709 阅读 · 0 评论 -
SpringCloud极简入门(十三)SpringCloud Bus 消息总线
本文作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。 一.什么是消息总线在微服务架构中,为了更方便的向微服务实例广播消息,我们通常会构建一个消息中心,让所有的服务实例都连接上来,而该消息中心所发布的消息都会被微服务实例监听和消费,我们把这种机制叫做消息总线(SpringCloud Bus),在总线上的每个服务实例都可以去广播一些让其他服务知道的消息,消息总线可以为微服务做监控,或实现...原创 2018-09-13 11:33:08 · 370 阅读 · 0 评论 -
SpringCloud极简入门(十二)基于本地配置的Config Server
一.概述在第十章有中有提到,Spring Cloud Config是可以实现基于本地和远程两方式获取配置,基于远程git的配置我们已经玩过了之后,基于本地配置的Config就特别简单了,下面我们就来玩一下。二.基于本地配置的Config Server1.在原项目基础上修改ConfigServer项目的配置文件如下:ring.cloud.config.server.native....原创 2018-08-21 14:34:36 · 233 阅读 · 0 评论 -
SpringCloud极简入门(十一)Spring Cloud Config(Config Client)
接下来我们需要搭建Config Client 客户端来访问 Config Server从git中获取的配置参数搭建客户端应用1.创建SpringBoot应用ConfigClient,pom文件如下```<parent><groupId>org.springframework.boot</groupId><artifactId>spr...原创 2018-08-21 14:33:56 · 270 阅读 · 0 评论 -
SpringCloud极简入门(十)配置中心(Spring Cloud Config)
一.简述配置中心(Spring Cloud Config)顾名思义,他是Spring Cloud团队为微服务应用提供集中化的外部配置支持,它分为服务端和客户端两个部分。服务端是一个微服务应用,它可以从本地仓库读取配置文件,也可以从远程git仓库读取配置文件,从而为客户端提供配置信息,加密/解密信息等访问接口,而客户端则是微服务架构中的各个微服务应用,他们可以指定配置中心来管理本身的应用资源与...原创 2018-08-21 14:33:06 · 211 阅读 · 0 评论 -
Spring Data JPA入门(一)
学习大纲:回顾JPA和Spring对JPA的支持在学习Spring Data JPA之前,我们先来回顾一下JPA的基本使用首先在项目Resources中创建文件夹META-INF,编写persistence.xml配置文件 其中主要配置需要持久化的类/JPA实现的提供方/hibernate相关的属性配置 <?xml version="1.0" encoding="UTF-8...原创 2018-08-27 10:33:57 · 386 阅读 · 0 评论 -
Weave部署Docker项目(下)
我们以商城项目中的goods-server + mgrsite为例,使用Weave + Docker进行部署一. 使用assembly 打包项目由于条件限制,我们就用本机+虚拟机来模拟部署,如果是两台主机只需执行weave connect masterIp 将多个主机加入到weave网络即可先看一下结构图注意:主机IP: 192.168.82.242虚拟机IP:192.168....原创 2018-07-23 09:55:30 · 521 阅读 · 0 评论 -
Scala中的方法&函数的定义
作者:林伟兵,叩丁狼高级讲师。本文为原创文章,转载请注明出处。 4. 方法&函数的定义在scala中,函数是一等公民,但是一般在开发中,函数和方法是可以相互代替的。4.1 方法的定义 一个完整方法的定义如下 scala> def add(a:Int, b:Int):Int = { | return a+b | }add: (a: I...原创 2018-10-29 11:58:19 · 4086 阅读 · 0 评论 -
Scala中的面向对象
作者:林伟兵,叩丁狼高级讲师。本文为原创文章,转载请注明出处。 5. 面向对象5.1 类的定义[属性和方法]可以用class来声明一个类,并用new关键字来创建一个对象。对于类中的全局变量,必须在声明的时候指定其默认值,否则就会报错。同时可以在类中定义一系列的方法,方法的定义用def 方法名(参数) :返回值 = {方法体}class Person { va...原创 2018-10-29 11:59:25 · 275 阅读 · 1 评论 -
SpringCloud-源码分析 zuul (二)
本文作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。在上一章节我们分析了Zuul中的各种filter,那这一章我们来跟踪一下zuul的执行流程。那么入口肯定是我们的 ZuulServlet ,他类似于 DispatcherServlet 在请求的最前面做分发。我们来看一下他的源码/** * Core Zuul servlet which intializes and orchest...原创 2019-01-04 14:34:01 · 362 阅读 · 0 评论 -
SpringCloud-源码分析 zuul (一)
本文作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。zuul舍命周期zuul,在SpringCloud中充当服务网关的角色,它包含了请求路由,过滤,安全等功能,可以说是我们web应用的“安保人员”,保证了我们“微服务园区”的安全,那么zuul是如何实现路由和过滤等功能的呢?我这里有一张摘抄于SpringCloud官网的zuul的生命周期图片 叩丁狼教育.png ...原创 2018-12-06 10:16:29 · 487 阅读 · 0 评论 -
SpringCloud-源码分析 Feign
本文作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。回顾我们还是在之前Feign的使用案例集成上来分析Feign源码,在分析 之前我们先简单来回顾一下Feign的用法,要用Feign首选是需要在配置类似开启Feign客户端支持@EnableEurekaClient@SpringBootApplication@EnableFeignClientspublic class...原创 2018-12-06 10:09:20 · 303 阅读 · 0 评论 -
SpringCloud-源码分析 Ribbon
本文作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。本文章会通过断点跟踪的方式来解读 Ribbon 源码 ,希望同学们把文章看完之后不仅能够了解 Ribbon的实现原理,还能掌握源码解读的方式和技巧(重要)。回顾回顾一下我们的 Ribbon部分内容我们当时使用TestTemplate + LoadBalanced 做了这样的一个案例 叩丁狼教育.png当时我们...原创 2018-12-06 10:08:04 · 284 阅读 · 0 评论 -
Scala中的模式匹配
作者:林伟兵,叩丁狼教育高级讲师,原创文章,未经同意不得随意转载在Java中我们可以通过switch..case语句来实现模式匹配,在scala中提供了match case实现模式匹配。普通的模式匹配语句如下:val arr = Array("spark","storm","flink","hadoop")val name = arr(scala.util.Random.next...原创 2018-11-22 11:09:27 · 293 阅读 · 0 评论 -
Scala中的集合
作者:林伟兵,叩丁狼教育高级讲师,原创文章,未经同意不得随意转载1. 定长数组数组的创建://通过指定数组长度来创建数组,系统会为其赋上默认的值scala> new ArrayStringres0: Array[String] = Array(null, null, null, null, null)scala> new ArrayDoubleres1: Arr...原创 2018-11-22 11:08:36 · 234 阅读 · 0 评论 -
Kibana快速介绍
作者:罗海鹏,叩丁狼高级讲师。本文为原创文章,转载请注明出处。 Kibana介绍Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。...原创 2018-11-01 14:14:06 · 8038 阅读 · 1 评论 -
Kibana快速上手
作者:罗海鹏,叩丁狼高级讲师。本文为原创文章,转载请注明出处。 匹配索引我们在正式使用Kibana之前,需要先匹配我们Elasticsearch中的索引库,因为我们的Elasticsearch有可能会有很多索引库,Kibana为了性能因素,是不会事先把所有的索引库都导进来的,我们需要用那个索引就导哪个索引。按照如下步骤操作:Management >> Index...原创 2018-11-01 14:12:57 · 1098 阅读 · 1 评论 -
Eureka-server源码分析
作者:陈刚,叩丁狼高级讲师。本文为原创文章,转载请注明出处。 我们在分析eureka-client的时候发现他是通过Http Rest 的方式做请求的,那么eureka-server一定是基于Rest风格 类似SpringMvc一样的模式接受处理请求。在 EurekaServerAutoConfiguration 自动配置类中有一个 jerseyFilterRegistration方法,...原创 2018-10-31 18:27:36 · 700 阅读 · 0 评论 -
Eureka Client源码分析
作者:陈刚,叩丁狼高级讲师。本文为原创文章,转载请注明出处。 对于一个优秀的程序员而言,一个技术不仅要会用,还要知道他的实现原理和思想,即不仅要知其然还要知其所以然,这样我们写代码才会特别自信,出现bug才能很快定位到问题所在。接下来我们就来简单探讨一下SpringCloud的实现原理,即:源码分析一.服务注册服务注册与发现是SpringCloud最基础的部分,我们就从这部分开始...原创 2018-10-31 18:26:11 · 1279 阅读 · 0 评论 -
Weave部署Docker项目(上)
Docker的部署比较麻烦的地方就是网络, 容器虽然极大的节约了资源,提高了安全性,但是由于每一个容器都是一个独立的环境,其网络也是独立的网络,和其他容器进行通信成了一个难题.还好针对这个问题,各个公司提出的解决方案也比较多, 比如Pipework、Flannel、Weave、Open vSwitch 都是Docker的网络解决方案.下面我们学习一下weave 的使用方法, 然后下一篇文章使用...原创 2018-07-23 09:54:15 · 1045 阅读 · 0 评论 -
SpringCloud极简入门(九)API网关 Netflix Zuul
经过前面的学习,对于Spring Cloud Netflix 核心组件已经了解了一大半,我们已经可以根据这些组件构建一个简单的微服务系统,如图:对于上面的图例你是否看出了什么问题呢?正常情况下为了保证对外服务的安全性,我们在服务接口上都会做一些权限校验,或者签名校验机制等,而我们的微服务理念把应用拆成了很多的服务,而这些服务都是需要做接口权限校验,那就意味着我们需要花很大的力气在每个服务接口上都...原创 2018-07-30 09:21:48 · 657 阅读 · 0 评论 -
Spring中的@AliasFor标签
原创文章,转载请注明出处在Spring的众多注解中,经常会发现很多注解的不同属性起着相同的作用,比如@RequestMapping的value属性和path属性,这就需要做一些基本的限制,比如value和path的值不能冲突,比如任意设置value或者设置path属性的值,都能够通过另一个属性来获取值等等。为了统一处理这些情况,Spring创建了@AliasFor标签。使用@AliasFor标签有...原创 2018-06-12 09:07:51 · 77099 阅读 · 10 评论 -
SpringMVC框架学习01_框架和最佳实践
【作者:任小龙,叩丁狼高级讲师。原创文章,转载请注明出处。】大家好,从今天开始我将通过该平台,为大家带来SpringMVC框架的系列文章,也包括一些杂谈,涵盖一些理念思想,也包括SpringMVC的开发使用以及SpringMVC底层代码。编程不仅要理解代码的编写,更应该在乎底层原理和思想的演变,知其然,并知其所以然才是硬道理。写文章的过程中,我依然会延用平时上课的风格——简单明了,又不失幽默的语言...原创 2018-06-11 16:58:39 · 477 阅读 · 0 评论 -
SpringMVC框架学习02_MVC思想和前端控制器思想
【作者:任小龙,叩丁狼高级讲师。原创文章,转载请注明出处。】在上一篇文章中,我们讲了框架的由来以及Web开发中的最佳实践就是三层架构开发,并留了一个坑,什么是MVC思想。在本文中,我们继续把这个坑挖大一点,当然在边挖的过程中也来填一点坑,边挖边填,边填边挖,这并不是去折磨读者,而是一种思想的演变过程,编程在乎的不就是思想吗,挖坑和填坑可以是一种学习的乐趣。本文需要探讨的有两个点:一、MVC思想;二...原创 2018-06-11 16:56:13 · 412 阅读 · 0 评论 -
SpringMVC框架学习03-SpringMVC入门程序
【作者:任小龙,叩丁狼高级讲师。原创文章,转载请注明出处。】在上一篇文章中,我们讲了MVC思想和前端控制器的思想。在本文中,我们将会完成SpringMVC的第一个程序,想必小伙伴们已经等得太久,再开始之前我们还是得先说说本文的要点。本文需要探讨的有两个点:一、认识一下Spring MVC框架;二、完成SpringMVC第一个程序;注意:学习SpringMVC之前,除了需要掌握JavaWeb知识,至...原创 2018-06-11 16:55:03 · 337 阅读 · 0 评论 -
SpringCloud极简入门 (一) 微服务架构
作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。一.单体应用什么是单体应用?简而言之我们以前传统的应用就是单体应用,即所有的模块,组件等都在一个应用中进行开发,项目的部署也是把整个应用在一个容器中进行部署,并且一个应用享用一个数据库。在单体应用中我们通常把应用分为三个组成部分:数据库,业务层,表现层,这样的应用结构在项目初期业务较少的情况下没有任何问题,但是随着业务需求不断的增加要求单体应用...原创 2018-06-11 16:54:14 · 535 阅读 · 0 评论 -
SpringCloud极简入门(二)服务注册与发现
作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。一.服务治理服务治理从名字上理解就是对服务的管理,我们知道在微服务架构下,我们的业务模块会被抽成一个个独立的服务,服务治理就是对那些独立的服务实现自动化注册与发现。在服务实例不多的情况下服务之间的通信我们可以使用静态配置来实现服务调用,但是随着服务的不断增多,再加上服务地址的变动,服务名的变动等,使用静态配置就会显得越来越难维护,而服务治理模块...原创 2018-06-11 16:52:54 · 342 阅读 · 0 评论 -
SpringCloud极简入门(三)服务提供者与消费者
作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。需求:构建消费者和提供者两个服务,实现消费者和提供者之间的通信一.服务提供者改造我们的项目Producer,让成为服务提供者:在该项目中创建ProvideController ,定义方法如下```@RestController //@Controller 和 @ResponseBody 的混合注解public class ProvideCont...原创 2018-06-11 16:50:54 · 267 阅读 · 0 评论 -
Dubbo 服务部署解决方案:基于 Assembly 拆包部署
作者:刘刚,叩丁狼高级讲师。原创文章,转载请注明出处。Dubbo 服务部署解决方案:基于 Assembly 拆包部署本文主要以 SpringBoot + Dubbo 为基础框架,为你提供一套比较通用的Dubbo 服务部署解决方案。I. 前了个言首先,直接百度可以搜索到一大堆部署方案,包括我现在推荐的这一种,这里不去比较任何一种的好坏,我只是以我认为更好的方式去写下这篇文章II. 简述下技术在写具体...原创 2018-06-11 16:50:07 · 946 阅读 · 0 评论 -
SpringCloud极简入门(四)高可用的Eureka Server集群
作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。一.什么是高可用Eureka Server集群在实际开发中,微服务实例可能有几十上百个之多,由于Eureka Server需要承担服务的注册任务,当服务数量一多,Eureka Server就需要承担非常高的负载,在SpringCloud中我们可以实现Eureka Server的高可用集群来减小负载,简而言之就是多创建几个Eureka Serve...原创 2018-06-11 16:48:57 · 234 阅读 · 0 评论 -
SpringCloud极简入门(五)客户端负载均衡Ribbon
作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。一.什么是负载均衡负载均衡,英文名称为Load Balance,其意思就是将负载分摊到多个操作单元上进行执行,即把请求分担到多个服务进行执行,简而言之就是当一个服务承担不住请求压力,那我可以多弄几个服务来分担,这些服务的职责是一致的。就好比超市收银台,当客户太多,一个收银台忙不过来那我可以多增加几个收银台来减少收银慢的压力,这就是负载均衡。二....原创 2018-06-11 16:47:36 · 290 阅读 · 0 评论 -
SpringCloud极简入门(八)Hystrix Dashboard
一.什么是Hystrix Dashboard从上一章节中我们知道,为了防止服务实例因为故障出现整个应用崩塌的情况而出现了熔断器模型。而 Hystrix Dashboard(仪表盘)则是用来监控Hystrix的熔断器状况的一个组件,它提供了数据监控,和友好的图形化展示界面,能让使用者很好的监控和分析熔断器的状态。二.使用Hystrix Bashboard1.基于项目Consumer进行...原创 2018-07-30 09:20:53 · 216 阅读 · 0 评论 -
SpringCloud极简入门(七)熔断器Hystrix
一.为什么需要熔断器我们知道我们的项目会被分成很多的服务,而每个服务是独立运行的,服务和服务之间通过REST API 实现远程相互调用,既然是远程调用就有可能会因为网络故障,或被调用的服务本身出现问题而造成服务调用延迟,调用失败等问题,而这些问题可能造成调用方对外部服务也调用失败,从而造成一些列连锁反应,甚至造成整个应用瘫痪。例如:服务A调用服务B,而服务B调用服务C,如果服务B调用服务C...原创 2018-07-30 09:19:57 · 251 阅读 · 0 评论 -
Spring中的各种Utils(二):StringUtils详解
本节我们重新来看看我们熟悉的StringUtils。其实这里面的方法很多。首先,这个工具类里面的所有方法,都是针对字符串常见操作,其次,里面有不少方法,即可以针对String,也可以使用CharSequence;判断类属于该类别的方法都是在对字符串进行一些判定操作: //判断类: // boolean isEmpty(Object str):字符串是否为空或者空字符串:"" ...原创 2018-06-14 09:54:55 · 8311 阅读 · 1 评论 -
Spring中的各种Utils(三):AopUtils详解
在本节中,我们介绍Spring非常重要的一个工具类AopUtils。稍微注意一点就是AopUtils主要是针对于AOP过程中的一些工具方法,还有一个叫做AopProxyUtils,这个工具类是针对怎么去做Proxy的工具方法;SpringAOP JavaConfig案例准备因为是作为AOP相关工具类,所以我们需要准备一些基本的测试案例,或者先对Spring AOP测试做一个准备。在这里我们选择基于...原创 2018-06-12 09:13:04 · 10840 阅读 · 1 评论 -
Spring中的各种Utils(四):ClassUtils详解
原创文章,转载请注明出处本节中主要介绍ClassUtils,这是关于类级别相关的工具类,虽然只是提供给Spring框架内部使用,但是很多方法还是有一定使用价值,并且理解这些方法的实现,也是有一定价值的。首先ClassUtils是一个非常大的工具类,提供了很多缓存数据和初始化内容,在涉及到相关方法的时候,再介绍。ClassLoader getDefaultClassLoader()该方法用于获取默认...原创 2018-06-12 09:12:19 · 23422 阅读 · 0 评论