springCloud/印象

面向服务

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

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头等)

eureka

config

zuul

### Spring Cloud Data Flow 简介 Spring Cloud Data Flow 是一个用于构建和管理数据处理管道的开发框架[^5]。它提供了流式处理、批处理以及任务调度的功能,能够帮助开发者快速搭建复杂的数据集成解决方案。 #### 功能特性 - **Stream Processing**: 支持实时消息传递,通过绑定器(Binder)连接到不同的中间件服务(如 Kafka 或 RabbitMQ),实现事件驱动架构。 - **Batch Jobs**: 提供对 Spring Batch 的支持,允许定义批量作业并监控其执行状态。 - **Task Execution**: 可运行一次性任务或者计划性任务,并跟踪这些任务的状态变化。 - **Dashboard UI & REST API**: 配备图形化界面方便操作的同时也开放了完整的 HTTP 接口来满足自动化需求。 以下是关于如何入门学习该技术栈的一些资源推荐: --- ### 官方文档链接 官方站点包含了详尽的技术指南与最佳实践建议: [Sprint Cloud Data Flow Official Documentation](https://dataflow.spring.io/docs/what-is-spring-cloud-data-flow/) [^6] 其中涵盖了安装指导、核心概念解释以及具体案例分析等内容,非常适合初学者阅读理解整个体系结构的工作原理及其优势所在之处。 另外还有专门针对不同场景的应用程序模板可供下载试用,比如文件传输、ETL转换等常见业务逻辑都可以直接拿来即插即用地测试效果怎么样。 --- ### 教程视频系列 YouTube 上由 Pivotal 技术团队录制的一套免费在线课程非常值得一看——不仅演示了基本功能的操作流程而且还深入探讨了一些高级话题像安全性配置之类的东西都会有所涉及。 [Spring Cloud Data Flow Tutorials Playlist on YouTube](https://www.youtube.com/watch?v=QcIy7sWzrJw&list=PLf0swTFhTI8qUUEdnc_YkM_mVj_VvZCpF) [^7] 观看过程中记得暂停跟着练习一遍加深印象哦! --- ### 示例项目代码库地址 GitHub 平台上有许多现成的例子可以帮助我们更快地上手实际编码环节而无需从零开始摸索太多细节部分。 [spring-cloud/spring-cloud-dataflow-samples Repository](https://github.com/spring-cloud/spring-cloud-dataflow-samples) [^8] 这里收集整理了许多实用的小应用模块覆盖范围广泛包括但不限于社交媒体数据分析、物联网设备监测等领域方向都考虑到了所以可以根据个人兴趣挑选感兴趣的专题领域进一步研究下去。 ```java @SpringBootApplication @EnableBinding(Source.class) public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication .class, args); } } ``` 上述片段展示了启用 Source 组件绑定的一个简单例子,在此基础上我们可以继续扩展更多复杂的业务规则从而形成更加完善的系统整体方案设计思路出来。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值