这两年人人都谈数字化转型,企业的数字化转型已经成了企业特别重视的一项变革行动,比如零售行业、金融行业、地产行业等等。数字化是信息技术发展的高级阶段,是数字经济的主要驱动力,在技术架构上,实现从信息技术(IT)到数字技术(DT)转变。信息化改造是基于传统架构 + 桌面端;数字化转型是云网段 +AI0T 等为代表的新技术群落。数字化转型离不开企业的技术架构,微服务在2013年被提出,微服务是SOA发展出来的产物,它是一种比较现代化的细粒度的SOA实现方式。微服务架构能够实现由小型自主服务组成一个整体应用,各个组成部分之间是松耦合的,复杂性低,各个部分可以独立部署。
使用较多的微服务框架主要有以下几个:
(1)Dubbo
Dubbo是由阿里巴巴开源的分布式服务化治理框架,通过RPC请求方式访问。Dubbo是在阿里巴巴的电商平台中逐渐探索演进所形成的,经历过复杂业务的高并发挑战,比Spring Cloud的开源时间还要早。目前阿里、京东、当当、携程、去哪等一些企业都在使用Dubbo。
(2)Spring Boot
Spring Boot的设计目的是简化新Spring应用初始搭建以及开发过程,2017年有64.4%的受访者决定使用Spring Boot,可以说是最受欢迎的微服务开发框架。利用Spring Boot开发的便捷度简化分布式系统基础设施的开发,比如像配置中心、注册、负载均衡等方面都可以做到一键启动和一键部署。
(3)Spring Cloud
Spring Cloud是一个系列框架的合计,基于HTTP(S)的RETS服务构建服务体系,Spring Cloud能够帮助架构师构建一整套完整的微服务架构技术生态链。
(4)Tars
Tars 是腾讯将其内部使用的微服务框架 TAF(Total Application Framework)多年的实践成果总结而成的开源项目,在腾讯内部有上百个产品使用,服务内部数千名 C++、Java、Golang、Node.Js 与 PHP 开发者。其包含一整套开发框架与管理平台,兼顾多语言、易用性、高性能与服务治理,理念是让开发更聚焦业务逻辑,让运营更高效。
微服务离不开服务的提供和消费,我们以Dubbo为例介绍相关思想,其中包含几个关键角色。
(1)Provider:暴露服务的服务提供方;
(2)Consumer:调用远程服务的服务消费方;
(3)Register:服务注册与发现的注册中心。
(4)Monitor:统计服务调用次数和调用时间的监控中心;
(5)Constainer:服务运行容器。
微服务工程各个阶段通常的执行过程包含其他几个方面。服务容器启动、加载、运行服务提供者;在服务提供者启动时,向注册中心注册提供的服务;在服务消费者启动时,向注册中心订阅自己所需的服务;注册中心返回服务提供者地址列表给消费者,如有变更,注册中心将基于长连接推送变更的数据给消费者;服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,则选择另一台调用;服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
Dubbo官方建议使用Zookeeper作为服务的注册中心。Zookeeper的作用一方面用来注册服务,另一方面用来进行负载均衡。对于并发量较大的应用,如电商或银行,在流量达到一定程度的时候要进行分流,Zookeeper通过配置集群可以很容易达到负载均衡。基于Dubbo框架开发的提供者、消费者都向Zookeeper注册自己的URL,消费者还能拿到并订阅提供者的注册URL,以便在后续程序的执行中去调用提供者。而提供者发生了变动,也会通过Zookeeper向订阅的消费者发送通知。
网友评论