【微服务】微服务架构的技术选型和组件

1.传统单体架构的的不足
(1)应用的复杂度增加,更新、维护困难
(2)易造成系统资源浪费
(3)影响开发效率
(4)应用可靠性低
(5)不利于技术的更新
2.如何解决传统单体架构的问题
首先提出了SOA(Service-Orinted Architect,面向服务的架构):将应用中相近的功能聚合到一起,以服务的形式提供出去。
因为SOA也有不足,提出来微服务架构的思想,微服务将系统的业务功能拆分为更加细粒度的服务,所拆分的每一个服务都是一个独立的应用。围绕微服务思想构建的一系列体系结构(包括开发、测、集成等),称之为“微服务架构”。
3.微服务架构的优点
(1)复杂度可控
(2)可独立部署
(3)技术选型灵活
(4)易于容错
(5)易于扩展
(6)功能特定
4.微服务架构的不足
(1)开发人员必须处理创建分布式系统的复杂性
(2)部署的复杂性
(3)增加内存消耗
5.微服务架构与SOA的区别

微服务架构 SOA
一个系统被拆分为多个服务,细粒度 服务由多个子系统组成,细粒度
团队级,自底向上开展实施 企业级,自顶向下开展实施
无集中式总线,松散的服务架构 企业服务总线,集中式的服务架构
集成方式简单(HTTP/REST/JSON) 集成方式复杂(ESB/WS/SOAP)
服务能独立部署 服务相互依赖,无法独立部署

6.微服务架构的组件
(1)服务注册中心:注册系统中所有服务的地方。
(2)服务注册:服务提供方将自己调用地址注册到服务注册中心,让服务调用方能够方便地找到自己。
(3)服务发现:服务调用方从服务注册中心找到自己需要调用服务的地址。
(4)负载均衡:服务提供方一般以实例的形式提供服务,使用负载均衡能够保证让服务调用方连接到适合的服务节点。
(5)服务容错:通过断路器(也称熔断器)等一系列的服务保护机制,保证服务调用者在调用异常服务时快速地返回结果,避免大量的同步等待。
(6)服务网关:也称API网关,是服务调用的唯一入口,可以在这个组件中实现用户鉴权、动态路由、灰度发布、负载限流等功能。
(7)分布式配置中心:将本地化的配置信息(properties、yml、yaml等)注册到配置中心,实现程序包在开发、测试、生产环境的无差别性,方便程序包的迁移。
7.微服务架构的技术选型
【微服务】微服务架构的技术选型和组件_第1张图片
(1)微服务实例的开发:Spring Boot
(2)服务的注册与发现:Spring Cloud Eureka、Zookpeeper、Consul、Dubbo等
(3)负载均衡:Spring Cloud Ribbon和Dubbon等
(4)服务容错:Hystrix
(5)API网关:Spring Cloud Zuul、Netty或NodeJS等
(6)分布式配置中心:Spring Cloud Config
(7)调试:Swagger(是当前最受欢迎的REST API文档生成工具之一,它提供了强大的页面测试功能来调试每个RESTful API)
(8)部署:Docker(Docker是一个开源的应用容器引擎,具有可移植性、启动速度快等特点,适合跑一些轻量的应用)
(9)持续集成:Jenkins搭建自动化部署系统,使用Docker进行容器化封装
【微服务】微服务架构的技术选型和组件_第2张图片
微服务架构更新速度较快,技术选型在不断地迭代,目前SpringCloud中常用的技术选型如下:
【微服务】微服务架构的技术选型和组件_第3张图片
一个完整的项目由多个微服务组成,每个服务都会访问自己的数据库。当这些服务启动时,会将其信息注册到服务注册中心,在客户端发送请求时,请求首先会被API网关拦截,API网关会读取请求数据,并从注册中心获取对应的服务信息,然后API网关会根据服务信息调用所需的微服务。

你可能感兴趣的:(微服务,微服务,架构,java)