![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring cloud
闪耀的瞬间
漫漫程序路:路漫漫其修远兮 吾将上下而求索
展开
-
SpringCloud实战:目录
本篇的目的是想做一个《SpringCloud实战》的目录页,方便朋友们查阅1.SpringCloud实战一:前言2.SpringCloud Eureka服务发现与注册中心原创 2018-12-07 22:15:35 · 5493 阅读 · 2 评论 -
SpringCloud实战十一:Gateway之 Spring Cloud Gateway
1.网关是怎么演化来的单体应用拆分成多个服务后,对外需要一个统一入口,解耦客户端与内部服务2.网关的基本功能网关核心功能是路由转发,因此不要有耗时操作在网关上处理,让请求快速转发到后端服务上网关还能做统一的熔断、限流、认证、日志监控等3.关于Spring Cloud GatewaySpring Cloud Gateway是由spring官方基于Spring5.0、Sprin...原创 2019-01-15 14:28:11 · 11373 阅读 · 13 评论 -
SpringCloud实战十二:Gateway之 Spring Cloud Gateway 熔断、降级、限流
1.熔断降级:在分布式系统中,网关作为流量的入口,大量请求进入网关,向后端远程系统或服务发起调用,后端服务不可避免的会产生调用失败(超时或者异常),失败时不能让请求堆积在网关上,需要快速失败并返回回去,这就需要在网关上做熔断、降级操作。2.限流:网关上有大量请求,对指定服务进行限流,可以很大程度上提高服务的可用性与稳定性,限流的目的是通过对并发访问/请求进行限速,或对一个时间窗口内的请求进行限速...原创 2019-01-15 21:31:01 · 38246 阅读 · 34 评论 -
SpringCloud实战十五:Spring Cloud Config 配置中心
我们先模拟一个业务场景:电商系统做一次促销活动,由于无法预估促销商品的需求量,于是设置了库存为100个,可能研发工程师对阵该业务在代码中写死库存总数为100,但由于销售火爆,100个库存无法满足人们的需求,想加载库存,那么研发工程师要修改代码库存,走测试流程,再发布到正式环境。通过这个业务,我们可以把这个库存参数写到远程配置中(本地静态配置运行时无法动态修改生效),定时获取配置信息,下次做促销活动...原创 2019-01-29 13:27:04 · 2438 阅读 · 2 评论 -
SpringCloud实战十六:Spring Cloud Sleuth + Zipkin 调用链监控
1.为什么需要调用链监控?它能做什么? 随着系统规模越来越大,服务数目增加,各微服务间的调用关系也越来越错综复杂,通常一个客户端发起的请求在后端系统中会经过多个不同的微服务调用来协同产生结果并返回,在复杂的微服务架构系统中,几乎每一个前端请求都会形成一条复杂的分布式服务调用链路,在每条链路中任何一个依赖服务出现延迟过高或错误的时候都会引起请求最后的失败,这时候,对于每一个请求,调用链的跟踪就变...原创 2019-02-13 14:47:17 · 5194 阅读 · 1 评论 -
SpringCloud实战十七:Spring Cloud Consul 服务发现与配置中心
Consul 用于实现分布式系统的服务发现与配置。与其他服务注册与发现相比,Consul更“一站式”,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。使用起来也较为简单。Consul使用Go语言编写,因此具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文...原创 2019-03-04 21:53:04 · 13094 阅读 · 0 评论 -
SpringCloud实战十八:Pometheus 集成 Consul 动态拉取业务服务监控信息
1.前三篇博客分别介绍了 Prometheus 、Grafana、与 SpringBoot 集成1.prometheus介绍与安装2.Grafana可视化图形界面3.Spring Boot 集成 Prometheus前面三篇一步步搭建时间序列数据库监控体系,但是在微服务环境中,上面的集成还有很大缺陷,当我有很多个SpringBoot应用程序时,要一个个的在 prometheus 中配置...原创 2019-03-11 22:22:12 · 2729 阅读 · 0 评论 -
SpringCloud实战十九:Pometheus 集成 Alertmanager 服务告警(邮件通知)
1.在前面四篇博客基础上,基础Alertmanager组件,对监控信息实现告警处理,已发送邮件、企业微信等方式通知接收人1.前三篇博客分别介绍了 Prometheus 、Grafana、与 SpringBoot 集成1.prometheus介绍与安装2.Grafana可视化图形界面3.Spring Boot 集成 Prometheus4.Pometheus 集成 Consul 动态拉取...原创 2019-03-17 21:14:05 · 2501 阅读 · 0 评论 -
SpringBoot Mongodb文件存储服务器
1.Mongodb简介MongoDB是一个高性能,开源,无模式的文档型数据库Mongodb可以通过副本集、分片来扩展数据库性能GridFS:Mongo主要解决的是海量数据的访问效率问题。因为Mongo主要是支持海量数据存储的,所以Mongo还自带了一个出色的分布式文件系统GridFS,可以支持海量的数据存储。由于Mongo可以支持复杂的数据结构,而且带有强大的数据查询功能2.为什么使用...原创 2019-03-24 15:57:25 · 8490 阅读 · 3 评论 -
分布式事务之Seata(Fescar)
1.背景Seata是阿里开源的一款高性能分布式事务解决方案,在2019年1月初阿里分布式事务框架GTS开源了一个免费社区版Fescar,也就是说在阿里内部叫GTS,后面开源版本叫Fescar,后面再改名为Seata,GitHub地址:https://github.com/seata/seata2.事务我的理解是,一次操作(不管几次远程调用),要么一起成功,要么失败。说到事务就不得不说数据库...原创 2019-04-20 09:57:45 · 5157 阅读 · 1 评论 -
Linux安装Elasticsearch
centos7.6 安装elasticsearch1 安装JDK下载 jdk-8u191-linux-x64.tar,解压打开 vi /etc/profile ,输入jdk地址 export JAVA_HOME=/usr/local/jdk1.8.0_191 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.ja...原创 2019-09-17 15:20:45 · 330 阅读 · 0 评论 -
Linux安装Logstash
centos7.6 安装logstash,依赖 JDK,可参考 jdk安装安装 Logstash1.地址:https://www.elastic.co/cn/downloads/logstash,选择历史版本,选择6.8.1下载,和上篇 Elasticsearch 版本一致2.下载:wget https://artifacts.elastic.co/downloads/logstash/l...原创 2019-09-17 15:38:26 · 963 阅读 · 0 评论 -
Linux安装Kibana
centos7.6 安装kibana,依赖 JDK,可参考 jdk安装安装Kibana1.地址:https://www.elastic.co/cn/downloads/kibana,选择历史版本,选择6.8.1下载,和上篇 Elasticsearch 版本一致2.下载:wget https://artifacts.elastic.co/downloads/kibana/kibana-6.8...原创 2019-09-17 15:47:47 · 407 阅读 · 0 评论 -
SpringCloud实战十四:Gateway之 Spring Cloud Gateway 动态路由-进阶
1.上篇 对网关动态路由配置做了简单的分享,本篇将对动态路由进行更深层的实现,实现思路如下:1.创建一个路由信息维护的项目,实现增删改查路由信息到mysql2.提供发布功能,发布后将路由信息与版本信息保存到redis中,对外提供 rest 接口获取路由信息3.网关开启定时任务,定时拉取 rest 接口中发布的最新版的路由信息,对比版本号,如果网关的版本号与rest接口中的不一致,则获取路由...原创 2019-01-20 15:36:25 · 18138 阅读 · 21 评论 -
SpringCloud实战十三:Gateway之 Spring Cloud Gateway 动态路由
前面分别对 Spring Cloud Zuul 与 Spring Cloud Gateway 进行了简单的说明,它门是API网关,API网关负责服务请求路由、组合及协议转换,客户端的所有请求都首先经过API网关,然后由它将匹配的请求路由到合适的微服务,是系统流量的入口,在实际生产环境中为了保证高可靠和高可用,尽量避免重启,如果有新的服务要上线时,可以通过动态路由配置功能上线。本篇拿 Spring...原创 2019-01-19 23:13:30 · 122137 阅读 · 27 评论 -
SpringCloud实战九:Spring Cloud Hystrix Dashboard 与 Turbine
Hystrix Dashboard断路器监控,是作为断路器状态的一个组件,提供了数据监控和友好的图形化界面。通过配置Hystrix Dashboard,我们可以通过浏览页面看运行情况上一张介绍了Hystrix,Hystrix Dashboard断路器监控,本章直接上代码,看看监控页面,基于上一篇的代码,在pom.xml中引入:1.引入actuator与dashboard依赖<dep...原创 2019-01-01 21:10:11 · 2667 阅读 · 2 评论 -
SpringCloud实战二:Spring Cloud Eureka 服务发现与注册中心
Spring Cloud Eureka 它是通过封装 Netflix 开源的Eureka,一款基于 Rest 的服务发现与注册组件,包括 Eureka Server 和 Eureka Client,最新版本为2018年8月发布的1.9.4版本,最新的2.x版本已经不再开源,但是1.9版本已经够用了,不要太过担心 为什么需要服务注册中心?先看几张服务之间调用图项目A写死项目B的IP和端口...原创 2018-12-07 23:51:10 · 2843 阅读 · 3 评论 -
SpringCloud实战三:Spring Cloud Eureka 配合 Security 提高安全
上篇《SpringCloud实战二:Spring Cloud Eureka 服务发现与注册中心》搭建了一个简单的注册中心,启动项目后任何人都可以访问你的 eureka注册中心, http://localhost:10025/ ,从而知道你所有服务的IP与端口,虽然 eureka往往隐藏在网关后的内网,但也是不安全的 引入 spring-cloud-starter-security,可给注册...原创 2018-12-08 18:13:27 · 4569 阅读 · 6 评论 -
SpringCloud实战四:Spring Cloud Eureka 高可用
高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指:通过设计减少系统不能提供服务的时间。 假设系统一直能够提供服务,我们说系统的可用性是100%,如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%,很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系统的年停机时间为8.76个小时。 举个...原创 2018-12-08 21:49:53 · 1860 阅读 · 3 评论 -
SpringCloud实战一:前言
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构势在必行,现在最流行的就是微服务架构,微服务是一种架构风格,让敏捷开发、自动化测试、持续交付成为可能。 2011年阿里巴巴开源 Dubbo,但它是一个SOA服务化治理框架,致力于提供高性能和透明化的RPC远程服务调用方案 2014年3月,Martin Fowler发表《Microservices》,通...原创 2018-12-07 22:10:38 · 2263 阅读 · 4 评论 -
SpringCloud实战五:Spring Cloud Feign 服务调用
本篇主要讲解什么是Feign,以及Feign入门实践 Feign是一个声明式的Web Service客户端,整合了注解,所以使用起来比较方便,通过它调用HTTP请求访问远程服务,就像访问本地方法一样简单开发者完全无感知1.Feign具有以下一些重要特性:整合了Hystrix,支持fallback容错降级整合了Ribbon,直接请求的负载均衡支持HTTP请求和响应的压缩2.创建...原创 2018-12-09 22:30:49 · 3384 阅读 · 1 评论 -
SpringCloud实战七:Spring Cloud Ribbon 实战
前面的两篇博客已经讲解了Feign作为服务间的调用,但是Feign是集成、封装了Ribbonn这个组件而来的,让服务间的调用更方便,因此大多使用Feign,本篇让大家了解Ribbon的概念与调用Ribbon是Netflix开发的一个负载均衡组件,它在服务体系中起着重要作用,Pivotal将其整合成为Spring Cloud Ribbon,与其他SpringCloud组件结合可以发挥出强大作用,它...原创 2018-12-15 15:24:42 · 5236 阅读 · 0 评论 -
SpringCloud实战:Jenkins持续集成
什么是持续集成?大型系统拆分为多个服务后,每个小团队负责一个服务,服务的更新、发布会变得很频繁,通过工具监控代码的提交,持续的进行自动构建,这就是持续集成。为什么要用 Jenkins 做持续集成?Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。是一个免费的源代码,可以处理任何类型的构建或持续集成。安装 Jenkins 与其他必备环境1.服务器环...原创 2018-12-26 22:58:03 · 4648 阅读 · 5 评论 -
SpringCloud实战十:Gateway之 Spring Cloud Zuul
1.Zuul相关概念Zuul是netflix开源的一个API Gateway 网关, 本质上是一个web servlet应用,用来做统一认证与鉴权、动态路由、监控、弹性、安全等边缘服务的框架,它的核心是做服务转发。2.为什么需要网关使用微服务架构后,大型系统往往会拆分为多个微服务,前端页面可能有商品,评价,广告、推荐模块等等,如果没有网关,前端页面就需要自己关心后端各个服务模块的地址,如果服...原创 2018-12-16 15:00:56 · 1958 阅读 · 1 评论 -
SpringCloud实战:redisson 分布式锁案例
对前面讲解 redisson 实现分布式锁的文章做个补充(上篇文章地址),背景:启动 redis,6379端口,SpringCloud微服务,模拟秒杀抢购场景,100库存,用jmeter测试,起300个线程并发请求2次,总计600个请求数,最后查看库存是否为负数,证明分布式锁是否锁住了库存。注册中心 10025端口消费者服务 9700端口秒杀服务 8083、8084,启动2个服务测试...原创 2018-12-10 22:16:59 · 7796 阅读 · 1 评论 -
SpringCloud实战六:Spring Cloud Feign 高级应用
上篇简单的介绍了Feign的使用,本篇将结合注册中心,进行Feign的高级应用,案例中有三个角色:服务注册中心、服务提供者、服务消费者,注册中心为上篇的eureka单机版。具体高级应用为如下几条:1.使用feign进行服务间的调用2.feign开启Gzip压缩3.feign开启日志4.feign替换JDK默认的URLConnection为okhttp5.feign超时设置6.fei...原创 2018-12-11 23:28:39 · 22276 阅读 · 4 评论 -
SpringCloud实战:docker部署项目
Docker 技术发展为微服务落地提供了更加便利的环境,docker配合kubernetes,可以编排容器,通俗来说,就是通过kubernetes,可以监控微服务的响应情况,请求多服务响应慢时自动拉起docker服务,来缓解服务压力,且不需要人工干预本篇的目的是记录系统上线时,把项目打包为容器服务器需要用到的环境与软件centos7.3java jdk8_191maven3.5.3d...原创 2018-12-18 14:36:46 · 3048 阅读 · 1 评论 -
SpringCloud实战八:Spring Cloud Hystrix隔离、熔断、降级与实践
1.说到隔离、熔断、降级,最出名的就是 Netflix 开源的 Hystrix 组件,Hystix官方对它描述为:Hystrix是一个延迟和容错库,旨在隔离远程系统、服务和第三方库,阻止级联故障,在复杂系统中实现恢复能力。2.下图应用从单块到微服务,系统被拆分为多个,那么产生了个问题,就是微服务的可用性,假设单块应用的可用性是 99.99%,如果被拆分为30个微服务后,总体的可用性是多少,答案是...原创 2018-12-29 22:57:12 · 11818 阅读 · 5 评论 -
SpringBoot使用ELK做日志收集
https://www.elastic.co/cn/1.ELK是有Elastic公司的三个组件配合进行日志收集,分别是:ElasticSearch:用于存储日志信息。Logstash:用于收集、处理和转发日志信息。Kibana:提供可搜索的Web可视化界面。当然,现在很多都配合着Beats进行使用,这里不做过多描述,感兴趣的可以查看官网 https://www.elastic.co/...原创 2019-09-17 16:08:56 · 1078 阅读 · 0 评论