怎样解析微服务架构SpringCloud

怎样解析微服务架构SpringCloud,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

 努力,不是为了要感动谁,也不是要做给某些人看,而是有能力跳出自己厌恶的圈子,并拥有自己选择的权力,用自己喜欢的方式,过一生。

怎样解析微服务架构SpringCloud

  • 微服务架构 (一般采用AP架构)

           A:服务可用性

           P:分区容错

           C:数据的强一致性

  • 领域驱动设计:通过代码和数据分析找到合理的切分点,并通过数据分析来判断服务的划分边界和划分粒度。

  • 微服务核心:Docker为容器中心,DevOps是一种部署手段或理念(DevOps就是开发(Development)和运维(Operations)这两个领域的合并)

  • 微服务架构中的三大难题:服务故障的传播性、服务的划分、分布式事务

  • 雪崩效应:服务不可用导致系统处于瘫痪状态(通过熔断器解决)

  • 微服务具备功能:

           服务的注册与发现

           服务的负载均衡

           服务的容错

           服务网关

           服务配置中心

           服务链路追踪

  • 与其他服务框架比较            

Dubbo:非常优秀的服务治理和服务调用框架

Kubernets:通过容器编排实现所有的微服务功能,更像一个平台

  • Maven配置

    .settings.xml  本地仓库目录、远程下载服务器(国外服务器、阿里云镜像库、自己搭建镜像库--Sonatype Nexus Repository Manager)

pom.xml文件:groupid、artifactid、version、parent、properties、dependencies、build

maven命令:mvn clean  、mvn package、mvn compile、mvn install

  • spring boot:

三大特点:自动配置、起步依赖、Actuator对运行状况监控

//@RestController = @Controller+@ResponseBody

 @RestController

      public class HelloController {

            @RequestMapping("/hello")

             public String index(){

                 return "hello spring boot";

              }

        }

springboot 配置文件

application.yml 配置文件装载到配置类,自定义配置文件装载到类

多个环境的配置文件:application-{profile}.properties      test、dev、prod

需要在application.yml 中添加spring.profiles.active = dev 配置

  • Actuator监控

配置application.yml 属性支持 management.port 和management.security.enabled

http://localhost:9091/health 查看程序运行状态

/beans 查看运行程序的bean

  • springboot 整合jpa、redis

    springboot  整合swagger2,搭建RestfulAPI在线文档,@API            @ApiOperation(value="用户列表",notes="用户列表")

  • 服务注册和发现Eureka

Register Service:服务注册中心

Provider Service 服务提供者   application server

Consumer Service 服务消费者  client sever

一些概念:

Register:服务注册 -ip、duank、状况、主页访问地址

Renew:服务续约  client默认情况下30秒发送一次心跳进行服务续约

Fetch Registries:获取服务注册列表信息  client 默认30更新一次

Cancel:服务下线

Eviction:服务剔除 ,默认client 90秒没有发送续约服务,sever从服务列表剔除

构建高可用Eureka Server集群:application.yml 采用多profile格式,分host和端口

//*****************防止自己注册自己************

eureka:

            client:

                register-with-eureka: false

fetch-registry: false

      //******************

  • 负载均衡Ribbon

负载均衡有两种实现方式:一种是独立进程单元,通过负载均衡转发到不同的执行单元上,eg:nginx,另一种是将负载均衡逻辑以代码的方式封装到服务消费者的客户端上,eg:Ribbon

RestTemplate与Ribbon进行结合,在resttemplate bean 上加上@LoadBalanced注解就开启了负载均衡功能

2个eureka-client   服务消费者根据Eureka 服务名访问就可以

  • 声明书调用Feign

Feign目标是将java Http 客户端调用过程变得简单

@FeignClient(value="eureka-client",configuration=FeignConfig.class)

  • 熔断器Hystrix

具有自我修复功能

@EnableHystrix

@HystrixCommand(fallbackMethod=“hiError”)

Hystrix Dashboard 监控

  • 路由网关Spring Cloud zuul

所有api接口统一聚合

可以做用户身份和权限认证

实时监控、日志书瑞

流量监控

Zuul包括4种过滤器:

PRE过滤器:请求到具体服务之前执行,可以用于身份认证、参数验证

ROUTING过滤器:请求路由到具体微服务实例时执行

POST过滤器:请求已被路由到微服务后执行的,可以用于收集日志信息、指标、响应

ERROR过滤器:在其他过滤器发生错误时执行

路由分发,支持版本号

路由上可以配置熔断器

Zuul很容易实现负载均衡、智能路由、熔断器,横向扩展能力非常好

常用实现方式:1、不同渠道使用不同路由(app、web、其它)

2、与nginx相结合,暴露在最外面是Nginx 主从双热备份进行keepalive,Nginx通过某种策略将请求转发到Zuul集群上,Zuul最终将请求分发到具体服务上。

  • 配置中心Spring Cloud Config

@EnableConfigServer

1、从本地读取配置文件

2、从git服务器读取配置文件

使用Spring Cloud Bus 刷新配置,可选的消息代理组件包括RabbitMQ、AMQP和Kafka。

更改配置文件,Bus一个功能让这个过程变得简单,只需要向一个微服务实例发送一个Post请求,通过消息组件通知其他微服务实例重新拉取配置文件。

