自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

波波烤鸭的博客

点点滴滴,积少成多

  • 博客(42)
  • 资源 (3)
  • 收藏
  • 关注

原创 SpringCloud Sleuth入门介绍

案例代码:https://github.com/q279583842q/springcloud-e-book一、Sleuth介绍  为什么要使用微服务跟踪?它解决了什么问题?1.微服务的现状?微服务的现状  随着业务的发展,单体架构变为微服务架构,并且系统规模也变得越来越大,各微服务间的调用关系也变得越来越复杂。多服务协同工作  在微服务的应用中,一个由客户端发起的请求在后端系统中会...

2019-06-30 11:54:49 23652

原创 Spring cloud stream【消息分区】

  在上篇文章中我们给大家介绍了Stream的消息分组,可以实现消息的重复消费的问题,但在某些场景下分组还不能满足我们的需求,比如,同时有多条同一个用户的数据,发送过来,我们需要根据用户统计,但是消息被分散到了不同的集群节点上了,这时我们就可以考虑消息分区了。  当生产者将消息数据发送给多个消费者实例时,保证同一消息数据始终是由同一个消费者实例接收和处理。Stream 消息分区创建项目  ...

2019-06-29 09:45:03 7362 1

原创 Spring cloud stream【消息分组】

  上篇文章我们简单的介绍了stream的使用,发现使用还是蛮方便的,但是在上个案例中,如果有多个消息接收者,那么消息生产者发送的消息会被多个消费者都接收到,这种情况在某些实际场景下是有很大问题的,比如在如下场景中,订单系统我们做集群部署,都会从RabbitMQ中获取订单信息,那如果一个订单同时被两个服务获取到,那么就会造成数据错误,我们得避免这种情况。这时我们就可以使用Stream中的消息分组来...

2019-06-28 20:25:44 8821

原创 Spring cloud stream【入门介绍】

  在实际开发过程中,服务与服务之间通信经常会使用到消息中间件,而以往使用了哪个中间件比如RabbitMQ,那么该中间件和系统的耦合性就会非常高,如果我们要替换为Kafka那么变动会比较大,这时我们可以使用SpringCloudStream来整合我们的消息中间件,来降低系统和中间件的耦合性。一、什么是SpringCloudStream  官方定义 Spring Cloud Stream 是一个...

2019-06-28 17:24:18 6608

原创 SpringCloud-消息总线BUS

  本文我们来介绍下SpringCloud中消息总线BUS。一、什么是消息总线bus  SpringCloud Bus集成了市面上常用的消息中间件(rabbit mq,kafka等),连接微服务系统中的所有的节点,当有数据变更的时候,可以通过消息代理广播通知微服务及时变更数据,例如微服务的配置更新。二、bus解决了什么问题?  解决了微服务数据变更,及时同步的问题。刷新客户端服务刷新...

2019-06-27 18:16:33 8480

原创 SpringCloud-分布式配置中心【加密-非对称加密】

案例代码:https://github.com/q279583842q/springcloud-e-book非对称加密一、什么是非对称加密(Asymmetric encryption)二、Java-keytool 使用说明  非对称加密我们需要生成对应的公钥和私钥,jdk中提供的有java-keytool工具帮助我们生成,执行如下命令:keytool -genkeypair -ali...

2019-06-26 23:53:02 8277 1

原创 SpringCloud-分布式配置中心【加密-对称加密】

  前面我们介绍了SpringCloud的分布式配置中心,我们将项目中的配置信息保存在git或者码云的仓库中,但是这样一些敏感信息就暴露出来了,比如数据库连接的账号密码等信息,这时我们最好能够对这些信息进行加密处理。对称加密一、对称加密介绍  对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。二、加密...

2019-06-26 22:52:52 4791

原创 SpringCloud-分布式配置中心【动态刷新】

  本文我们来讨论下如何在配置中心的信息被改变的情况下,及时刷新客户端的数据的情况。一、配置中心原理1.原理结构图2.原理描述  通过上图我们能看到配置服务其实是从本地的Git仓库中获取的信息,Git本地库通过pull命令同步远程库中的内容。当配置中心客户端重新启动的时候会显示的执行pull命令来拉取最新的配置信息,这个我们可以通过如下案例来得到演示.2.1 关闭配置中心客户端  关...

