SpringCloudAlibaba基础分享(一)

189 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情

image.png

SpringCloudAlibaba核心组件 Nacos(服务注册与发现和分布式配置中心)、Sentinel(服务保护框架)、Seata(分布式事务解决框架)、阿里云OSS、Alibaba Cloud SchedulerX等。

微服务架构的演变过程。

传统的单体架构->分布式架构->SOA面向服务架构->微服务架构

传统的单体架构

传统的单体架构,也就是单点应用,SSM或SSH整合的项目。采用分层架构模式、数据库访问层、业务逻辑层、控制层、从前端到后端所有代码都在一个项目中,部署在同一个tomcat中。

优点:

开发简单、运维简单

缺点:

没有对业务逻辑实现拆分,所有代码都写到同一个项目中,只适合小团队、个人开发。

如果系统中摸个模块不可用,会导致整个系统无法使用。

开发团队人数多的话,代码冲突问题

应用场景:

政府项目、管理系统、crm、oa、个人小团队开发

分布式架构

分布式架构,将我们传统的单点系统实现根据业务拆分。拆分为会员系统、订单系统、支付系统等。从而降低整个项目的耦合度。

SOA面向服务架构

基于分布式架构演变,俗称服务化,面向于接口开发。将共同的业务逻辑抽取成一个公共的服务,提供给其他接口实现调用,服务与服务之间采用rpc远程调用技术。

能够解决代码冗余性的问题。

服务只有接口,没有控制层、视图层。

SOA架构模式特点:

  1. SOA架构通讯中,采用XML方式实现通讯、在高并发下通讯过程中协议存在非常大冗余性,所以在最后微服务架构模式中使用JSON格式替代了XML。

  2. SOA架构模式实现方案为WebService或者是ESB企业服务总线 底层通讯协议SOAP协议(Http+XML)实现传输。

微服务架构模式的基本概念

服务与服务通讯协议采用Http协议,使用restful风格API形式来进行通讯,数据交换格式轻量级json格式通讯,整个传输过程中,采用二进制,所以http协议可以跨语言平台,并且可以和其他不同的语言进行相互的通讯,所以很多开放平台都采用http协议接口。

微服务架构会产生那些问题

分布式事务解决方案(rabbitmq/rocketmq/lcn(已经淘汰)/ Seata)最终一致性概念。

分布式任务调度平台(XXL-Job、阿里Scheduler)

分布式日志采集系统ELJ+Kafka

分布式服务注册中心 eureka、Zookeeper、consule、nacos等。

分布式服务追踪与调用链Zipkin等。

分布式配置中心nacos、阿波罗、disconfig

独立部署、可配置、动态化

SpringCloud并不是rpc远程调用框架,而是一套全家桶的微服务解决框架,理念就是解决我们在微服务架构中遇到的任何问题。

Rpc远程调用框架有哪些?

httpclient、dubbo、feign、grpc、基于netty手写rpc

Image.png