内容简介:SOA代表面向服务的架构,将应用程序根据不同的职责划分为不同的模块,不同的模块直接通过特定的协议和接口进行交互。这样使整个系统切分成很多单个组件服务来完成请求,当流量过大时通过水平扩展相应的组件来支撑,所有的组件通过交互来满足整体的业务需求。面向服务的设计,往往需要ESB(Enterprise Service Bus,企业服务总线)产品来充当基础设施。ESB采用了“总线”这样一种模式来管理和简化应用之间的集成拓扑结构,以广为接受的开放标准为基础来支持应用之间在消息、事件和服务的级别上动态的互连互通。 ESB
SOA代表面向服务的架构,将应用程序根据不同的职责划分为不同的模块,不同的模块直接通过特定的协议和接口进行交互。这样使整个系统切分成很多单个组件服务来完成请求,当流量过大时通过水平扩展相应的组件来支撑,所有的组件通过交互来满足整体的业务需求。
面向服务的设计,往往需要ESB(Enterprise Service Bus,企业服务总线)产品来充当基础设施。ESB采用了“总线”这样一种模式来管理和简化应用之间的集成拓扑结构,以广为接受的开放标准为基础来支持应用之间在消息、事件和服务的级别上动态的互连互通。 ESB是一种在松散耦合的服务和应用之间标准的集成方式。
在其内部设计和实现中,通常会应用到一些经典的架构模式,例如:Broker模式、消息总线模式、发布订阅模式等。
微服务
微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制。
-
围绕业务能力组织 / Organized around Business Capabilities
康威定理:Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations。设计系统组织的设计产出受限于该组织的沟通结构。
-
是产品不是项目 / Products not Projects
-
去中心化 / Decentralized
-
进化式设计 / Evolutionary Design
-
基础设施自动化 / Infrastructure Automation
springboot
Spring Boot是一个简化Spring使用的框架,可以使用少量的配置快速创建一个基于Spring的项目。Spring Boot主要有如下核心功能:
-
独立运行的Spring项目。
-
内嵌Servlet容器。
-
提供starter简化Maven配置。
-
自动配置Spring
-
提供生产就绪型功能,如指标,健康检查和外部配置
springCloud
springCloud为什么被需要
Spring Cloud的开发团队专注于企业级开源框架的研发,不论是在中国还是在世界上使用都非常广泛,开发出通用、开源、稳健的开源框架是他们的主业。
Spring Cloud是微服务架构的生态环境,考虑到了微服务的各个方面。
Spring Cloud的社区热度非常好,问题修复也非常及时,未来会更加完善和稳定。
Spring Cloud也可以较好的兼容 python 、 php 等其他语言开发的微服务。因为采用RESTful。
Spring Cloud与 Docker 可以完美组合使用。
springCloud现状前景
知名互联网公司都已经使用了Spring Cloud,但都是小规模或者某个团队在使用。
针对与中小企业,使用springCloud优势明显,熟悉spring/springboot能很快上手。
阿里推出了spring cloud alibaba。
springCloud架构
springCloud模块
网关:Zuul,提供动态路由,监控,弹性,安全等边缘服务的框架
负载:Ribbon,有多种负载均衡策略可供选择
容错:Hystrix,断路器
配置:Spring Cloud Config,统一配置管理
总线:Spring Cloud Bus,可与Spring Cloud Config联合实现热部署
发现:Eureka,微服务的注册与发现
调用:Feign,一种声明式、模板化的HTTP客户端
跟踪:Spring Cloud Sleuth
日志:日志收集 工具 包
Docker:
spring-cloud-alibaba:
基础概念
service-id or instance-id
- 作为服务提供者唯一标识,消费端调用时使用。
@FeignClient(name= "spring-cloud-producer") public interface HelloRemote { @RequestMapping(value = "/hello") public String hello(@RequestParam(value = "name") String name); } 复制代码
- Ribbon负载均衡标识
restTemplate.getForObject("http://spring-cloud-producer/hello", String.class); 复制代码
-
zuul路由标识
http://localhost:8888/spring-cloud-producer/hello?name=liangjie 复制代码
-
注册中心标识
Application AMIs Availability Zones Status GATEWAY-SERVICE-ZUUL n/a (1) (1) UP (1) - 10.5.74.13:gateway-service-zuul:8888 SPRING-CLOUD-PRODUCER n/a (1) (1) UP (1) - 10.5.74.13:spring-cloud-producer:9000
actuator
Spring Boot 的 Actuator 提供了很多生产级的特性,比如监控和度量Spring Boot 应用程序。Actuator 的这些特性可以通过众多 REST 接口、远程 shell 和 JMX 获得。
主要rest接口
HTTP 方法 | 路径 | 描述 |
---|---|---|
GET | /autoconfig | 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过 |
GET | /configprops | 描述配置属性(包含默认值)如何注入Bean |
GET | /beans | 描述应用程序上下文里全部的Bean,以及它们的关系 |
GET | /dump | 获取线程活动的快照 |
GET | /env | 获取全部环境属性 |
GET | /env/{name} | 根据名称获取特定的环境属性值 |
GET | /health | 报告应用程序的健康指标,这些值由HealthIndicator的实现类提供 |
GET | /info | 获取应用程序的定制信息,这些信息由info打头的属性提供 |
GET | /mappings | 描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系 |
GET | /metrics | 报告各种应用程序度量信息,比如内存用量和HTTP请求计数 |
GET | /metrics/{name} | 报告指定名称的应用程序度量值 |
POST | /shutdown | 关闭应用程序,要求endpoints.shutdown.enabled设置为true |
GET | /trace | 提供基本的HTTP请求跟踪信息(时间戳、HTTP头等) |
以上所述就是小编给大家介绍的《springCloud/印象》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 印象深刻的Ruby例子
- 【iOS印象】GLPubSub 源码阅读笔记
- 浅谈 记一次 import 打包 印象误区
- 苹果WWDC印象:凶残的节奏、低调亮剑AI
- 服务通知:印象笔记PC端Markdown取消支持HTML标签解析功能
- 消除NLP中的刻板印象:程序员之于男性=家政人员之于女性?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。