美文网首页
SpringCloud(一) -- 微服务架构

SpringCloud(一) -- 微服务架构

作者: OakesYa | 来源:发表于2020-09-29 21:30 被阅读0次

本文学习自Microservices,《Sping Cloud原理与实战》

前言

我们以前对Spring的了解可能就很快想到SSH或者SpringMVC开发框架,AOP和IOC的设计思想,而近几年新起的Spring全家桶Spring Cloud方便了大家更好的构建自已的服务,很好的支持Hystrix,Zuul,Eureka等框架的使用,更好的帮助我们构建微服务。

微服务三要素

  • 业务建模
    我的理解是我司使用的是SOA技术体系,会专注于服务项目的可重用性,微服务更强调着业务系统需要彻底的组件化和服务化,比SOA更专注于解耦,譬如我一个文章SOA服务可能包含上文章的点赞评论等服务,但微服务可能需要将功能划分到用户统计服务上。

  • 技术体系
    微服务架构学习的主题内容就是它的技术体系,主要包括了服务通信,服务治理,服务路由,服务容错,服务网关,服务配置,服务安全和服务监控
    1:服务通信
    TCP协议分为长连接和短连接,Dubbo框架采用的长连接,Spring Cloud中采用短连接模式。微服务架构也有不同的I/O模型以及同步/异步调用。
    2:服务治理
    在微服务架构中各个微服务需要通过服务治理实现自动化注册和发现,所以我们会有一个服务注册中心来管理服务的实例。服务注册中心保存着服务调用所需的路由信息,充当着服务注册和发现服务器的作用,SpringCloud使用Eureka,Dubbo使用Zookeper,我司使用Artemis。
    3:服务路由
    服务路由就是判断请求由注册中心之中哪一台服务器进行请求响应,所以有了我们常说的动态负载均衡以及地址管理。
    4:服务容错
    Hystrix是一个常用的容错框架,服务在自身发生大量报错时可以邮件报警,限流,熔断等操作。
    5:服务网关
    服务网关也叫API网关,封装系统内容架构,为每个客户端提供一个定制的API。服务网关可以进行报文格式转换,身份验证,监控,缓存,请求管理等功能。
    6:服务配置
    考虑到分布式环境中配置项更改而不需要生产发布,所以就有了服务实时配置,配置中心需要依赖分布式协调机制,但是需要考虑到通过一定的方法配置配置信息在分布式环境中各个服务中能得到最新的配置。
    7:服务安全
    任何服务架构中,服务安全都是一个重要的内容,服务安全也一般是围绕着认证和授权来展开,重点就是Token,OAuth2协议等。
    8:服务监控
    在微服务架构中,需要通过一些工具和开发框架来进行记录跟踪服务调用的关系,过程及结果。

  • 研发过程
    我们传统研发过程中通常会围绕着前端,后端,数据库,产品等团队来展开,会有很多跨团队协作,而微服务架构倾向围绕业务功能组织分隔服务,所以团队会成为一个跨职能的特征团队,继而也提升了开发效率。

总结

微服务这种架构风格就是把一组小服务演化成为一个单一的应用的一种方法。每个应用都运行在自己的进程中,并通过轻量级的机制保持通信。与SOA一样都用于服务间的解耦,但是又有区别,微服务与Spirng全家桶越来越成为系统架构设计的选择,所以需要发时间好好学习一下。

相关文章

网友评论

      本文标题:SpringCloud(一) -- 微服务架构

      本文链接:https://www.haomeiwen.com/subject/bmaduktx.html