第一章:基础知识(Spring cloud微服务实战)

本章主要学习一些关于微服务架构以及Spring cloud的基础知识


什么是微服务架构

微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的RESTful API进行通信协作。被拆分成的每一个小型服务都围绕着系统中的某一项或者一些耦合度高的业务功能进行构建,并且每个服务都维护着自身的数据存储,业务开发,自动化测试案例以及独立部署机制,由于有了轻量级的通信协作基础,所以这些微服务可以使用不同的语言来编写。


与单体系统的区别

    传统的企业系统架构中,我们针对复杂的业务需求通常分为三个主要部分:数据库、服务端、前端展现。

随着企业的发展和移动端设备的进步,单体应用由于面对的需求更为宽泛,会使得单体应用越来越臃肿,维护成本会越来越大,且难以控制。


微服务由于服务的拆分也引发了新的问题和挑战:

1.运维的新高度,微服务架构中,运维人员要维护的进程数量会大大增加。

2.接口的一致性,由于拆分了服务,业务逻辑上的依赖要通过服务通信机制,因此需要更完善的接口和版本管理,遵循开闭原则。

3.分布式的复杂性,分布式环境的问题比如网络延迟、分布式事务、异步消息。


微服务架构的九大特性

1.服务组件化

    服务组件化,服务是进程外的组件,通过http等通信协议进行协作。每一个服务都独立开发、部署,可以有效的避免一个服务的修改引起整个系统的重新部署。

2.按业务组织团队

    实施微服务架构时,建议按照业务线的方式进行拆分,一方面有效减少服务内部修改所产生的内耗,另一方面,团队边界变的更加清晰。

3.做“产品”的态度

4.智能端点与哑管道

    在微服务中通常有两种服务调用方式:

    第一种,使用HTTP的RESTful API或者轻量级的消息发送协议,实现信息传递与服务调用的触发。

    第二种,通过在轻量级消息总线上传递消息,类似RabbitMQ等一些提供可靠异步交换的中间件。

5.去中心化治理

    微服务架构,通常采用轻量级的契约定义接口,微服务架构系统中的各个组件就可以根据不同的业务特点选择不同的技术平台。

6.去中心化管理数据

    每一个服务管理自有的数据库,这就是数据去中心化,但是由于数据存储在不同的数据库实例中,数据一致性称为了新的问题。分布式事务本身的实现难度就很大,所以在微服务中,我们强调在各个服务之间进行“无事务”的调用,数据一致性只要求数据在最后的处理状态是一致的即可,若在过程中发现错误,通过补偿机制来进行处理,使得错误数据能够达到最终的一致性。

7.基础设施自动化

    自动化测试,自动化部署

8.容错设计

    微服务架构中快速检测出故障源并尽可能的自动恢复服务是必须被设计和考虑的,通常希望在每个服务中实现监控和日志记录的组件,比如服务状态,断路器状态,吞吐量,网络延迟等关键数据的仪表盘。

9.演进式设计

  

spring cloud简介


Spring Cloud 是一个基于Spring Boot实现的微服务结构开发工具。为微服务结构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态等操作提供了一种简单的开发方式。

包含以下子项目:

Spring Cloud Config : 配置管理工具。

Spring Cloud Netflix : 核心组件,对多个Netfix OSS开源套件进行整合。

    Eureka:服务治理组件,包含服务注册中心,服务注册与发现机制的实现。

    Hystrix:容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大的容错能力。

    Ribbon:客户端负载均衡的服务调用组件。

    Feign:基于Ribbon和Hystrix的声明式服务调用组件

    Zuul:网关组件,提供智能路由,访问过滤器等功能。

    Archaius:外部化配置组件

Spring Cloud Bus : 事件、消息总线,用于传播集群中的状态变化或者事件。

Spring Cloud Cluster : 选举算法和通用模块的实现。

Spring Cloud Consul : 服务发现和配置管理工具

Spring Cloud Security: 安全工具包

Spring Cloud Zookeeper : 基于Zookeeper的服务发现和配置管理组件

。。。



深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值