持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情
SpringCloudAlibaba核心组件 Nacos(服务注册与发现和分布式配置中心)、Sentinel(服务保护框架)、Seata(分布式事务解决框架)、阿里云OSS、Alibaba Cloud SchedulerX等。
微服务架构的演变过程。
传统的单体架构->分布式架构->SOA面向服务架构->微服务架构
传统的单体架构
传统的单体架构,也就是单点应用,SSM或SSH整合的项目。采用分层架构模式、数据库访问层、业务逻辑层、控制层、从前端到后端所有代码都在一个项目中,部署在同一个tomcat中。
优点:
开发简单、运维简单
缺点:
没有对业务逻辑实现拆分,所有代码都写到同一个项目中,只适合小团队、个人开发。
如果系统中摸个模块不可用,会导致整个系统无法使用。
开发团队人数多的话,代码冲突问题
应用场景:
政府项目、管理系统、crm、oa、个人小团队开发
分布式架构
分布式架构,将我们传统的单点系统实现根据业务拆分。拆分为会员系统、订单系统、支付系统等。从而降低整个项目的耦合度。
SOA面向服务架构
基于分布式架构演变,俗称服务化,面向于接口开发。将共同的业务逻辑抽取成一个公共的服务,提供给其他接口实现调用,服务与服务之间采用rpc远程调用技术。
能够解决代码冗余性的问题。
服务只有接口,没有控制层、视图层。
SOA架构模式特点:
-
SOA架构通讯中,采用XML方式实现通讯、在高并发下通讯过程中协议存在非常大冗余性,所以在最后微服务架构模式中使用JSON格式替代了XML。
-
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