kaiyun开云平台·(中国)官方网站kaiyun开云平台·(中国)官方网站

width="200" height="30">
当前位置:主页 > 应用行业 > 行业应用 >

架构基础篇之浅谈微服务架构演变和技术选型

本文摘要:浅谈微服务架构演变和技术选型前沿: 随着项目的日益迭代,单机的服务无法满足业务场景的需求,庞大的业务量以及服务的日益增多,不得不将每个服务举行水平拆分,使得整个系统架构具有更好的扩展性、实现高内聚低耦合的架构模式,项目业务场景进而由单机的服务模块演化成为良好拓展的微服务架构模型。

kaiyun

浅谈微服务架构演变和技术选型前沿: 随着项目的日益迭代,单机的服务无法满足业务场景的需求,庞大的业务量以及服务的日益增多,不得不将每个服务举行水平拆分,使得整个系统架构具有更好的扩展性、实现高内聚低耦合的架构模式,项目业务场景进而由单机的服务模块演化成为良好拓展的微服务架构模型。架构演变业务场景的更迭,用户需求量的增多,单一的服务形式无法满足日益剧增的业务场景,单个服务无法支撑多个业务场景,前端以及后端的升级变得臃肿,影响度以及耦合的变得越来越大,此时将服务举行水平拓展拆分变得越发重要,尤其在电商领域,对一些订单模块、秒杀模块、消息系统模块、积分系统模块等对小型模块举行服务拆分。演变特点项目初期,制定的技术架构选型和评估对后期的可扩展性极为重要,以及会影响到整个服务架构的演变周期,在服务选型方面,可思量如下几个关键点:1、设计服务架构是否提供统一的可拓展设计,如接纳SpringCloud为整个基础微服务架构的基础选型与SpringBoot完美联合,实现可拓展性,灵活的自动装配组合模式,为每个组件设置出良好的可适配的自动装配机制;2、易于使用:以SpringBoot为微服务基础架构模块的选型,基本是开箱即用的模式,而且提供大量的可适配的三方封装的适配组件,完全替代了以往老的一套SpringMVC的架构模式,可以兼容适配SpringCloud以及Dubbo等微服务生态;3、性能:相比原有单机或者多模块设计而言,微服务所具有的性能优势的强大是显而易见的,以原先单个模块通过http挪用到后面使用微服务间通过特有的服务协议实现双工模式的挪用,基本靠近于原生的挪用,如:RPC挪用协议,在同个网络段下基本不会思量服务间存在的网络问题。4、结实性:相比多模块设计,微服务中可加入熔断、降级以及岑岭限流机制,来防止单节点故障时导致整个系统的造成的服务雪崩效应;5、宁静性:对于对外统一提供网关入口,保障内网服务统一对外的入口,在网关层举行统一的网络宁静设置,以及署理服务器上举行证书设置统一走https,固然也可以直接在署理服务器上做一些宁静相关的过滤。

kaiyun

kaiyun

业务系统只关注提供的统一的业务API接口,而无需都在每个服务中做一层宁静过滤限制;6、社区驱动:对于微服务的演变,也是极为活跃,通过Gitee或GitHub可看,社区大量涌现出基于微服务的开源生态以及架构,大量的优秀开源架构,也保证微服务在不停迭代更新中,适应着当前技术演变;技术选型:从下图看出,对于整个服务演变历程,从当初的PC客户端和PCweb端演变为如今更为富厚的手机APP端、手机H5端以及小法式端。在快应用的时代,一款跨端的应用开发周期极短,这也是对后端服务的需求量以及要求适配性能做了一定要求。

1、服务网关:服务网关常用有Zuul、Kong、Tyk、Gateway以及Orange等市面上的服务网关;2、服务发现:注册中心则有Eureka、Consul、Zoopkeeper以及阿里的Nacos;3、链路追踪:Zipkin、Skywalking、Spring Cloud Sleuth;4、消息总线:RabbitMQ或者Kafka提供各服务间举行设置消息同步,热部署以及灰度公布等功效;服务熔断器:Hystrix提供服务间的熔断机制,实现离线服务熔断以及一些降级和限流功效;6、服务间调理:各服务间通过Feign举行声明式挪用或者通过Ribbon+RestTemplate举行挪用;7、授权中心:通过统一的授权服务中心对每个资源服务器举行统一授权实现各服务间的oauth2.0协议的客户端方式挪用,对服务举行统一资源治理,可接纳Spring Cloud Security举行集成SSO的单点服务;8、设置中心:Spring Cloud Config、携程的Appllo以及阿里的Nacos;9、数据库:关系型数据库一般都接纳盛行的Mysql,包罗后期数据量增加后,接纳的一些逻辑分表分库的中间件,如MyCat以及业务层面实现的Shard-JDBC等,非关系型数据库可接纳Redis作为基础缓存、热点缓存、以及漫衍式缓存等,固然MongoDB也可以作为一些高性能查询的数据库存储方案,另有后续的Elasticsearch的集成高性能搜索引擎,实现一些实时搜索、盘算以及聚合等大数据量业务场景;10、漫衍式事务:对于服务实例间挪用,涉及到漫衍式肯定需要举行原子性操作的保证,那么漫衍式事务的解决方案得选型,市面上可用的一些漫衍式事务解决方案包罗Seata、EasyTransaction以及基于Zoopkeeper实现的漫衍式节点方案等;11、其他:如果是基于SpringCloud生态的微服务,如任务调理相关的Spring Cloud Task、提供服务监控的组件Spring Boot Admin等。内容综述综上: 简朴明白了一下,整个微服务架构中的演变历程以及技术选型的总结与技术架构的定位,一般项目架构前期需要对技术举行严格的评审和把控,以至于后续的迭代中对整个架构周期的演变做到一定的可预测性以及前沿性,选型与技术对比并落地与实践是一个漫长而极具挑战的事,做好前期的技术调研以及评估会极大提高整个架构体系的灵活拓展性和可变性。固然也要详细针对行业的业务场景举行适当的调整,并没有一套架构能适用于所有的行业,只有适合行业业务场景的架构才是好的架构,落地于行业场景,并能优于当前下业务的结构并能基础上解决详细的痛点所在,才是好的架构真正体现出来的价值。以上即是自己对整个服务架构演变和技术选型的简朴手记明白,不喜勿喷。


本文关键词:架构,基础,篇之,浅谈,微,服务,演变,和,kaiyun,技术

本文来源:kaiyun-www.sqxtgxg.com