springCloud/印象

栏目: Java · 发布时间: 6年前

内容简介: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。设计系统组织的设计产出受限于该组织的沟通结构。

springCloud/印象
springCloud/印象
  • 是产品不是项目 / 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也可以较好的兼容 pythonphp 等其他语言开发的微服务。因为采用RESTful。

Spring Cloud与 Docker 可以完美组合使用。

springCloud现状前景

知名互联网公司都已经使用了Spring Cloud,但都是小规模或者某个团队在使用。

针对与中小企业,使用springCloud优势明显,熟悉spring/springboot能很快上手。

阿里推出了spring cloud alibaba。

springCloud架构

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);
复制代码

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/印象》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Blockchain Basics

Blockchain Basics

Daniel Drescher / Apress / 2017-3-16 / USD 20.99

In 25 concise steps, you will learn the basics of blockchain technology. No mathematical formulas, program code, or computer science jargon are used. No previous knowledge in computer science, mathema......一起来看看 《Blockchain Basics》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具