2019-06-26 00:01:10 4966

原创 Spring相关文章汇总篇【Spring,SpringBoot,SpringCloud等】

  因为Spring框架包含的组件比较多,写的博客内容也比较多,虽然有分专栏但是依然不方便查找,所以专门用一篇文章来记录相关文章,会不定期更新。一、Spring1.基础内容Spring介绍Spring-IOC实现【01-XML配置方式】Spring-IOC实现【02-XML配置方式案例】Spring-IOC实现【03-其他实现方式】Java代理模式-AOP必备知识Spring之AO...

2019-06-25 22:40:07 41318 6

原创 SpringCloud-分布式配置中心【入门介绍】

一、 为什么需要使用配置中心1 服务配置的现状2 常用的配置管理解决方案的缺点3 为什么要使用 spring cloud config 配置中心?4 spring cloud config配置中心,它解决了什么问题?二、 编写配置中心入门案例1.编写配置中心的服务端1.1 创建服务端项目  创建一个SpringCloud项目。1.2 修改pom文件  我们需要添加co...

2019-06-25 21:00:08 5745 2

原创 SpringCloud-Zuul服务网关[性能优化]

  zuul的一些默认设置如果我们不调整下,那么对整体的服务的性能还是有很大影响的,比如如果网关调用的服务处理时间比较长,那么就会出现timeout异常。性能优化1.创建项目2.添加依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> &...

2019-06-23 21:47:01 7505

原创 SpringCloud-Zuul服务网关[高并发请求下的限流处理]

  高并发的情况肯定是实际场景中经常碰到的情况,那么这种情况下限流措施肯定是必须的,本文我们就来看看zuul中限流的处理高并发的限流处理1.创建项目  创建一个SpringCloud项目2.添加依赖  必须要添加 ratelimit依赖<dependencies> <dependency> <groupId>org.springframewo...

2019-06-23 19:28:38 10236

原创 SpringCloud-Zuul服务网关[容错Hystrix]

  zuul作为网关服务,用来分配调度其他服务的,那么难免就会出现调用的服务出现问题的请求,或者用户访问急剧增多的情况,那么此时我们的网关服务就应该具有容错能力,zuul本身也考虑到了这点,所以默认集成的有Hystrix。一、zuul 和 hystrix 无缝结合  在 zuul 的 jar 包中包含了 hystrix 的 jar 包。所以我们不需要在项目中添加 Hystrix 的坐标。二...

2019-06-22 11:26:07 11032 1

原创 SpringCloud-Zuul服务网关[自定义网关过滤器]

  zuul的核心是一系列的filters, 其作用可以类比Servlet框架的Filter,或者AOP,本文我们就来具体介绍下自定义的zuul过滤器自定义网关过滤器1.创建项目  创建一个普通的SpringBoot项目项目2.添加依赖  注意添加zuul的依赖<dependency> <groupId>org.springframework.cloud&l...

2019-06-21 18:00:19 6411

原创 SpringCloud-Zuul服务网关[介绍及入门案例]

一、什么是Zuul  zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。  Zuul 在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。  zuul的例子可以参考netflix在github上的 simple webapp,可以按照netfl...

2019-06-19 11:49:49 10071 1

