Spring Cloud

如何使用SpringCloud的Hystrix组件

此生再无相见时 提交于 2020-03-27 11:33:27
3 月,跳不动了?>>> Circuit Breaker解决方案Spring Cloud Hystrix组件。 以 2.2.0.release 为例,教你如何入门该组件。 核心概念 hystrix:就是一般所说的断路器组件 hystrix-dashboard:断路器监控统计展示面板组件 turbine:多节点的断路器统计数据合并展示组件,一般用于集群场景 引入的jar包 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-turbine</artifactId> </dependency>

F版本SpringCloud 3—大白话Eureka服务注册与发现

一世执手 提交于 2020-03-26 20:51:02
3 月,跳不动了?>>> 引用:服务注册与发现,就像是租房子一样 前言 今天洛阳下雨了,唉,没有想到有裹上了羽绒服,不穿冷穿了热的尴尬温度。上学工作这么多年都在外面,家里竟然没有一件春天的外套。 日常闲聊之后,开始今天的芝士环节。 昨天说过了什么是SpringCloud,提到了SpringCloud实际上是很多技术的合集,今天就来学习第一个技术 Eureka。 大白话服务服务注册与发现 Eureka在微服务的体系中,主要的功能是实现服务治理,服务注册与发现的,那么什么是服务注册与发现呢? 在第一篇文章讲到过,微服务就是将项目中的模块按照业务来进行拆分,如上图,商品是一个独立的服务,订单也是独立的服务,还可以根据需要将订单服务部署为两个。然后商品服务需要使用订单的时候,就去调用订单服务。 但是在上图中有几个问题是需要解决的: 商品服务想要调用订单服务,怎么知道订单服务1 和 订单服务2的地址?如果临时增加一个订单服务3,那么怎么告诉商品服务订单服务3的地址? 如果订单服务1宕机了,这个时候商品服务如果不知道,依然选择调用已经宕机的订单服务1,会服务调用失败。也就是说:订单服务1宕机了,如何把这个情况即时的告诉其他所有的服务? ...... 解决以上问题的方案就是:引入服务管理者,就是服务治理。 先举一个生活的小栗子: 在没有互联网的时代,如果要租房子需要找中介,

springcloud 微服务分布式 session 共享解决方案

你离开我真会死。 提交于 2020-03-26 15:24:07
3 月,跳不动了?>>> 有3种解决的方案: 1.tomcat的session共享 优点:不需要额外开发,只需搭建tomcat集群即可 缺点:tomcat 是全局session复制,集群内每个tomcat的session完全同步保存着全部的session, 在大规模应用的时候,用户过多,集群内tomcat数量过多,session的全局复制会导致集群性能下降, 因此,tomcat的数量不能太多,而且依赖tomcat容器移植性不好(所以不采用) 2.用cookie同步session 这种完全把客户的登陆信息保存在客户端的cookie中,每次请求带着cookie中的Token 优点:由于完全舍弃了session 会减轻服务器端的压力。 缺点:是把信息暴露在外,就算有加密算法还是存在安全问题。禁止使用cookie的情况下无效。 3.redis 集中管理session(常用的方式) 优点:redis为内存数据库,读写效率高,并可在集群环境下做高可用, 项目案例 www.1b23.com 下面就介绍下第三种的实现方式 spring boot 整合 redis session 做的session共享 一、加入依赖 Xml代码 <!-- redis 依赖 --> < dependency > < groupId > org.springframework.boot </ groupId > <

微服务配置中心(一)

前提是你 提交于 2020-03-26 11:36:43
3 月,跳不动了?>>> 微服务日益流行的今天,除了本身微服务的设计,实现,其配置中心也变得越来越重要和迫切,否则将发挥不出微服务的威力。 现在配置中心核心需求: 交付件和配置分离:相较于docker的内容镜像、配置文件不可变,配置中心需要提供两者可以分离的功能; 抽象标准化:配置文件的格式、配置接口都由配置中心提供,用户只要关心内容; 集中式的管理:所有的业务团队,都可使用配置中心,统一方便管理; 高可用:微服务依赖于配置中心的高可用; 实时性:及时被应用读取配置内容,变更业务功能; 治理:权限控制,不同环境、集群配置管理,灰度发布、支持回退、日志等功能; 当前一线互联网使用的配置中心 阿里巴巴 Diamond(开源) NETFLIX Archaius(开源) 携程:Apollo(开源) 百度:Disconf(开源) Spring Cloud Config 后面讲介绍Apollo配置中心和Spring Cloud Config 配置一般分为静态配置、动态配置 静态配置:和环境相关,包括数据库、中间件的连接串等,以及用户名、密码、令牌、许可证等。 动态配置: 应用配置:超时时间、线程池、对列、缓存、日志级别、限流熔断阈值、黑白名单等; 功能开关:蓝绿发布、灰度开关、降级开关、HA高可用开关、DB迁移等; 业务配置:促销规则、贷款额度、利率等业务参数、A/B测试; 来源:

Spring Cloud 系列之 Netflix Hystrix 服务监控

