文档库 最新最全的文档下载
当前位置:文档库 › SpringCloud讲义

SpringCloud讲义

SPRINGCLOUD讲义

王瑞

2019-12-1

[公司名称]

[公司地址]

目录

1 请求与服务的模拟 (3)

1.1 微服务 (3)

1.2 示例 (3)

1.2.1 数据库 (4)

1.2.2 Products服务 (5)

1.2.3 数据库访问与JPA (8)

1.2.4 服务层接口与实现 (10)

1.2.5 控制器 (12)

1.2.6 测试添加商品/查询商品 (13)

1.2.7 Order服务 (17)

2 注册中心与Eureka (21)

2.1 注册中心 (21)

2.2 Eureka (22)

2.2.1 设置Eureka服务 (23)

2.3 向注册中心注册服务 (25)

2.3.1 配置Eureka Client (25)

2.3.2 从注册中心获取注册的服务 (27)

3 Eureka Server的高可用 (30)

3.1 设置多个注册中心 (30)

3.1.1 注册中心1 (30)

3.1.2 注册中心2 (31)

3.2 向多个注册中心注册服务 (34)

3.3 消费者可以从多个服务中心获取数据 (34)

3.3.1 测试 (35)

4 负载均衡与Ribbon (36)

5 熔断机制与断路器 (42)

5.1 Hystrix (43)

5.1.1 隔离 (44)

5.1.2 降级 (44)

5.2 Hystrix使用 (44)

5.2.1 熔断并降级 (47)

1请求与服务的模拟

1.1微服务

简单来说,微服务就是将一个单体项目中的各个功能部分,分解成一个个的独立的项目。各部分之间通过提供各自的服务来实现项目的整体交互。

SpringBoot为微服务提供了一个基本的基础框架。本章节以SpringBoot为基础,实现一个服务的交互。为后面详细的介绍SpringCloud提供实例基础。

1.2示例

本示例中有两个服务,其中Order服务是为最终用户服务的,Order服务要用到Products服务。在系统的内部在Order与Products之间就形成了Products为服务的提供者,而Order是服务的消费者。

示例技术实现:

?数据库采用MariaDB(一个MySQL兼容数据库)

?Products服务使用JPA访问MariaDB数据库。接受RESTFul请求样式。返回JSON数据。

?Order服务,使用Spring提供的RestTemplate(一个基于http请求,并能处理返回结果的框架)访问Products服务。

1.2.1 数据库

数据库名:

products 。

用户名:products 、密码:products 。

1.2.2Products服务

项目名:demo-ProductsService

创建Spring Boot Starters项目,选择“Spring Data JPA”、“Spring Web”。添加MariaDB数据库客户端依赖。

1.2.3数据库访问与JPA

JPA是Java标准的数据持久化框架。底层使用Hibernate实现。

Spring实现了对JPA的支持。并提供了JpaRepository和JpaSpecificationExecutor接口及实现。

?DAO的定义

1.2.4服务层接口与实现

1.2.5控制器

1.2.6测试添加商品/查询商品

添加一个商品:新建一个add_product.html页面,放在静态目录下。

url:http://localhost:8888/static/add_product.html

返回:

?查询商品

url:http://localhost:8888/product/2

1.2.7Order服务

Order服务,也是一个Spring Boot Starters项目,该项目要调用Products服务提供的商品信息。

创建项目:选择“Spring Boot Web”即可。

?调用Products服务

访问Products服务的相应URL,可以返回JSON形式的商品数据。我们可以用Java代码发起这样的请求,可以通过HttpURLConnection、URL等相关类来访问,并处理返回的结果。Spring为我们提供了RestTemplate类型,我们可以将该对象由Spring来进行管理并在合适的时机使用。

RestTemplate为我们提供了便捷的使用,并可以返回处理好的结果。

?使用RestTemplate访问服务

相关文档