微服务架构概述
参考:《Srping Cloud与Docker微服务架构实战 周立著》
单体应用架构存在的问题
微服务架构就是为了解决单体应用架构中存在的问题。
什么是微服务
微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间采用轻量级通信机制(HTTP或RPC)。这些服务围绕业务能力并且可通过自动部署机制独立部署。这些服务共用一个最小型的的集中式的管理。服务可用不同语言开发,并可使用不同的存储方式。具有如下特性:
微服务优点与挑战
微服务设计原则
微服务组件
基础组件
- Eureka :云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。
- Ribbon :提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用。
- Feign :Feign 是一种声明式、模板化的 HTTP 客户端。
- Hystrix : 熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
- Zuul :Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。
- Spring Cloud Config : 配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git 以及 Subversion。
- Spring Cloud Bus : 事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与 Spring Cloud Config 联合实现热部署。
- Spring Cloud Sleuth :日志收集工具包,封装了 Dapper 和 log-based 追踪以及 Zipkin 和 HTrace 操作,为 SpringCloud 应用实现了一种分布式追踪解决方案。
- Turbine :Turbine 是聚合服务器发送事件流数据的一个工具,用来监控集群下 hystrix 的 metrics 情况。
- Spring Cloud Stream :Spring 数据流操作开发包,封装了与 Redis、Rabbit、Kafka 等发送接收消息。
协议标准
- JWT
- OAuth2
监控
- spring boot admin:健康监控
- ELK:日志分析
- zipkin:链路追踪
授权登陆
- Spring Cloud Sercurity
- Shiro
- Spring Cloud OAuth2
基于 Spring Security 和 OAuth2 的安全工具包,为你的应用程序添加安全控制。
推荐阅读
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/13161.html