原创 微服务综合案例-05-业务逻辑实现

  本文我在前面的基础上来实现各个业务模块。结构图如下一、模拟登陆功能1.e-book-user-service 处理1.1 pojo序列化1.2 service接口处理@RequestMapping("/user")public interface UserService { // 用户登录 @RequestMapping(value = "/login", method ...

2019-06-18 21:49:03 5895

原创 微服务综合案例-04-业务逻辑处理

  现在我们已经创建好了所需的各个项目,我们的需求是完成用户购买书籍,完成订单操作:  而具体的流程是:下订单需要经过: 登录,查看产品,下订单等操作。测试登录 账号 admin admin查看所有产品列表选第一款产品,下订单实现订单交易支付查看所有的订单信息业务逻辑处理  业务逻辑处理我们是在consumer项目中操作的1.创建服务service1.1 UserServ...

2019-06-16 20:08:42 21875 10

原创 微服务综合案例-03-其他服务的创建

  上篇文章我们详细的介绍了product服务的创建,因为其他几个服务的创建过程是相似的,所以其他几个服务我们就快速创建了。用户服务1.表结构2.mybatis逆向工程3.service服务依赖和product-service一样,拷贝pojo文件4.provider服务具体依赖如下:<project xmlns="http://maven.apache.org/P...

2019-06-16 19:17:41 5420

原创 微服务综合案例-02-product服务创建

  上篇文章我们分析了我们要实现的案例的需求,本文我们来实现下product服务。因为要创建的项目比较多所以,本案例采用eclipse来开发。Product服务  因为我们是通过Feign来声明是的调用服务,所以我们需要创建service接口服务。持久层我们通过mybatis操作,所以我们需要通过mybatis的generator插件来帮助我们生存对应文件一、数据库  product服务对...

2019-06-16 18:28:27 7886 1

原创 微服务综合案例-01-需求分析

  前面我们分别给大家介绍了SpringBoot,SpringCloud的Eureka(注册中心),ribbon(负载均衡),Feign(声明式服务调用),Hystrix(服务容错)等内容,在介绍后续内容之前我们穿插通过一个案例来综合使用下前面介绍的内容。一、服务号常用设计模式介绍  首先我们来看下在微服务架构中我们经常会选用的设计模式1.代理设计模式  代理服务作为整个系统的入口服务。...

2019-06-16 17:33:46 5968

原创 SpringCloud-Turbine【RabbitMQ服务监控】

  前面我们介绍了通过turbine直接聚合多个服务的监控信息,实现了服务的监控,但是这种方式有个不太好的地方就是turbine和服务的耦合性太强了,针对这个问题,我们可以将服务的监控消息发送到RabbitMQ中,然后turbine中RabbitMQ中获取获取监控消息,这样就实现类服务和turbine的解耦。  我们通过案例来演示下如何实现该效果一、启动RabbitMQ服务  显然我们需要...

2019-06-15 18:14:46 5761 1

原创 SpringCloud-Turbine【多个服务和集群监控】

  Turbine 是聚合服务器发送事件流数据的一个工具,hystrix 的监控中,只能监控单个节点,实际生产中都为集群,因此可以通过 turbine 来监控集群服务。案例介绍  本案例中我们启动两个consumer,集成的有dashboard。创建一个新的turbine项目,通过turbine项目类聚合监控数据,然后通过dashboard-view项目来展示可视化的监控数据一、创建tur...

2019-06-14 21:33:51 4197

原创 SpringCloud-Hystrix【可视化数据监控-Hystrix-Dashboard】

  本文我们来介绍下微服务中的服务监控主键Hystrix-Dashboard。  Hystrix-dashboard 是一款针对 Hystrix 进行实时监控的工具,通过 Hystrix Dashboard 我们可以在直观地看到各 Hystrix Command 的请求响应时间, 请求成功率等数据。一、监控数据1.创建项目  复制一个前面介绍的feign降级的项目即可。2.添加依赖 ...

2019-06-13 20:01:12 3839

原创 SpringCloud-Hystrix【Feign处理降级-异常记录】

  前面的文章介绍了Hystrix处理Feign调用时的降级处理,但是现在有个问题是如果我们调用provider服务的时候出现了故障从而返回了托底数据,我们怎么查看故障的日志信息呢?前面的处理我们是无法获取到consumer调用provider的错误信息的。Feign降级记录异常信息1.创建项目  创建一个普通的SpringCloud项目2.基本设置  相关的依赖和前面的项目是一样的...

2019-06-13 17:56:16 5540

原创 SpringCloud-Hystrix【Feign处理降级】

  本文我们来介绍下在使用Feign来做服务调用的情况下怎么通过Hystrix实现服务降级处理。Feign实现服务降级1.创建项目  使用feign做服务调用时,provider和consumer需要依赖相同的service服务,本文仅仅创建consumer服务,其他相关服务参考git案例:https://github.com/q279583842q/SpringCloud-dpb-Demo...

2019-06-12 21:58:36 4693 1

原创 SpringCloud-Hystrix【解决灾难性雪崩-隔离】

  本文我们来演示下Hystrix中解决雪崩效应的第五种方式隔离的实现Hystrix隔离  在应对服务雪崩效应时,除了前面介绍的降级,缓存,请求合并及熔断外还有一种方式就是隔离,隔离又分为线程池隔离和信号量隔离。接下来我们分别来介绍。一、线程池隔离1.概念介绍  我们通过以下几个图片来解释线程池隔离到底是怎么回事在没有使用线程池隔离时当接口A压力增大,接口C同时也会受到影响使用...

2019-06-12 20:20:50 3226

原创 SpringCloud-Hystrix【解决灾难性雪崩-熔断】

  本文我们来演示下Hystrix中解决雪崩效应的第四种方式熔断的实现Hystrix熔断  熔断其实是在降级的基础上引入了重试的机制。当某个时间内失败的次数达到了多少次就会触发熔断机制,具体的流程如下案例演示1.创建项目  创建一个普通的SpringCloud项目2.导入依赖  在基础依赖之外我们只需要导入Hystrix的依赖即可<dependency> &...

2019-06-12 19:24:40 4625 1

原创 SpringCloud-Hystrix【解决灾难性雪崩-请求合并】

  本文我们来演示下Hystrix中解决雪崩效应的第三种方式请求合并的实现Hystrix-请求合并没有合并请求的场景  没有合并的场景中,对于provider的调用会非常的频繁,容易造成处理不过来的情况合并请求的场景什么情况下使用请求合并  在微服务架构中,我们将一个项目拆分成很多个独立的模块,这些独立的模块通过远程调用来互相配合工作,但是,在高并发情况下,通信次数的增加会导致总的...

2019-06-11 22:36:38 3199

原创 SpringCloud-Hystrix【解决灾难性雪崩-缓存】

  本文我们来演示下Hystrix中解决雪崩效应的第二种方式缓存的实现Hystrix-缓存  Hystrix 为了降低访问服务的频率,支持将一个请求与返回结果做缓存处理。如果再次请求的 URL 没有变化,那么 Hystrix 不会请求服务,而是直接从缓存中将结果返回。这样可以大大降低访问服务的压力。Hystrix 自带缓存。有两个缺点:是一个本地缓存。在集群情况下缓存是不能同步的。不支...

2019-06-11 19:08:50 3503

原创 SpringCloud-Hystrix【解决灾难性雪崩-降级】

  本文我们来演示下Hystrix中解决雪崩效应的第一种方式降级的实现Hystrix-降级一、场景介绍  先来看下正常服务调用的情况  当consumer调用provider服务出现问题的情况下:  此时我们对consumer的服务调用做降级处理二、案例演示1.创建项目  创建一个SpringCloud项目2.添加依赖  添加Hystrix依赖,调用通过ribbon来负...

2019-06-11 18:07:17 2957

原创 SpringCloud-Hystrix【解决灾难性雪崩】

  在微服务环境中,因为一个节点的故障而造成的其他节点的不可用的情况是比较常见的,这也就是我们常说的灾难性雪崩现象,而Hystrix给我们提供了解决这种情况的方案。什么是灾难性的雪崩效应  什么是灾难性的雪崩效应?我们通过结构图来说明,如下正常情况下各个节点相互配置,完成用户请求的处理工作当某种请求增多,造成"服务T"故障的情况时,会延伸的造成"服务U"不可用,及继续扩展,如下最终...

2019-06-11 17:41:40 3127

原创 SpringCloud-Feign【超时时间设置】

  Feign调用服务的默认时长是1秒钟,也就是如果超过1秒没连接上或者超过1秒没响应,那么会相应的报错。而实际情况是因为业务的不同可能出现超出1秒的情况,这时我们需要调整超时时间。本文来看下怎么去设置。全局配置  在application.properties中添加如下配置,超过5秒没连接上报连接超时,如果超过5秒没有响应,报请求超时#全局配置# 请求连接的超时时间 默认的时间为 1 秒...

2019-06-09 18:52:31 63410 12

原创 SpringCloud-Feign[微服务日志处理]

  在微服务中,有时我们需要查看服务之前的调用情况,如下,我们想要查看consumer调用provider的情况,浏览器到consumer的调用情况我们可以通过浏览器查看。通过案例我们来看下怎么查看consumer调用provider的情况1.创建项目2.添加 logback.xml 文件  通过logback来实现日志信息的持久化<?xml version="1.0" enc...

2019-06-09 18:33:08 4762 2

原创 SpringCloud-Feign[HttpClient连接池]

  为什么 http 连接池能提升性能?http 的背景原理a. 两台服务器建立 http 连接的过程是很复杂的一个过程,涉及到多个数据包的交换,并且也很耗时间。b. Http 连接需要的 3 次握手 4 次分手开销很大,这一开销对于大量的比较小的 http 消息来说更大。优化解决方案a. 如果我们直接采用 http 连接池,节约了大量的 3 次握手 4 次分手;这样能大大提升吞吐率。...

2019-06-09 17:46:28 8039

原创 SpringCloud-Gzip[压缩介绍]

  在数据传输过程中压缩数据肯定是必须的,而gzip是我们比较常用的方式,而且我们在刚刚接触http协议的时候就介绍过gzip。本文我们来看下在微服务环境下我们怎么通过gzip来压缩数据。一、gzip 介绍  gzip是一种数据格式,采用用 deflate 算法压缩 data;gzip 是一种流行的文件压缩算法,应用十分广泛,尤其是在 Linux 平台。gzip 能力:  当 Gzip 压...

2019-06-09 12:30:02 4077

原创 SpringCloud-Feign[请求参数处理]

文章目录Feign参数处理一、单个参数1.service服务2.provider服务3.consumer服务二、多个参数1.GET方式2.POST方式  在上篇文章的基础上我们来介绍下Feign的请求参数的问题Feign参数处理一、单个参数  首先来看下单个参数的情况1.service服务  在service服务中我们增加一个接收单个参数的方法@RequestMapping("/pr...

2019-06-07 13:09:42 3859

原创 SpringCloud-Feign[入门案例]

一、 什么是 Feign  Feign是一种声明式、模板化的HTTP客户端(仅在 consumer 中使用)。二、 什么是声明式,有什么作用,解决什么问题?  声明式调用就像调用本地方法一样调用远程方法;无感知远程 http 请求。Spring Cloud 的声明式调用, 可以做到使用 HTTP 请求远程服务时能就像调用本地方法一样的体验,开发者完全感知不到这是远程方法,更感知不到这是个...

2019-06-07 10:58:54 1786

原创 spring-boot项目打包去掉BOOT-INF文件夹

  今天创建了一个SpringBoot项目A,打成jar后,在另一项目B中依赖A项目,因为A项目打包后出现了BOOT-INF文件夹而我们的源码被放在了BOOT-INF中,造成我们在B项目中虽然添加了依赖,但是import类的时候出错。这时我们只需要在A项目的pom中添加如下配置即可<build> <plugins> <plugin&g...

2019-06-07 10:28:29 5563 1

原创 SpringCloud-Ribbon[负载均衡策略]

  上篇文章我们介绍了Ribbon的入门案例,通过案例我们知道ribbon默认的负载均衡策略是轮询,本文我们来看下Ribbon的其他常用的负载均衡策略。Ribbon负载均衡策略ribbon提供的策略类  ribbon依赖中提供的有相关的策略,具体如下Ribbon 的常见负载均衡策略策略名称策略对应的类名实现原理轮询策略(默认)RoundRobinRule轮询策...

2019-06-05 23:53:17 4370

原创 SpringCloud-Ribbon[入门案例]

一、 Ribbon 在微服务中的作用1 什么是 RibbonRibbon 是一个基于 Http 和 TCP 的客服端负载均衡工具,它是基于 Netflix Ribbon 实现的。它不像 spring cloud 服务注册中心、配置中心、API 网关那样独立部署,但是它几乎存在于每个 spring cloud 微服务中。包括 feign 提供的声明式服务调用也是基于该 Ribbon实现的。...

2019-06-04 23:48:51 1533

ORACLE-笔试题.doc

最新的Oracle笔试题,快来下载吧,各大软件开发公司第一手Oracle的题目

2019-05-14

整理的android面试题(附详细答案).doc

全套详细的安卓面试题,另附详细的答案,应该会对大家找安卓相关工作有很大的帮助

2019-05-14

Assembly插件

Assembly插件所需的相关内容,包含对应的conf和lib资源。欢迎下载

2019-03-29

空空如也

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

TA关注的人

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