SpringCloud
文章平均质量分 93
SpringCloud学习
Binary Oracle
一名热爱开源和技术的Coder , 开源框架spring committer , golang开源网络库netpoll committer; (脱产备战25考研中,停更一年)
展开
-
GateWay快速入门
过滤器的作用是什么?① 对路由的请求或响应做加工处理,比如添加请求头② 配置在路由下的过滤器只对当前路由的请求生效defaultFilters的作用是什么?原创 2023-02-07 21:25:25 · 905 阅读 · 0 评论 -
OpenFeign快速入门
类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制请求失败的重试机制,默认是没有,不过会使用Ribbon的重试一般情况下,默认值就能满足我们使用,如果要自定义时,只需要创建自定义的@Bean覆盖默认Bean即可。下面以日志为例来演示如何自定义配置。原创 2023-02-07 20:46:43 · 988 阅读 · 0 评论 -
Nacos使用快速入门
注意:项目的核心配置,需要热更新的配置才有放到nacos管理的必要。当本集群内不可用时,才访问其它集群。微服务要拉取nacos中管理的配置,并且与本地的application.yml配置合并,才能完成项目启动。服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求。可以看出来,不管是dev,还是test环境,都读取到了envSharedValue这个属性的值。Nacos一方面可以将配置集中管理,另一方可以在配置变更时,及时通知微服务,实现配置的热更新。原创 2023-02-07 20:21:38 · 2945 阅读 · 0 评论 -
Eureka使用快速入门
本文主要对Eureka的使用进行简单记录,主要作为个人日后复习笔记所用,不建议初学者阅读。因此,接下来我们动手实践的步骤包括:首先大家注册中心服务端:eureka-server,这必须是一个独立的微服务1.引入SpringCloud为eureka提供的starter依赖:2.给eureka-server服务编写一个启动类,一定要添加一个@EnableEurekaServer注解,开启eureka的注册中心功能:3.编写一个application.yml文件,内容如下:4.启动微服务,然后在浏览器访问:原创 2023-02-07 19:02:55 · 2143 阅读 · 0 评论 -
Eurkea,Ribbon和RestTemplate是如何结合到一起完成服务注册与发现功能的? --下
DynamicServerListLoadBalancer,采用的是线性轮询的方式来选择调用服务实例,该算法实现简单并没有区域Zone的概念,所以它会把所有实例视为一个Zone下的节点来看待,这样就会周期性地产生跨区域访问的情况,由于跨区域会产生更高的延迟,这些实例主要以防止区域故障实现高可用的目的而不能作为常规访问的实例。这个方案的有很多问题,最大的问题在于不同的服务名和其关联的服务实例列表信息都混杂在同一个IOC容器中,为了进行区分管理,需要做很多额外的工作。原创 2023-02-05 14:27:25 · 547 阅读 · 0 评论 -
Eurkea,Ribbon和RestTemplate是如何结合到一起完成服务注册与发现功能的? --上
由于UrlConnection,OkHttp,HttpClient三个组件库提供的相关api都不一样,因此Spring为了实现能够切换底层实现的效果,就采用了适配器的思想,通过一个顶层ClientHttpRequest接口规定好执行请求调用的execute方法,然后为了适配相关组件库分别给出了相关的实现类,分别实现了execute方法完成具体的请求转发。这三个工具库中,jdk自带的性能是最差的,而第三方提供的两个相对较好,但是使用需要引入额外的依赖才可以。原创 2023-02-05 11:04:30 · 733 阅读 · 0 评论 -
Keepalived
KeepalivedNginx高可用解决方案KeepalivedVRRP介绍环境搭建Keepalived配置文件介绍打开keepalived.conf配置文件访问测试keepalived之vrrp_scriptNginx制作下载站点Nginx的用户认证模块Nginx高可用解决方案需要两台以上的Nginx服务器对外提供服务,这样的话就可以解决其中一台宕机了,另外一台还能对外提供服务,但是如果是两台Nginx服务器的话,会有两个IP地址,用户该访问哪台服务器,用户怎么知道哪台是好的,哪台是宕机了的?原创 2021-11-14 11:02:30 · 574 阅读 · 0 评论 -
SpringCloud--alibliba--Nacos--下
SpringCloud--alibliba--Nacos--下Nacos之Linux版本安装Nacos集群配置(上)Nacos之Linux版本安装预计需要,1个Nginx+3个nacos注册中心+1个mysql官方文档Nacos下载Linux版github下载nacos-server-1.1.4.tar.gz 解压后安装Nacos集群配置(上)集群配置步骤(重点)1.Linux服务器上mysql数据库配置SQL脚本在哪里 - 目录nacos/conf/nacos-mysql.sql原创 2021-11-13 14:11:46 · 696 阅读 · 0 评论 -
seata---分布式事务处理
seata---分布式事务处理是什么能干嘛处理过程Seata-Server安装下载怎么玩安装Seata业务数据库准备Seata之Order-Module配置搭建Seata之Order-Module撸码(上)Seata之Order-Module撸码(下)Seata之Storage-Module说明Seata之Account-Module说明Seata之@GlobalTransactional验证Seata之原理简介是什么Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的原创 2021-11-11 13:14:41 · 228 阅读 · 0 评论 -
Sentinel
Sentinel资料介绍Sentinel下载安装运行Sentinel初始化监控资料Sentinel官方文档Github地址介绍Sentinel 是什么?随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特征: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、原创 2021-11-11 03:30:00 · 496 阅读 · 0 评论 -
Nginx---动静分离
Nginx---动静分离Nginx与Tomcat部署环境准备(Tomcat)环境准备(Nginx)动静分离需求分析动静分离实现步骤Nginx实现Tomcat集群搭建Nginx与Tomcat部署我们都知道了Nginx在高并发场景和处理静态资源是非常高性能的,但是在实际项目中除了静态资源还有就是后台业务代码模块,一般后台业务都会被部署在Tomcat,weblogic或者是websphere等web服务器上。那么如何使用Nginx接收用户的请求并把请求转发到后台web服务器?步骤分析:1.准备Tomc原创 2021-11-11 02:00:00 · 531 阅读 · 0 评论 -
项目知识盲区3
项目知识盲区3Spring Boot 一个接口多个实现类如何注入@Mapper 与 @MapperScan 的区别Spring Boot 一个接口多个实现类如何注入1、接口有多个实现类时,可以使用 @Autowired+@Qualifier 注入指定实现类。2、也可以使用 @Resource 直接注入指定实现类 。3、还可以使用 @Primary 在指定实现类上标记。Spring Boot 一个接口多个实现类如何注入 Autowired 和 Resource 注解的区别@Mapper 与 @原创 2021-11-10 21:30:06 · 251 阅读 · 0 评论 -
Nginx---负载均衡和缓存
Nginx---负载均衡负载均衡概念负载均衡的原理及处理流程负载均衡的作用负载均衡常用的处理方式方式一:用户手动选择方式二:DNS轮询方式方式三:四/七层负载均衡Nginx七层负载均衡Nginx七层负载均衡的指令upstream指令server指令Nginx七层负载均衡的实现流程负载均衡状态downbackupmax_connsmax_fails和fail_timeout负载均衡概念早期的网站流量和业务功能都比较简单,单台服务器足以满足基本的需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也跟原创 2021-11-10 21:29:42 · 862 阅读 · 0 评论 -
Nginx---反向代理,SSL支持
NginxNginx反向代理Nginx实现正向代理Nginx反向代理的配置语法proxy_pass指令大家在编写proxy_pass的时候,后面的值要不要加"/"?proxy_set_header指令---向服务端发送客户端的ip等$http_xxx获取请求头中自定义xxx的值proxy_redirect指令小细节,注意 '/'该指令的几组选项Nginx反向代理实战1.如果服务器1、服务器2和服务器3的内容不一样,那我们可以根据用户请求来分发到不同的服务器。2.如果服务器1、服务器2和服务器3的内容是一样原创 2021-10-27 17:14:19 · 3088 阅读 · 0 评论 -
Nginx---Rewrite
NginxRewrite功能配置"地址重写"与"地址转发"Rewrite规则set指令Rewrite常用全局变量if指令break指令注意return指令301和302状态码区别rewrite指令rewrite_log指令Rewrite功能配置Rewrite是Nginx服务器提供的一个重要基本功能,是Web服务器产品中几乎必备的功能。主要的作用是用来实现URL的重写。注意:Nginx服务器的Rewrite功能的实现依赖于PCRE(正则表达式库)的支持,因此在编译安装Nginx服务器之前,需要安装PC原创 2021-10-27 13:26:29 · 432 阅读 · 0 评论 -
Nginx----跨域,防盗链
NginxNginx的跨域问题解决同源策略跨域问题跨域问题的案例演示解决方案静态资源防盗链什么是资源盗链Nginx防盗链的实现原理:Nginx的跨域问题解决这块内容,我们主要从以下方面进行解决:什么情况下会出现跨域问题?实例演示跨域问题具体的解决方案是什么?同源策略浏览器的同源策略:是一种约定,是浏览器最核心也是最基本的安全功能,如果浏览器少了同源策略,则浏览器的正常功能可能都会受到影响。同源: 协议、域名(IP)、端口相同即为同源http://192.168.200.131/us原创 2021-10-25 15:14:33 · 919 阅读 · 0 评论 -
Nginx---静态资源处理
NginxNginx服务器基础配置实例Nginx服务操作的问题Nginx配置成系统服务Nginx命令配置到系统环境Nginx静态资源部署Nginx静态资源概述Nginx静态资源的配置指令listen指令default_server说明server_name指令配置方式一:精确匹配配置方式二:使用通配符配置配置三:使用正则表达式配置匹配执行顺序server_name总结location指令设置请求资源的目录root / aliasindex指令error_page指令静态资源优化配置语法sendfile,用来开原创 2021-10-25 14:29:03 · 2619 阅读 · 0 评论 -
Nginx----安装和配置文件参数详解
Nginx介绍名词解释1. WEB服务器:2.Http:3.POP3/SMTP/IMAP:4.反向代理正向代理和反向代理的区别Nginx的优点(1)速度更快、并发更高(2)配置简单,扩展性强(3)高可靠性(4)热部署(5)成本低、BSD许可证Nginx的功能特性及常用功能基本HTTP服务高级HTTP服务邮件服务Nginx常用的功能模块Nginx环境准备获取Nginx源码准备服务器系统Nginx安装方式介绍源码安装的环境准备方案一:Nginx的源码简单安装方案二:yum安装源码简单安装和yum安装的差异:方案原创 2021-10-24 15:08:00 · 989 阅读 · 0 评论 -
SpringCloud--alibliba--Nacos--上
SpringCloud---NacosCloud Alibaba简介Spring Cloud Alibaba学习资料获取Nacos简介和下载Nacos安装Cloud Alibaba简介为什么会出现SpringCloud alibabaSpring Cloud Netflix项目进入维护模式https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now什么是维护模式?将模块置于维护模式,意味着Spring Cl原创 2021-10-22 13:39:08 · 327 阅读 · 0 评论 -
Springcloud集成Sleuth
Springcloud集成SleuthSleuth是什么Sleuth之zipkin搭建安装Sleuth链路监控展现Sleuth是什么为什么会出现这个技术?要解决哪些问题?在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前端请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。是什么 https://github.com/spring-cloud/spring-cloud-sleut原创 2021-10-21 09:43:52 · 612 阅读 · 0 评论 -
SpringCloud集成Stream
SpringCloud集成StreamStream为什么被引入Stream是什么及Binder介绍Stream的设计思想Stream编码常用注解简介案例Stream消息驱动之生产者Stream消息驱动之消费者Stream之消息重复消费生产实际案例Stream之group解决消息重复消费Stream之消息持久化Stream为什么被引入常见MQ(消息中间件): ActiveMQ RabbitMQ RocketMQ Kafka有没有一种新的技术诞生,让我们不再关注具体MQ的细节,我们只需要用一原创 2021-10-21 09:12:41 · 453 阅读 · 0 评论 -
SpringCloud集成Bus消息总线
SpringCloudBus消息总线Bus消息总线是什么能干嘛为何被称为总线Bus之RabbitMQ环境配置Bus动态刷新全局广播的设计思想和选型设计思想Bus动态刷新全局广播配置实现Bus动态刷新定点通知通知总结原理探究核心流程整合bus后的原理分析推荐文章Bus消息总线Bus消息总线是什么一言以蔽之,分布式自动刷新配置功能。是什么Spring Cloud Bus 配合Spring Cloud Config 使用可以实现配置的动态刷新。Spring Cloud Bus是用来将分布式系统的节原创 2021-10-20 21:26:30 · 887 阅读 · 1 评论 -
RabbitMQ----小总结
RabbitMQ----小总结知识图谱流程图@RabbitListener起作用的原理知识图谱流程图@RabbitListener起作用的原理@RabbitListener起作用的原理Spring整合rabbitmq实践(三):源码-@RabbitListener实现过程原创 2021-10-20 14:52:13 · 428 阅读 · 0 评论 -
RabbitMQ---集群,Haproxy+Keepalive 实现高可用负载均衡,Federation Exchange和Federation Queue
RabbitMQ---集群使用集群的原因搭建步骤镜像队列使用镜像的原因搭建步骤1.启动三台集群节点2.随便找一个节点添加 policy(策略)测试Haproxy+Keepalive 实现高可用负载均衡整体架构图Haproxy 实现负载均衡搭建步骤Keepalived 实现双机(主备)热备搭建步骤Federation Exchange--联邦交换机---两地数据同步联邦交换机诞生的原因搭建步骤Federation Queue--联邦队列使用它的原因搭建步骤Shovel使用它的原因搭建步骤使用集群的原因最开原创 2021-10-20 13:46:31 · 865 阅读 · 0 评论 -
RabbitMQ---幂等性,优先级队列,惰性队列
RabbitMQ幂等性概念解决思路优先级队列使用场景如何给队列添加优先级惰性队列使用场景两种模式幂等性概念用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现多扣钱了,流水记录也变成了两条。在以前的单应用系统中,我们只需要把数据操作放入事务中即可,发生错误立即回滚,但是再响应客户端的时原创 2021-10-20 03:30:00 · 476 阅读 · 0 评论 -
RabbitMQ---延迟队列,整合springboot
RabbitMQ---消息队列---下半部分延迟队列概念使用场景RabbitMQ 中的 TTL队列设置 TTL消息设置 TTL两者的区别整合 springbootpom文件配置文件添加Swagger配置类队列 TTL代码架构代码实现延时队列优化代码架构图实现Rabbitmq 插件实现延迟队列安装延时队列插件代码架构图总结发布确认高级介绍代码架构代码回退消息Mandatory 参数配置文件中开启回退消息功能设置回退接口发布测试小总结备份交换机代码实现配置类注意:mandatory 参数与备份交换机可以一起使用原创 2021-10-19 22:45:09 · 449 阅读 · 0 评论 -
RabbitMQ---消息队列---上半部分
RabbitMQ初识MQ什么是 MQ为什么要用 MQ1.流量消峰2.应用解耦3.异步处理MQ 的分类1.ActiveMQ2.Kafka3.RocketMQ4.RabbitMQMQ 的选择1.Kafka2.RocketMQ3.RabbitMQRabbitMQRabbitMQ 的概念四大核心概念生产者交换机队列消费者RabbitMQ 核心部分各个名词介绍RabbitMQ安装简单队列POM文件依赖生产者代码消费者代码工作队列轮训分发消息抽取工具类启动两个工作线程生产者代码消息应答概念自动应答手动应答消息应答的方法原创 2021-10-19 03:00:00 · 442 阅读 · 0 评论 -
SpringCloud集成Config分布式配置中心
SpringCloud集成Config分布式配置中心分布式系统面临的配置问题Config是什么操作步骤作用与GitHub整合配置[springcloud Config官网教程](https://cloud.spring.io/spring-cloud-static/spring-cloud-config/2.2.1.RELEASE/reference/html/)Config配置总控中心搭建git常用语法复习新建Module模块cloud-config-center-3344,它即为Cloud的配置中心模块原创 2021-10-17 17:13:05 · 323 阅读 · 0 评论 -
SpringCloud集成Gateway
SpringCloud集成GatewayGateway是什么微服务架构中网关的位置GateWay非阻塞异步模型Gateway工作流程三大核心概念Gateway工作流程Gateway9527搭建gateway网关的pom文件配置,不需要web和actuor的依赖,否则会报错Gateway配置路由的两种方式这里在yaml和编码方式配置路由,两者之间不会覆盖,而是累加关系,只有出现请求相同时,才会有覆盖GateWay配置动态路由gateway使用及负载均衡原理GateWay常用的Predicate常用的Route原创 2021-10-17 14:50:28 · 2540 阅读 · 0 评论 -
SpringCloud集成Hystrix
SpringCloud集成Hystrix分布式系统面临的问题服务雪崩Hystrix是什么Hystrix停更进维Hystrix的服务降级熔断限流概念服务降级哪些情况会出发降级服务熔断服务限流Hystrix支付微服务构建JMeter高并发压测后卡顿正式测试订单微服务调用支付服务出现卡顿降级容错解决的维度要求Hystrix之服务降级支付侧fallback服务端开启服务降级功能小总结Hystrix之服务降级订单侧fallbackHystrix之全局服务降级DefaultPropertiesHystrix之通配服务降原创 2021-10-16 22:03:58 · 695 阅读 · 0 评论 -
SpirngCloud集成OpenFeign
SpirngCloud集成OpenFeignOpenFeign的前身FeignFeign集成了RibbonFeign和OpenFeign两者区别OpenFeign服务调用OpenFeign超时控制设置超时时间控制OpenFeign日志增强OpenFeign的前身FeignFeign旨在使编写Java Http客户端变得更容易。前面在使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模版化的调用方法。但是在实际开发中,由于对服务依赖的调用可能原创 2021-10-16 16:29:38 · 245 阅读 · 0 评论 -
SpringCloud集成Ribbon
SpringCloud集成RibbonRibbon入门介绍LB负载均衡(Load Balance)是什么Ribbon本地负载均衡客户端VS Nginx服务端负载均衡区别集中式LB进程内LBRibbon的负载均衡和Rest调用架构说明POMRestTemplate探究Ribbon默认自带的负载规则Ribbon负载规则替换原理简析参考文章Ribbon默认负载轮询算法原理RoundRobinRule源码分析Ribbon之手写轮询算法gitee源码地址Ribbon入门介绍Spring Cloud Ribbon原创 2021-10-16 15:10:48 · 1524 阅读 · 0 评论 -
Eurkea,Zookeeper,Consul三个服务注册中心的异同
CAP: C:Consistency (强一致性) A:Availability (可用性) P:Partition tolerance (分区容错性)最多只能同时较好的满足两个。CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求。因此,根据CAP原理将NoSQL数据库分成了满足CA原则、满足CP原则和满足AP原则三大类: CA - 单点集群,满足—致性,可用性的系统,通常在可扩展性上不太强大。 CP - 满足一致性,分区容忍必的系统,通常性.原创 2021-10-16 12:36:43 · 153 阅读 · 0 评论 -
Springcloud整合Consul
Springcloud整合ConsulConsul是什么Consul能干嘛Consul操作指南Consul官网下载Consul运行服务提供者注册进Consul服务消费者注册进ConsulConsul是什么Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp 公司用Go语言开发.提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。它具有很多优点。原创 2021-10-15 13:47:41 · 457 阅读 · 0 评论 -
SpringCloud整合zookeeper
SpringCloud整合zookeeper前言支付服务注册进zookeeper具体步骤ZooKeeper的服务节点是临时节点,并且当微服务一段时间没有发送心跳给zk,那zk就会将其踢出去如果linux上面的zk是3.4+,而idea上面的默认引入的是3.5+,那么可能会出现jar包冲突问题,解决方法如下订单服务注册进zookeeper前言SpringCloud----环境搭建SpringCloud—Eureka支付服务注册进zookeeper 注册中心Zookeeperzookeepe原创 2021-10-14 23:08:47 · 749 阅读 · 0 评论 -
SpringCloud知识盲区整理
SpringCloud知识盲区整理Mybatis中的jdbcType的作用二级目录三级目录Mybatis中的jdbcType的作用MyBatis 插入空值时,需要指定JdbcType ,如mybatis insert空值报空值异常,但是在pl/sql不会提示错误,主要原因是mybatis无法进行转换。可以看出,是因为你传入的参数的字段为null对象无法获取对应的jdbcType类型,而报的错误。 你只要在insert语句中insert的对象加上jdbcType就可以了,修改如下: #{menuTit原创 2021-10-14 19:58:05 · 236 阅读 · 0 评论 -
zk---分布式锁
zk---分布式锁什么是分布式锁原生 Zookeeper 实现分布式锁案例1)分布式锁实现2)分布式锁测试什么是分布式锁比如说"进程 1"在使用该资源的时候,会先去获得锁,"进程 1"获得锁以后会对该资源保持独占,这样其他进程就无法访问该资源,"进程 1"用完该资源以后就将锁释放掉,让其他进程来获得锁,那么通过这个锁机制,我们就能保证了分布式系统中多个进程能够有序的访问该临界资源。那么我们把这个分布式环境下的这个锁叫作分布式锁。ZK实现分布式锁具体实现流程可以参考这篇文章原生 Zookeepe原创 2021-10-14 19:11:57 · 661 阅读 · 0 评论 -
Zookeeper节点知识点整理
Zookeeper知识点整理zookeeper选举机制Zookeeper选举机制——第一次启动Zookeeper选举机制——非第一次启动ZK 集群启动停止脚本客户端命令行操作命令行语法znode 节点数据信息1)查看当前znode中所包含的内容2)查看当前节点详细数据节点类型(持久/短暂/有序号/无序号)1)分别创建2个普通节点(永久节点 + 不带序号)2)获得节点的值3)创建带序号的节点(永久节点 + 带序号)4)创建短暂节点(短暂节点 + 不带序号 or 带序号)5)修改节点数据值zookeeper原创 2021-10-14 16:04:25 · 1111 阅读 · 0 评论 -
Dcoker搭建zookeeper集群操作
zookeeper集群操作使用Docker搭建zookeeper集群环境启动docker服务利用阿里云镜像加速器从中央仓库拉取zookeeper的官方镜像三级目录使用Docker搭建zookeeper集群环境启动docker服务出现上面的情况,表示docker没有启动,需要手动启动docker服务service docker start启动服务的时候报了这个错[root@localhost ~]# docker start 722cb567ad8bError response from原创 2021-10-12 20:35:45 · 263 阅读 · 0 评论 -
SpringCloud----zookeeper介绍与安装
zookeeper一级目录二级目录三级目录一级目录二级目录三级目录原创 2021-10-10 03:00:00 · 559 阅读 · 0 评论