[亡魂溺海] 提交于 2020-03-26 10:57:39
3 月,跳不动了?>>> Actuator      Hystrix 除了可以实现服务容错之外,还提供了近乎实时的监控功能,将服务执行结果和运行指标,请求数量成功数量等等这些状态通过 Actuator 进行收集,然后访问 /actuator/hystrix.stream 即可看到实时的监控数据。    添加依赖      在需要开启数据监控的项目中添加 actuator 依赖。 <!-- spring boot actuator 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>    配置文件      在配置文件中开启 hystrix.stream 端点。如果希望所有端点暴露,配置为 '*' 。 # 度量指标监控与健康检查 management: endpoints: web: exposure: include: hystrix.stream    启动类    package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot

F版本SpringCloud 2—什么是SpringCloud?SpringCloud版本选择

喜夏-厌秋 提交于 2020-03-26 09:34:07
3 月,跳不动了?>>> 引言:搭建微服务架构就像是买电脑,使用SpringCloud就是在买品牌机。 前言 昂,美好的天气里,不想直接说技术,给小伙伴萌看看傍晚的天空吧。 —— 能找到天上的北极星吗? 上一篇文章中,通过一个简单的小故事,轻松愉快的讲解了架构的演变,以及为啥会有微服务,什么是微服务。不过在最后留下了一个小疑问:将架构设计为微服务需要一整套技术,解决服务调用,服务治理,服务监控等问题。 那么这些技术怎么来呢? 答案就是:SpringCloud。 本文就会详细讲解 什么是SpringCloud SpringCloud和SpringBoot的关系 SpringCloud版本选择 什么是SpringCloud 引言:搭建微服务架构就像是买电脑,使用SpringCloud就是在买品牌机。 SpringCloud,基于SpringBoot提供了一套微服务解决方案 ,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。 NetFlix 是美国的一个在线视频网站,微服务业的翘楚,他是公认的大规模生产级微服务的杰出实践者,NetFlix的开源组件已经在他大规模分布式微服务环境中经过多年的生产实战验证,因此spring cloud中很多组件都是基于NetFlix组件的封装

F版本SpringCloud 2—什么是SpringCloud?SpringCloud版本选择

狂风中的少年 提交于 2020-03-25 21:47:26
3 月,跳不动了?>>> 引言:搭建微服务架构就像是买电脑,使用SpringCloud就是在买品牌机。 前言 昂,美好的天气里,不想直接说技术,给小伙伴萌看看傍晚的天空吧。 —— 能找到天上的北极星吗? 上一篇文章中,通过一个简单的小故事,轻松愉快的讲解了架构的演变,以及为啥会有微服务,什么是微服务。不过在最后留下了一个小疑问:将架构设计为微服务需要一整套技术,解决服务调用,服务治理,服务监控等问题。 那么这些技术怎么来呢? 答案就是:SpringCloud。 本文就会详细讲解 什么是SpringCloud SpringCloud和SpringBoot的关系 SpringCloud版本选择 什么是SpringCloud 引言:搭建微服务架构就像是买电脑,使用SpringCloud就是在买品牌机。 SpringCloud,基于SpringBoot提供了一套微服务解决方案 ,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。 NetFlix 是美国的一个在线视频网站,微服务业的翘楚,他是公认的大规模生产级微服务的杰出实践者,NetFlix的开源组件已经在他大规模分布式微服务环境中经过多年的生产实战验证,因此spring cloud中很多组件都是基于NetFlix组件的封装

7、SpringCloud第七章,升级篇,升级概述与Rest微服务案例构建

百般思念 提交于 2020-03-25 13:42:20
3 月,跳不动了?>>> SpringCloud第六章,升级篇,升级概述与Rest微服务案例构建 一、Springcloud升级之后的变动 发现springcloud升级之后,原来的各个框架都有所变化。 二、Rest微服务构建案例工程 以订单模块做一个微服务通用案例、Consumer消费者[order]通过rest调用Provider生产者[payment]提供的服务 结构: cloud-2020 cloud-api-commons 公共模块 cloud-provider-payment-8001 微服务提供者--提供订单支付功能 cloud-consumer-order-80 微服务消费者--订单 1、父工程 new maven project groupID com.lee.springcloud artifact id cloud_2020 packaging pom POM <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http:

java springcloud版b2b2c社交电商spring cloud分布式微服务 (七)高可用的分布式配置中心(Spring Cloud Config)

五迷三道 提交于 2020-03-25 13:38:28
3 月,跳不动了?>>> Springcloud b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六。讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用,架构图如下: 一、准备工作 继续使用上一篇文章的工程,创建一个eureka-server工程,用作服务注册中心。 在其pom.xml文件引入Eureka的起步依赖spring-cloud-starter-eureka-server,代码如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.forezp</groupId> <artifactId>eureka

SpringCloud微服务云架构构建B2B2C电子商务平台之-(六)分布式配置中心(Spring Cloud Config)

回眸只為那壹抹淺笑 提交于 2020-03-25 13:26:45
3 月,跳不动了?>>> 一、简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是config client。 二、构建Config Server 创建一个spring-boot项目,取名为config-server,其pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.forezp</groupId> <artifactId