SpringCloud微服务学习一:微服务架构及组件的分析

目录

一.传统架构优略分析

1). 单体应用架构

2). 垂直应用架构

3). SOA应用架构

4). 微服务应用架构

二.微服务架构的思想与优缺点

三.微服务架构的概念

1).服务注册与发现

2).负载均衡

3).熔断

4).链路追踪

5).API网关


一.传统架构优略分析

1). 单体应用架构

优点:项目前期开发节奏块,团体成员少可以快速迭代;

           架构简单,VC架构,只需借助IDE开发、调试即可;

           易于测试,只需借助单元测试或者浏览器即可;

           易于部署,打成单一可执行的jar或者打成war包放到容器内启动;

缺点:随着不断的功能迭代,单个项目过大,代码杂乱,耦合严重,维护成本高;

           新增业务困难,新人难接手任务,学习成本高;

           核心业务与边缘业务混合,出现问题相互影响;

2). 垂直应用架构

优点:拆分系统实现流量分担,可以解决并发问题;

           可针对不同模块进行优化;

           水平拓展方便,负载均衡,容错率提高;

           系统之间相互独立,互不影响, 新业务迭代时更加高效;

缺点:服务间相互调用,如果某个服务的端口或ip地址发生改变,调用方需要手动改变;

           搭建集群之后,实现负载均衡比较复杂,如:内网负载, 在迁移机器时会影响调用方的路由,导致线上故障;

           服务间调用方式不统一,基于httpclient、webService,接口协议不统一;

           服务监控不到位:除了依靠端口、进程的监控、调用的成功率、失败率、总耗时等监控指标没有;

3). SOA应用架构

优点:分布式、松耦合、扩展灵活、可重用;

           可以解决接口协议不统一、服务无法监控、服务的负载均衡等问题;

           服务提供端端口号,ip地址修改,调用方无需手动修改(即实现服务注册与发现);

缺点:服务抽取粒度较大,服务调用方与提供方耦合度高(接口耦合);

4). 微服务应用架构

微服务架构可以说是SOA架构的一种拓展,该架构模式下, 模块拆分粒度更小,服务也更独立。不同服务可以使用不同的开发语言和存储,服务间可通过Restful等轻量级通信。强调的是业务彻底的组件化和服务化;

二.微服务架构的思想与优缺点

微服务架构的核心思想就是"", 拆分粒度相对较小,这样单一职责,开发的耦合度降低,微小的功能可以独立的拓展,灵活性强,升级改造影响的范围小。

微服务架构优点:便于特定业务功能的聚焦;

                             每个微服务可以单独实施(开发、测试、部署上线、运维),团队合作一定程度解耦,便于实施敏捷开发;

                             便于重用和模块之间的组装;

                             微服务很独立,不同微服务可以使用不同语言开发,松耦合;

                             容易引用新技术,可以更好的实现DevOps开发运维一体化;

微服务架构缺点:分布式复杂难以管理,当服务数量增加,管理越加复杂;

                             出现问题后,分布式链路跟踪难;

三.微服务架构的概念

1).服务注册与发现

服务注册:服务提供者将所提供服务的信息注册到注册中心;

服务发现:服务消费者从注册中心获取到较为实时的服务列表,然后根据一定的策略选择一个服务访问;

2).负载均衡

即将请求压力分配到多个服务器(应用服务器、数据库服务器),以此来提高服务的性能、可靠性;

3).熔断

断路保护。在微服务架构中如果下游服务因访问压力过大而响应变慢或失败、上游服务为保护系统整体可用性,可暂时切断对下游服务的调用,牺牲局部,保全整体;

4).链路追踪

在微服务架构中,一个项目往往拆分成多个服务。不同服务可能有不同团队开发,可能使用不同的编程语言实现,整个项目也可能部署在多个服务器上,而链路追踪,就是对一次请求涉及的多个服务链路进行日志记录,性能监控;

5).API网关

不同的微服务往往有不同的访问地址,客户端可能需要调用多个服务接口才能完成一个业务需求,如果让客户端直接与各服务通信可能会出现

       1:客户端需要调用不同的url地址,增加维护难度;

       2:在一定场景下,存在跨域请求问题;

       3:每个服务需要进行单独的身份验证;

API网关可以较好的统一处理上述问题,API请求调用统一接口接入API网关曾,由网关转发请求。API网关更加专注在安全、路由、流量等问题处理上,微服务可以更加专注于处理业务逻辑,功能如:

       1:统一接入 (路由);

       2:安全防护 (统一鉴权);

       3:黑白名单;

       4:协议适配;

       5:流量管控;

       6:长短连接支持;

       7:容错能力 (负载均衡);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值