SpringCloud
文章平均质量分 88
Spring Cloud 是分布式微服务架构的一站式解决方案,它提供了一套简单易用的编程模型,使我们能在 Spring Boot 的基础上轻松地实现微服务系统的构建。Spring Cloud 被称为构建分布式微服务系统的“全家桶”,它并不是某一门技术,而是一系列微服务解决方案或框架的有序集合。
呆萌宝儿姐
CSDN专家博主、阿里云开发者社区专家博主、51CTO社区专家博主、360书馆认证博主、知乎掘金B站等平台受邀作者。
如遇开发、程序等需求,博客首页下拉加入公众号,私信博主
展开
-
xxl-Job简介与环境搭建
当前软件的架构已经开始向分布式架构转变,将单体结构拆分为若干服务,服务之间通过网络交互来完成业务处理。在分布式架构下,一个服务往往会部署多个实例来运行我们的业务,如果在这种分布式系统环境下运行任务调度,我们称之为分布式任务调度。将任务调度程序分布式构建,这样就可以具有分布式系统的特点,并且提高任务的调度处理能力:1、并行任务调度并行任务调度实现靠多线程,如果有大量任务需要调度,此时光靠多线程就会有瓶颈了,因为一台计算机CPU的处理能力是有限的。原创 2022-10-30 23:15:05 · 1715 阅读 · 0 评论 -
图解分布式的两种单点问题(有状态服务和无状态服务)
由于三个节点都是对等的,任意一个都可以成为Master,也就是说租期过后,有可能会出现Master切换的情况,所以为了避免Master的频繁切换,Master节点需要比另外两个节点先发起自己要成为Master的请求(续租),告诉其他两个节点我要继续成为Master,然后另外两个节点收到请求后会进行应答,正常情况下另外两个节点会同意该请求。比如,在分布式系统中,为了降低各进程通信的网络结构的复杂度,我们会增加一个代理节点,专门做消息的转发,其他的业务进行直接和代理节点进行通信,类似一个星型的网络结构。原创 2022-09-03 20:04:59 · 1603 阅读 · 0 评论 -
图解 CAP 定理(转载)
CAP 定理:最多三选二,无法兼得,通常在 CP 或者 AP 之间做出选择。转载 2022-09-03 14:46:22 · 177 阅读 · 0 评论 -
Zuul、Gateway与Nginx的区别
总的来说,在微服务架构,如果使用了SpringCloud生态的基础组件,则SpringCloudGateway相比而言更加具备优势,单从流式编程+支持异步上就足以让开发者选择它了。对于小型微服务架构或是复杂架构(不仅包括微服务应用还有其他非SpringCloud服务节点),zuul也是一个不错的选择。...原创 2022-07-23 11:29:28 · 2110 阅读 · 0 评论 -
SpringCloud 生成二维码技术
ZXing是一个开源的,用Java编写的多格式的1D/2D条码图像处理库,使用ZXing可以生成、识别QRCode(二维码)。常用的二维码处理库还有zbar,近几年已经不再更新代码,下边介绍ZXing生成二维码的方法。使用手机扫描二维码,即可自动打开我的博客首页。引入依赖程pom.xml中添加依赖。...原创 2022-07-22 15:33:35 · 1461 阅读 · 0 评论 -
四层负载均衡和七层负载均衡的探究
关于负载均衡,经常听到四层负载均衡和七层负载均衡的说法,也看了很多文章,整理的乱的很,也是给我整懵了,之前还以为是四个层都是负载均衡呢(ps这是不正确的),所以这些到底是啥意思呢?他们之间有什么关系和区别呢?我们先用一句话来说四层负载均衡就是工作在计算机网络OSI七层分层的第四层(传输层)的,七层负载军和则是工作在第七层(应用层)的。首先回顾一下OSI网络的七层结构四层负载均衡是基于IP+端口(TCP/UDP,例如10)的负载均衡七层负载均衡是基于URL(HTTP等,例如http。...原创 2022-07-22 13:51:33 · 1550 阅读 · 0 评论 -
Spring中的那些配置文件详解
Spring Boot 默认支持 properties(.properties) 和 YAML(.yml .yaml ) 两种格式的配置文件,yml 和 properties 文件都属于配置文件,功能一样。Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot 中有两种上下文,一种是 bootstrap,另外一种是 application,下面列举这两种配置文件的区别加载顺序若application.yml 和bootstrap.yml 在同一目录下:bootstr原创 2022-07-22 10:26:25 · 2711 阅读 · 3 评论 -
OAuth2.0入门图解
OAuth(开放授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。是一个标准,用来给第三方应用授权来访问当前用户存储在其他应用上的信息OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth1.0即完全废止了OAuth1.0。很多大公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权的标准。httpshttps。.......原创 2022-07-22 09:49:49 · 1985 阅读 · 0 评论 -
OAuth2.0 四种授权模式(图解)
fragment主要是用来标识URI所标识资源里的某个资源,在URI的末尾通过(#)作为fragment的开头,其中#不属于fragment的值。(1)资源拥有者打开客户端,客户端要求资源拥有者给予授权,它将浏览器被重定向到授权服务器,重定向时会附加客户端的身份信息。(1)资源拥有者打开客户端,客户端要求资源拥有者给予授权,它将浏览器被重定向到授权服务器,重定向时会附加客户端的身份信息。(1)客户端向授权服务器发送自己的身份信息,并请求令牌(access_token)...原创 2022-07-21 21:00:02 · 23042 阅读 · 2 评论 -
分布式系统认证方案探究
进入移动互联网时代,大家每天都在刷手机,常用的软件有微信、支付宝、头条等,下边拿微信来举例子说明认证相关的基本概念,在初次使用微信前需要注册成为微信用户,然后输入账号和密码即可登录微信,输入账号和密码登录微信的过程就是认证。用户认证通过后,为了避免用户的每次操作都进行认证可将用户的信息保证在会话中。会话就是系统为了保持当前用户的登录状态所提供的机制,常见的有基于session方式、基于token方式等。...原创 2022-07-21 19:42:21 · 445 阅读 · 0 评论 -
SpringCloud请求异常处理封装BusinessException自定义异常类
***自定义的异常类型super();super();}}2、定义错误代码在common工程专门定义了ErrorCode接口及CommonErrorCode通用代码。编写ErrorCode接口}编写CommonErrorCode通用代码/***异常编码/**2、定义全局异常处理器注解说明ControllerAdvice和ExceptionHandler注解实现全局异常处理ControllerAdvice和ModelAttribute注解。...原创 2022-07-21 11:18:05 · 2689 阅读 · 0 评论 -
MapStruct代码生成器实现对象转换
VO(ValueObject)值对象,通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已,但VO应该是抽象出的业务对象,可以和表对应,也可以不对应,这根据业务的需要。DAO(DataAccessObject)数据访问对象,它是一个面向对象的数据库接口,负责持久层的操作,为业务层提供接口,主要用来封装对数据库的访问,常见操作无外乎CURD。1、应用层如没有接口参数的特殊要求,应用层使用DTO结尾的对象传输,否则单独定义VO结尾的对象传输。2、服务层统一使用DTO结尾的对象传输。......原创 2022-07-21 08:27:33 · 1513 阅读 · 0 评论 -
Spring Gateway 跨域问题
跨域域名不一致就是跨域,主要包括域名不同www.taobao.com和www.taobao.org和www.jd.com和miaosha.jd.com域名相同,端口不同localhost8080和localhost8081跨域问题浏览器禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截的问题解决方案CORS,简单来说就是跨域资源共享。就是在后台服务器端允许某个域名下的请求。这里不再赘述了。不知道的小伙伴可以查看https。.........原创 2022-07-20 00:07:41 · 1936 阅读 · 0 评论 -
Spring Gateway全局过滤器
***处理当前请求,有必要的话通过{@linkGatewayFilterChain}将请求交给下一个过滤器处理**@paramexchange请求上下文,里面可以获取Request、Response等信息*@paramchain用来把请求委托给下一个过滤器*@return{@codeMono}返回标示当前过滤器业务结束}我们在时候使用时直接实现接口即可参数中是否有authorization,authorization参数值是否为admin。...原创 2022-07-19 14:51:20 · 3404 阅读 · 2 评论 -
Spring Gateway断言工厂与过滤器工厂
配置为SetRequestHeader将替换原有的header名称的值,在请求的header中,设置name为Color,value为blue;配置为SetResponseHeader将替换原有的header名称的值,在请求的header中,设置name为Color,value为Blue;RemoveResponseHeader是一个header名称的参数,它是要在响应时被删除的标头的名称。RemoveRequestHeader是一个header名称的参数,它是要删除的标头的名称。...原创 2022-07-19 11:38:01 · 1657 阅读 · 0 评论 -
Spring Cloud Gateway快速入门
网关搭建步骤创建项目,引入nacos服务发现和gateway依赖配置application.yml,包括服务基本信息、nacos地址、路由路由配置包括路由id路由的唯一标示路由目标(uri)路由的目标地址,http代表固定地址,lb代表根据服务名负载均衡路由断言(predicates)判断路由的规则,路由过滤器(filters)对请求或响应做处理httpshttpshttpshttpshttps。...原创 2022-07-19 10:53:36 · 1364 阅读 · 0 评论 -
Feign 最佳实现方案探究
1.日志级别尽量用basic2.使用HttpClient或OKHttp代替URLConnection①引入feign-httpClient依赖②配置文件开启httpClient功能,设置连接池参数。原创 2022-07-19 10:33:21 · 2060 阅读 · 0 评论 -
Feign自定义配置详解
Feign是Netflix开源的声明式HTTP客户端。Feign致力于让编写HTTPClient更加简单。Feign也是通过Ribbon实现负载均衡的。这里主要先通过@EnableFeignClients注解开启扫描SpringCloudFeign客户端的功能;然后又创建一个Feign的客户端接口定义。使用@FeignClient注释来指定这个接口所要调用的服务名称接口中定义的各个函数使用SpringMVC的注释就可以来绑定服务提供方的REST接口。...原创 2022-07-19 09:05:37 · 3384 阅读 · 0 评论 -
Feign入门之快速实战
Feign是一个声明式的http客户端https其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。详细的概念可以参考官网的内容,这里就不赘述了我们直接进入实战,将原来的RestTemplate替换为现在的Feign使用Feign编写远程调的步骤①引入依赖②添加@EnableFeignClients注解③编写FeignClient接口④使用FeignClient中定义的方法代替RestTemplatehttpshttpshttpshttpshttps。......原创 2022-07-19 08:20:37 · 1617 阅读 · 0 评论 -
Ribbon负载均衡深入探究
SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。用一幅图来总结一下拦截我们的RestTemplate请求httpRibbonLoadBalancerClient会从请求url中获取服务名称,也就是user-serviceDynamicServerListLoadBalancer根据user-service到eureka拉取服务列表eureka返回列表,localhost8082}注意。...原创 2022-07-18 15:22:56 · 1302 阅读 · 1 评论 -
Eureka注册中心——从入门到应用
和Zookeeper类似,Eureka是一个服务注册和发现的组件,最开始主要应用于亚马逊公司的云计算服务平台AWS,Eureka分为EurekaServer和EurekaClient,EurekaServer为Eureka服务注册中心,EurekaClient为Eureka客户端。服务注册各个微服务启动时,将自己的网络地址等信息注册到Eureka,服务提供者将自己的信息如服务名,服务ip告知服务注册中心。......原创 2022-07-18 14:35:18 · 1455 阅读 · 0 评论 -
Eureka注册中心之搭建eureka-server
首先大家需要注册一个中心服务端eureka-server,这必须是一个独立的微服务,单独启用。启动微服务,然后在浏览器访问http//127.0.0.110086。原创 2022-07-18 12:08:38 · 1873 阅读 · 0 评论 -
SpringCloud服务拆分初探与案例解析
服务提供者一次业务中,被其它微服务调用的服务。(提供接口给其它微服务)服务消费者一次业务中,调用其它微服务的服务。(调用其它微服务提供的接口)但是,服务提供者与服务消费者的角色并不是绝对的,而是相对于业务而言。如果服务A调用了服务B,而服务B又调用了服务C,服务B的角色是什么?对于A调用B的业务而言A是服务消费者,B是服务提供者对于B调用C的业务而言B是服务消费者,C是服务提供者因此,服务B既可以是服务提供者,也可以是服务消费者。httpshttpshttpshttpshttps。......原创 2022-07-18 11:57:29 · 1890 阅读 · 1 评论 -
SpringCloud微服务入门——认识微服务
单体架构简单方便,高度耦合,扩展性差,适合小型项目。例如学生管理系统分布式架构松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如京东、淘宝微服务一种良好的分布式架构方案①优点拆分粒度更小、服务更独立、耦合度更低②缺点架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件httpshttpshttpshttpshttps。...转载 2022-07-18 10:43:19 · 186 阅读 · 0 评论