认识微服务架构Spring Cloud

1.主要的子项目

1)spring cloud config是配置管理工具,通过它可以把配置信息放到远程服务器中,从而集中管理集群配置。目前支持本地存储、git和subvesion三种存储方式。

所有实例都可以通过config server来获取配置文件,每个服务实例相当于配置服务的客户端。

2)spring cloud consul封装了consul。consul是HashiCorp公司用GO语言开发的一个服务治理软件。它包含服务治理、健康检查、Key-Value存储、多数据中心功能。

3)spring cloud sleuth为spring cloud应用提供了分布式追踪解决方案,为服务之间的链路调用提供了链路追踪。

4)spring cloud starters提供了“开箱即用”的依赖管理

5)spring cloud gateway提供了一种简单有效的微服务API进行路由。

6)spring cloud openfeign 封装了声明式的web service客户端fegin,它使得编写web service客户端变得更加容易。它支持fegin注解和jax-rs注解。

7)tubine是聚合服务器,它用来发送事件流数据,以监控集群中Hystrix的Metrics情况。通过tubine可以监控集群的请求量,从而知道系统的请求高峰期,以便更好的发型系统的问题。

2.Netfix家族项目

1)eureka是服务治理组件,它基于REST的服务,包含服务注册与服务发现功能

2)hystrix对微服务进行容错管理,即使将服务做成集群也不能保证其100%安全和可用,所以,为了防止因服务与服务之间的依赖性,单个服务出现故障导致整个微服务系统奔溃,则需要做容错处理。

3)zuul主要提供路由和过滤功能。它是各种服务的统一入口,还可以提供动态路由、监控、授权、安全、调度等功能。

4)archaius来管理配置api。提供了动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。

3.阿里巴巴家族项目

1)sentinel是一个流控组件,它以流量作为切入点,可以从流量控制、熔断降级、系统负载保护等多个维度保护服务等稳定性。

2)nacos是一个服务治理项目,它提供了动态服务发现、配置管理和服务管理平台。

3)rocketmq是一种消息中间件,它提供高可用分布式集群技术提供低延迟、高可靠的消息发布/订阅服务

4)dubbo是一款高性能java rpc框架。

5)seata是一个高性能的微服务分布式事务解决方案。

6)alibaba cloud axm是一个应用配置中心

7)alibaba cloud schedulerx是一个基于cron的表达式任务调度服务,可提供秒级、精准、高可靠、高可用的定时任务调度功能。

4项目结构

spring cloud是基于spring boot的,所以它们的项目结构是一样的,在创建好spring cloud工程后即可看到基础的结构。spring cloud的基础结构分为3个文件目录

1)src/main/java:入口启动类及程序开发目录。在这个目录下进行业务开发、创建实体层、控制器层、数据连接层等。

2)src/main/resources:资源文件目录,用于放静态文件和配置文件。

static用于存放静态资源,如css、javascript、图片文件等。

templates用于存放模版文件。

application.properties用于配置项目运行所需的配置数据。如果用YML 方式管理配置,则YML文件也存放在这个目录,名为application.yml

3)src/test/java测试程序所在的目录

spring cloud的自动配置

1.注解

spring boot的系统注解:@Override、@Deprecated、@SuppressWarnnings

spring boot的常用注解:@RestController、@Controller、@Service、@Repository、@Component、@Configuration、@Resource、@Autowired、@RequestMapping、@Transactional、@Qualifier

2.配置文件

application.properties

读取属性值,设置默认属性值、自定义属性值、使用环境变量

application.yml

5.应用程序开发模式-MVC

在整个spring mvc框架中,DispatcherServlet处于核心位置,继承自HttpServlet。它负责协调和组织不同组件,以完成请求处理并返回响应工作。

整个工作流程如下:

1)客户端发出请求,Tomcat服务器接收请求并将请求转交给DispatcherServlet处理。

2)DIspatcherServlet匹配在控制器中配置的映射路径,然后进行下一步处理。

3)ViewResolver将ModelAndView或者Exception解析成View,然后View会调用render()方法并根据ModelAndView中的数据渲染出页面。

表现层:用于展示界面,接收用户请求并返回数据。它为客户端提供应用程序的访问接口

业务逻辑层:三层架构的服务层,负责业务逻辑处理,主要是调用DAO层对数据进行增加、删除、修改和查询

数据访问层:于数据库进行交互的持久层,被service调用。如果在spring data jpa中,则该层由Hibernate来实现。

Repository和DAO层都可以进行数据增加、删除、修改和查询。它们相当于仓库管理员,执行进、出货操作。

DAO的工作是存取对象。Repository的工作是存取和管理对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值