怎样解析微服务架构SpringCloud

发布时间:2022-01-14 21:30:19 作者:柒染
来源:亿速云 阅读:130

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

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

怎样解析微服务架构SpringCloud

           A:服务可用性

           P:分区容错

           C:数据的强一致性

           服务的注册与发现

           服务的负载均衡

           服务的容错

           服务网关

           服务配置中心

           服务链路追踪

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

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

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

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

三大特点:自动配置、起步依赖、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 配置

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

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

/beans 查看运行程序的bean

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

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

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

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

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

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

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

具有自我修复功能

@EnableHystrix

@HystrixCommand(fallbackMethod=“hiError”)

Hystrix Dashboard 监控

所有api接口统一聚合

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

实时监控、日志书瑞

流量监控

Zuul包括4种过滤器:

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

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

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

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

路由分发,支持版本号

路由上可以配置熔断器

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

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

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

@EnableConfigServer

1、从本地读取配置文件

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

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

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

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

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

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

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

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

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

OAuth3是一个标准授权协议

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

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

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

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

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

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

推荐阅读:
  1. 用SpringCloud进行微服务架构演进
  2. 基于SpringCloud的微服务架构演变史?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

springcloud 微服务

上一篇:如何进行JeecgBoot 单体升级微服务

下一篇:springboot整合quartz定时任务框架的方法是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》