config-client,通过RabbitMQ实现,需要搭建MQ服务,client主类添加@RefreshScope,通过Postman或者其它工具发送一个请求,http://ip:port/bus/refresh

  • 服务链路追踪SpringCloud Sleuth

使用Zipkin 提供UI展示,使用Http或者RabbitMQ传递链路数据,使用mysql、ElasticSearch(适用于大数据量访问,可以使用Kibana展示链路数据)、Cassandra数据库存储链路数据

  • 微服务监控Spring Boot Admin

监控Spring Cloud 微服务、聚合监控微服务系统中熔断器状况、集成Security安全登录界面

  • Spring Boot Security 安全组件

系统安全也需要考虑传输层和系统层,eg:https、服务器防火窗

同行优秀安全框架 Apache Shiro ,一般用于单体应用。

用户信息可以存内存里也可以存数据库

  • Spring Cloud OAuth3 保护微服务系统

OAuth3是一个标准授权协议

OAuth3认证流程,获取Token过程,拿token去请求认证,认证通过走用户权限

框架的缺陷是每次都要远程请求auth-service验证token的有效性

JWT(JSON WEB TOKEN)一种开放标准,数据体积非常小

应用场景:认证、信息交换,可以利用JWT实现单点登录

大量api访问日志可以使用ELK组件进行处理

关于怎样解析微服务架构SpringCloud问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程之家行业资讯频道了解更多相关知识。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Nacos 中的参数有很多,如:命名空间、分组名、服务名、保护阈值、服务路由类型、临时实例等,那这些参数都是什么意思?又该如何设置?接下来我们一起来盘它。 1.命名空间 在 Nacos 中通过命名空间(Namespace)+ 分组(Group)+服务名(Name)可以定位到一个唯一的服务实例。 命名
Nacos 支持两种 HTTP 服务请求,一个是 REST Template,另一个是 Feign Client。之前的文章咱们介绍过 Rest Template 的调用方式,主要是通过 Ribbon(负载均衡) + RestTemplate 实现 HTTP 服务调用的,请求的核心代码是这样的: @
Nacos 是 Spring Cloud Alibaba 中一个重要的组成部分,它提供了两个重要的功能:服务注册与发现和统一的配置中心功能。 服务注册与发现功能解决了微服务集群中,调用者和服务提供者连接管理和请求转发的功能,让程序的开发者无需过多的关注服务提供者的稳定性和健康程度以及调用地址,因为这
Spring Cloud Alibaba 是阿里巴巴提供的一站式微服务开发解决方案,目前已被 Spring Cloud 官方收录。而 Nacos 作为 Spring Cloud Alibaba 的核心组件之一,提供了两个非常重要的功能:服务注册中心(服务注册和发现)功能,和统一配置中心功能。 Nac
在 Nacos 的路由策略中有 3 个比较重要的内容:权重、保护阈值和就近访问。因为这 3 个内容都是彼此独立的,所以今天我们就单独拎出“保护阈值”来详细聊聊。 保护阈值 保护阈值(ProtectThreshold):为了防止因过多实例故障,导致所有流量全部流入剩余健康实例,继而造成流量压力将剩余健
前两天遇到了一个问题,Nacos 中的永久服务删除不了,折腾了一番,最后还是顺利解决了。以下是原因分析和解决方案,建议先收藏,以备不时之需。 临时实例和持久化实例是 Nacos 1.0.0 中新增了一个特性。临时实例和持久化实例最大的区别是健康检查的方式:临时实例使用客户端主动上报的健康检查模式,而
Spring Cloud Alibaba 技术体系中的 Nacos,提供了两个重要的功能:注册中心(服务注册与发现)功能和配置中心功能。 其中注册中心解决了微服务调用中,服务提供者和服务调用者的解耦,让程序开发者可以无需过多的关注服务提供者和调用者的运行细节,只需要通过 Nacos 的注册中心就可以
负载均衡通器常有两种实现手段,一种是服务端负载均衡器,另一种是客户端负载均衡器,而我们今天的主角 Ribbon 就属于后者——客户端负载均衡器。 服务端负载均衡器的问题是,它提供了更强的流量控制权,但无法满足不同的消费者希望使用不同负载均衡策略的需求,而使用不同负载均衡策略的场景确实是存在的,所以客
本篇文章为大家展示了如何解决Spring Cloud 服务冲突问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、背景...
本篇内容主要讲解“spring cloud服务的注册与发现怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“spri...
本篇内容介绍了“Dubbo怎么实现Spring Cloud服务治理 ”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处...
本篇内容主要讲解“SpringCloud相关面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringCloud相...
如何分析Spring Cloud Ribbon、Spring Cloud Feign以及断路器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希
这篇文章主要讲解了“springcloud微服务的组成部分有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“s...
这篇文章主要讲解了“SpringCloud的OpenFeign项目怎么创建”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习...
本篇内容主要讲解“spring cloud oauth3整合JWT后获取用户信息不全怎么办”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带...
怎样解析微服务架构SpringCloud,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。...
这篇文章主要介绍spring cloud中API网关的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、服务网关简介1、外观模式客户端...
本篇内容介绍了“Spring Cloud微服务的相关问题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处...
本文小编为大家详细介绍“spring cloud config整合gitlab如何搭建分布式的配置中心”,内容详细,步骤清晰,细节处理妥当,希望这篇“spring cloud config整合gi...