当前位置:网站首页 > R语言数据分析 > 正文

ueditor最新版本(ueditor serverurl)



目录:

一、微服务概述 二、spring cloud 技术栈三、springcloud-服务治理四、负载均衡(Ribbon)五、熔断保护(Hystrix)六、 Feign七、服务网关(Zuul) 八、总结回顾

1.1:什么是微服务

为适应企业的业务发展,提高软件研发的生产力,降低软件研发的成本,软件架构也作了升级和优化,将一个独立的系统拆分成若干个小的服务,每个小服务运行在不同的进程中,服务与服务之间采用http轻量协议传输数据,每个服务所拥有的功能具有独立性强、低耦合的特点,这样的设计就实现了单个服务的高内聚,服务与服务之间的低耦合效果,这样一个一个的小服务就是微服务,基于这种设计的系统架构即微服务架构。

1.2:微服务的优点

1.单一职责功能,每个服务都很简单,只关注于一个业务功能
2.每个微服务独立的开发,部署
3.每个单体应用不局限于固定的技术栈,开发者可以自由选择开发技术,提供API服务。
4.易于规模化开发,多个开发团队可以并行开发,每个团队负责一项服务
5.改善故障隔离。一个服务宕机不会影响其他的服务

1.3:微服务的缺点

1.增加运维成本
2.隐式接口(修改一个服务的接口,所有关联的服务都要做调整)
3.增加测试成本
4.重复劳动
5.分布式系统的复杂性

1.4:微服务系统架构图解

idea 微服务url复制插件_spring

二、Spring Cloud技术栈

1:微服务技术栈

idea 微服务url复制插件_微服务_02

2.2:Spring Cloud是什么

2.3:Spring Cloud 技术栈

idea 微服务url复制插件_idea 微服务url复制插件_03

3.1:什么是服务治理?

idea 微服务url复制插件_微服务_04

3.2:Eureka server 与 Eureka client

idea 微服务url复制插件_微服务_05

3.3:Eureka 服务治理调用过程

1.服务提供方会向Eureka server进行注册,然后每30秒(默认值)会向Eureka server发送一
次心跳告诉Eureka server“我还活着”,而如果Eureka server在90秒(默认值)没有收到
服务提供方发送的心跳则会根据配置对无效的服务进行剔除或保留。

idea 微服务url复制插件_idea 微服务url复制插件_06

3.4:Eureka server 代码实现

3.4.1:新建一个springboot工程并在 pom 文件中添加依赖
3.4.2:配置 application 文件
3.4.3:在启动类中添加@EnableEurekaServer注解支持

完成这一步之后,一个 eureka 服务治理的服务端就已经搭建完毕了。

eureka-server UI 界面:

idea 微服务url复制插件_服务治理_07

3.5:Eureka Client 代码实现

3.5.1:添加 jar 包依赖
3.5.2:配置 application 文件
3.5.3:在启动类中添加服务发现注解支持

注解使用场景:
@EnableDiscoveryClient:适用多个服务治理组件如:eureka、consul、zookeeper等
@EnableEurekaClient:只能在 eureka 作为服务治理时使用

3.6:多台 Eureka-server 的情况:

需要保持相同的服务名称 并且 eureka-server 之间相互注册,实现高可用。

idea 微服务url复制插件_idea 微服务url复制插件_08

idea 微服务url复制插件_idea 微服务url复制插件_09

4.1:Ribbon 介绍

4.2:Ribbon 的执行流程:

idea 微服务url复制插件_idea 微服务url复制插件_10

4.3:Ribbon 的使用

4.3.1:添加依赖
4.3.2:在启动类中注入 RestTemplate并添加@LoadBalanced注解
4.3.3:将要被调用的服务的方法

第一台服务:

第二台服务:

4.3.4:使用 RestTemplate 进行调用

1.注入 RestTemplate 实例
2.通过 RestTemplate 实例调用相应的 get/post 方法,以服务名的方式进行接口调用

5.1:什么是容错保护

容错保护是指微服务在执行过程中出现错误并从错误中恢复的能力。微服务容错性不好很容易导致雪崩效应。微服务的雪崩效应表现在服务与服务之间调用,当其中一个服务无法提供服务可能导致其他服务也宕掉,比如:登录服务调用用户信息服务查询用户信息,由于用户信息服务无法服务导致登录服务一直等待,导致关联的服务在调用登录服务时都处于一直等待的状态而无法提供服务即是微服务的雪崩效应。

