【Way to Spring Cloud 1】微服务&Spring Cloud

微服务简介

微服务是一种架构风格,是开发一组小型服务的方式来作为一个独立的应用系统,每个服务都运行在自己的进程中,服务之间采用轻量级的HTTP通信机制(通常是采用HTTP的Restful API)进行通信。

这些服务都是微绕具体业务进行构建的,并且可以独立部署到生产环境上。这些服务可以用不同的语言编写,并且可以用不同的数据存储技术。

对这些服务我们只需要使用一个非常轻量级的集中式管理来进行协调。

单体应用架构

优点

  1. 便于开发测试。单个应用包含所有功能,不涉及互联互调。
  2. 便于部署。单个应用打成war包或jar包,部署至tomcat即可,运维起来比较方便。
  3. 便于整体拓展。应用负载压力大时,将该应用复制几份,部署至不同的服务器上,再通过负载均衡即可提高应用并发能力。

缺点

  1. 复杂性高。单体应用包含的模块较多,导致模块之间边界模糊、依赖关系不清晰、优化迭代会带来隐藏的缺陷,使得整个项目十分复杂。
  2. 阻碍技术创新。单体应用技术选型是在开发之前经过慎重评估后选定的,每个团队成员都必须使用相同的开发语言、持久化存储和消息系统。

微服务架构

优点

  1. 易于开发维护。一个微服务只会关注一个特定的业务功能,所以业务清晰,业务量较少。
  2. 单个微服务启动快。
  3. 局部容易修改部署。单体应用只要有修改,就得重新部署整个应用。微服务架构解决了这样的问题。一般来说,对某个微服务进行修改,只需要重新部署这个服务即可。
  4. 技术栈不受限制。可以根据项目业务和团队特点,合理选择技术栈。
  5. 按需伸缩。根据需求实现细粒度的扩展。

缺点

  1. 运维要求高。更多的服务意味着投入更多的运维。
  2. 分布式固有的复杂性。使用微服务构建的是分布式系统。对于一个分布式系统,系统容错、网络延时、分布式事务等都会带来问题。
  3. 接口调整成本高。微服务之间通过接口进行通信,如果修改一个微服务的API,可以所有用到这个接口的微服务都需要进行调整。

微服务架构总结

微服务的核心就是将传统的单一应用,根据业务拆分成一个一个的服务,彻底的解耦和,每一个微服务提供单一的功能模块,一个服务做一件事。

在Idea中实用Maven构建一个个独立的Module,也就是SpringBoot开发的一个个小模块,将专业的事交给专业的模块来做。比如一个大型项目可能有上百个微服务,将这些微服务集中起来构成一个大的系统,对外暴露服务进行调用。

从技术角度看就是一个小而独立的处理过程,类似进程概念,能够自行单独启动或销毁,可以拥有自己独立的数据库。

搭建分布式微服务架构的技术栈

在这里插入图片描述
在这里插入图片描述

Spring Cloud

Spring Cloud,基于Spring Boot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。
官网:https://spring.io/projects/spring-cloud
各组件说明(中文版):https://www.springcloud.cc
SpringCloud中国社区:http://www.springcloud.cn

Spring Cloud使用Restful API实现服务之间通信。
Dubbo使用RPC(远程过程调用)实现服务之间通信。

Spring Boot和Spring Cloud的关系

Spring Boot可以离开Spring Cloud单独使用开发项目,但是Spring Cloud离不开Spring Boot,属于依赖关系。

Spring Boot专注于快速方便的开发单个个体微服务,Spring Cloud是关注全局的服务治理框架。

Spring Cloud是关注全局的服务治理框架,它将Spring Boot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于PyTorch的Embedding和LSTM的自动写诗实验LSTM (Long Short-Term Memory) 是一种特殊的循环神经网络(RNN)架构,用于处理具有长期依赖关系的序列数据。传统的RNN在处理长序列时往往会遇到梯度消失或梯度爆炸的问题,导致无法有效地捕捉长期依赖。LSTM通过引入门控机制(Gating Mechanism)和记忆单元(Memory Cell)来克服这些问题。 以下是LSTM的基本结构和主要组件: 记忆单元(Memory Cell):记忆单元是LSTM的核心,用于存储长期信息。它像一个传送带一样,在整个链上运行,只有一些小的线性交互。信息很容易地在其上保持不变。 输入门(Input Gate):输入门决定了哪些新的信息会被加入到记忆单元中。它由当前时刻的输入和上一时刻的隐藏状态共同决定。 遗忘门(Forget Gate):遗忘门决定了哪些信息会从记忆单元中被丢弃或遗忘。它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 输出门(Output Gate):输出门决定了哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。同样地,它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 LSTM的计算过程可以大致描述为: 通过遗忘门决定从记忆单元中丢弃哪些信息。 通过输入门决定哪些新的信息会被加入到记忆单元中。 更新记忆单元的状态。 通过输出门决定哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。 由于LSTM能够有效地处理长期依赖关系,它在许多序列建模任务中都取得了很好的效果,如语音识别、文本生成、机器翻译、时序预测等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值