SpringCloud 服务网关
博客学习参考视频 GateWay 新网关① 概述简介1.官网 上一代网关 zuul 1.X:https://github.com/Netflix/zuul/wiki 当 前 网 关 gateway :https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/ 2.是什么概述: 一句话: SpringCloud Getaway 使用的 Webflux 中的 reactor-netty 响应式编程组件,底层使用的 Netty 通讯框架 源码框架 3.能干嘛 反向代理 鉴权 浏览控制 熔断 日志监控 …. 4.微服务架构中网关在哪里 5.有了 Zuul 了怎么又出来了 gateway 我们为什么选择 Gatway? neflix 不太靠谱, zuul2.0 一直跳票,迟迟不发布 SpringCloud Gateway 具有如下特性 SpringCloud Gateway 与 Zuul 的区别 Zuul1.x 模型 ...
SpringCloud 服务降级
博客学习参考视频 一、Hystrix 断路器① 概述1.分布式系统面临的问题 2.是什么 3.能干嘛 服务降级 服务熔断 接近实时的监控 4.官 网 资 料 https://github.com/Netflix/Hystrix/wiki/How-To-Use 5.Hystrix 官宣,停更进维 https://github.com/Netflix/Hystrix 不在修复 Bug 不在接收合并请求 不在发布新版本 ② Hystrix 重要概念1.服务降级服务器忙, 请稍候再试, 不让客户端等待并立刻返回一个友好提示, fallback 哪些情况会触发降级: 1 程序运行异常、 2 超时、 3 服务熔断触发服务降级 、4 线程池/信号量打满也会导致服务降级 2.服务熔断 类比保险丝达到最大服务访问后, 直接拒绝访问, 拉闸限电, 然后调用服务降级的方法并返回友好提示,就是保险丝。 服务的降级->进而熔断->恢复调用链路 3.服务限流 秒杀高并发等操作, 严禁一窝蜂的过来拥挤, 大家排队, 一秒钟 N 个, 有序进行 ③ hystrix 案例1.构建 新建 ...
SpringCloud 服务注册与发现
本篇博客参考学习视频 一、Eureka 服务注册与发现① Eureka 基础知识1. 服务治理 SpringCloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理。 在传统的 RPC 远程调用框架中, 管理每个服务与服务之间依赖关系比较复杂, 所以需要使用服务治理管理服务与服务之间依赖关系, 了以实现服务调用、 负载均衡、容错等, 实现服务发现与注册 。 2. 服务注册 3.Eureka 两组件 ② 单机 Eureka 构建步骤1.IDEA 生成 EurekaServer 端服务注册中心 类似物业公司 建 Module 改 POM 12345678910111213141516171819202122232425262728293031323334353637<dependencies> <!--eureka-server--> <dependency> <groupId>org.springframework.cloud</groupId> < ...
SpringCloud 服务调用
博客学习参考视频 一、Ribbon 负载均衡服务调用① 概述1.是什么 2.官网资料 https://github.com/Netflix/ribbon/wiki/Getting-Started Ribbon 目前也进入维护模式 未来替换方案 3.能干嘛 LB(负载均衡) : 集中式 LB、 进程内 LB ,前面我们写过了 80 通过轮询负载访问 8001/8002 一句话: 负载均衡+RestTemplate 调用 ② Ribbon 负载均衡演示1.架构说明 总结: Ribbon 其实就是一个软负载均衡的客户端组件,他可以和其他所需请求的客户端结合使用,和 eureka 结合只是其中的一个实例。 2.POM 3.RestTemplate 的使用官网:https://docs.spring.io/spring-framework/docs/5.2.2.RELEASE/javadoc-api/org/springframework/web/client/RestTemplate.html getForObject 方法/getForEntity 方法 postForObj ...
SpringBoot与监控管理(Actuator)
一、监控管理 通过引入 spring-boot-starter-actuator,可以使用 Spring Boot 为我们提供的准生产环境下的应用监控和管理功能。我们可以通过 HTTP, JMX, SSH 协议来进行操作,自动得到审计、健康及指标信息等 。 步骤: 引入 spring-boot-starter-actuctor 1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency> 通过 http 方式访问监控点端点 首先在配置文件中把端点暴露出来 在 application.properties 中配置端点, 暴露部分端点 management.endpoints.web.exposure.include=info,health,beans,env 暴露所有端点 management.en ...
SpringCloud 微服务搭建
博客参考学习视频: https://www.bilibili.com/video/BV18E411x7eT?from=search&seid=4388336378730572330 一、微服务架构编码构建① 约定 > 配置 > 编码 slave 会从 master 读取 binlog 来进行数据同步 三步骤+原理图 MySQL 复制过程分成三步:1 master 将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events;2 slave 将 master 的 binary log events 拷贝到它的中继日志(relay log);3 slave 重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL 复制是异步的且串行化的 ② IDEA 新建 project 工作空间1.微服务 cloud 整体聚合父工程 Project 父工程步骤: 1) New Project 2)聚合总工程名字和工程名字(idea 2020.2 版本) 3)选择 Maven 版本 4)字符编码 5) ...
SpringBoot与Dubbo、Zookeeper
一、概念ZooKeeper ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 Dubbo Dubbo 是 Alibaba 开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看, Dubbo 采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。 二、SpringBoot 2.3 整合 Zookeeper、Dubbo① 安装 zookeeper 作为注册中心12345// 安装镜像docker pull zookeeper:latest// 启动镜像docker run --name zk01 -p 2181:2181 --restart always -d zookeeper:latest 这里只需要用到 2181 这个端口,只把它暴露,其他的两个端口不需要 ...
SpringBoot与安全(Spring Security)
博客中涉及的源码,下载地址在博客文章底部,有需要的小伙伴自行下载 一、简介 SpringSecurity 是针对 Spring 项目的安全框架,也是 Spring Boot 底层安全模块的技术选项。他可以实现强大的 web 安全控制。对于安全控制,我们需要引入 spring-boot-starter-securiy 模块。 1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency> 几个类: WebSecurityConfigurerAdapter: 自定义 Security 策略 AuthenticationManagerBuilder: 自定义认证的策略 @EnableWebSecurity: 开启 WebSecurity 模式 具体的参考 Spring 官网:https://spring.io/guid ...
SpringBoot和Spring Cloud
一、Spring Cloud Spring Cloud 是一个分布式的整体解决方案。 Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性 token,全局琐, leader 选举,分布式 session,集群状态)中快速构建的工具,使用 Spring Cloud 的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。 SpringCloud 分布式开发五大常用组件 服务发现——Netflix Eureka 客服端负载均衡——Netflix Ribbon 断路器——Netflix Hystrix 服务网关——Netflix Zuul 分布式配置——Spring Cloud Config 二、微服务 Martin Fowler 微服务原文 https://martinfowler.com/articles/microservices.html 三、Spring Cloud 入门项目结构: 先创建一个空项目来存放 ① 编写 EurekaServer 注册中心 1. 项目结构 2.配置 Eureka ...
SpringBoot与任务
一、异步任务两个注解: @EnableAysns、@Aysnc 代码示例: 123456789@EnableAsync // 开启异步注解功能@SpringBootApplicationpublic class SpringBoot04TaskApplication { public static void main(String[] args) { SpringApplication.run(SpringBoot04TaskApplication.class, args); }} 【AsyncService.java】 1234567891011121314@Servicepublic class AsyncService { // 告诉spring这是一个异步方法 @Async public void hello(){ try { Thread.sleep(3000); } catch (Interrupte ...