5.2:Spring Cloud Hystrix

idea 微服务url复制插件_spring_11

5.3:Hystrix 的使用

5.3.1:添加jar包依赖
5.3.2:在启动类中添加@EnableHystrix注解支持
5.3.2:在调用接口的方法上指定容错的处理方法

1.注入RestTemplate实例
2.使用restTemplate时通过服务名的方式进行调用
3.在接口调用的方法上方添加@HystrixCommand并指定容错处理方法,容错处理方法的返回
值必须和原被调用的方法返回值类型保持一致

6.1:Feign 的介绍

Spring Cloud Feign是基于Netflix feignFeign是开发的声明式、模板化的HTTP客户端并且整合了Spring Cloud Ribbon和Spring Cloud Hystrix,Feign可以帮助我们更快捷、优雅地调用HTTP API。

通常在企业中服务与服务之间调用一般都是使用 feign 的方式进行调用的,这样便于管理和维护,也对调用了什么系统的哪些接口一目了然。

6.2:Feign 的应用

6.2.1:引入jar包依赖
6.2.2:开启容错保护支持,设置为false时,调用出错时容错方法不会执行
6.2.3:在启动类上添加@EnableFeignClients注解支持
6.2.4:定义feign接口并指定容错处理的方法

1.注解 @FeignClient 中的value值为调用服务的服务名,fallbackFactory指定容错处理类

3.当服务调用出错时,一般都会打印报错信息

6.2.4:使用定义的feign接口调用

7.1:什么是服务网关

服务网关是在微服务前边设置的一道屏障,请求先到服务网关,网关会对请求进行过滤、
校验、路由等处理。有了服务网关可以提高微服务的安全性,校验不通过的请求将被拒绝访
问。

前面介绍的Ribbon和Feign的负载均衡调用可以不用经过网关,因为这些调用属于微服务
与微服务内部之间的调用,而对于那些对外提供服务的微服务,比如:登录,则必须经过网
关来保证微服务的安全。

7.2:Spring Cloud Zuul 介绍

Spring Cloud Zuul 是整合 Netflix 公司的Zuul开源项目实现的微服务网关,它实现了
请求路由转发(根据不同的请求转发到不同的服务)、负载均衡、校验过滤等功能,Ribbon
属于对内的微服务而Zuul是属于对外提供的微服务。

Zuul网关,不仅提供对外服务访问,微服务也可以通过zuul请求其他微服务。

Zuul 对请求转发图解:

idea 微服务url复制插件_idea 微服务url复制插件_12

7.3:Spring Cloud Zuul 的使用

7.3.1:引入jar包依赖
7.3.2:配置路由
7.3.3:定义一个filter类继承ZuulFilter,对请求进行检验拦截

1.filterType()方法指定过滤器的生命周期,包括 pre(在请求被路由之前调用)、route
(在请求被路由时调用)、post(在route和error过滤器之后被调用)、error(处理请求发
生错误时被调用)。

2.filterOrder()方法设置执行顺序,数字越大,优先级越低。

3.shouldFilter()方法设置过滤器是否开启

4.在run()方法中编写具体的校验规则,如:校验登录token,对指定请求路径放行等

7.3.3:在启动类中添加@EnableZuulProxy注解支持

idea 微服务url复制插件_idea 微服务url复制插件_03

到此这篇ueditor最新版本(ueditor serverurl)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • hprof文件生成原因(.hprof文件)2025-03-20 20:45:09
  • driddle怎么读(dries怎么读)2025-03-20 20:45:09
  • 破解加密的word文档(破解加密的word文档怎么恢复)2025-03-20 20:45:09
  • aurochs怎么拆分音节(scholar音节拆分)2025-03-20 20:45:09
  • seated dip器械中文(endoport器械)2025-03-20 20:45:09
  • chrony配置ntp服务器(chrony ntp)2025-03-20 20:45:09
  • dried怎么读(dried怎么读?)2025-03-20 20:45:09
  • swagger2和3的区别(swagger3和swagger2)2025-03-20 20:45:09
  • git clone 版本(git clone remote unauthorized)2025-03-20 20:45:09
  • redhat linux忘记root密码(redhat忘记root密码的解决办法)2025-03-20 20:45:09
  • 全屏图片