什么是微服务
微服务一词来源 Martin Fowler 的“Microservices”一文,微服务是一种架构风格,将
单体应用划分为小型的服务单元,微服务之间使用 HTTP 的 API 进行资源访问与操作。
在对单体应用的划分上,微服务与前面的 SOA 架构有点类似,但是 SOA 架构侧重于
将每个单体应用的服务集成到 ESB 上,而微服务做得更加彻底,强调将整个模块变成服务
组件,微服务对模块的划分粒度可能会更细。以我们前面的销售、会员模块为例,在 SOA
架构中,只需要将相应的服务发布到 ESB 容器就可以了,而在微服务架构中,这两个模块
本身,将会变为一个或多个的服务组件。SOA 架构与微服务架构,请见图 1-5 与图 1-6。
图 1-5 SOA 架构
图 1-6 微服务架构
目录及部分内容
目录
1 Spring Cloud 概述......................................................................................................................... 5
1.1 传统的应用.........................................................................................................................5
1.1.1 单体应用..................................................................................................................5
1.1.2 架构演进..................................................................................................................6
1.1.3 架构要求..................................................................................................................7
1.2 微服务与 Spring Cloud.....................................................................................................8
1.2.1 什么是微服务......................................................................................................... 8
1.2.2 关于 Netflix OSS....................................................................................................9
1.2.3 Spring Cloud 与 Netflix..........................................................................................9
1.2.4 Spring Cloud 的主要模块......................................................................................9
1.3 关于本书...........................................................................................................................10
1.3.1 下载本书的软件及源码....................................................................................... 10
1.3.2 导入本书的案例................................................................................................... 10
1.4 本章小结........................................................................................................................... 11
2 开发环境搭建.............................................................................................................................. 11
2.1 安装与配置 Maven..........................................................................................................12
2.1.1 关于 Maven.......................................................................................................... 12
2.1.2 下载与安装 Maven.............................................................................................. 12
2.1.3 配置远程仓库....................................................................................................... 13
2.2 安装 Eclipse.....................................................................................................................13
2.2.1 Eclipse 版本.......................................................................................................... 13
2.2.2 在 Eclipse 配置 Maven....................................................................................... 13
3 Spring Boot 简介与配置.............................................................................................................15
3.1 Spring Boot.......................................................................................................................15
3.1.1 Spring Boot 简介.................................................................................................. 15
3.1.2 新建 Maven 项目................................................................................................. 15
3.1.3 编写启动类........................................................................................................... 17
3.1.4 编写控制器........................................................................................................... 17
3.1.5 发布 REST WebService.....................................................................................18
3.2 Spring Boot 配置文件..................................................................................................... 19
3.2.1 默认配置文件....................................................................................................... 19
3.2.2 指定配置文件位置............................................................................................... 20
3.2.3 yml 文件.................................................................................................................20
3.2.4 运行时指定 profiles 配置.................................................................................... 20
3.2.5 热部署................................................................................................................... 21
3.3 小结...................................................................................................................................21
4 微服务发布与调用......................................................................................................................21
4.1 Eureka 介绍......................................................................................................................22
4.1.1 关于 Eureka..........................................................................................................22
4.1.2 Eureka 架构.......................................................................................................... 22
4.1.3 服务器端................................................................................................................ 23
4.1.4 服务提供者............................................................................................................ 23
4.1.5 服务调用者............................................................................................................ 23
4.2 第一个 Eureka 应用........................................................................................................24
4.2.1 构建服务器........................................................................................................... 24
4.2.2 服务器注册开关................................................................................................... 25
4.2.3 编写服务提供者................................................................................................... 26
4.2.4 编写服务调用者................................................................................................... 28
4.2.5 程序结构............................................................................................................... 30
5 Eureka 集群搭建......................................................................................................................... 31
5.1 Eureka 集群搭建..............................................................................................................31
5.1.1 本例集群结构图................................................................................................... 31
5.1.2 改造服务器端....................................................................................................... 32
5.1.3 改造服务提供者................................................................................................... 33
5.1.4 改造服务调用者................................................................................................... 34
5.1.5 编写 REST 客户端进行测试.............................................................................. 34
6 负载均衡框架 Ribbon 介绍....................................................................................................... 35
6.1 Ribbon 介绍......................................................................................................................35
6.1.1 Ribbon 简介.......................................................................................................... 35
6.1.2 Ribbon 子模块...................................................................................................... 36
6.1.3 负载均衡器组件................................................................................................... 36
6.2 第一个 Ribbon 程序.........................................................................................................36
6.2.1 编写服务............................................................................................................... 37
6.2.2 编写请求客户端................................................................................................... 38
6.2.3 Ribbon 配置.......................................................................................................... 39
7 Ribbon 负载均衡器..................................................................................................................... 39
7.1 Ribbon 负载均衡器..........................................................................................................40
7.1.1 负载均衡器........................................................................................................... 40
7.1.2 自定义负载规则................................................................................................... 41
7.1.3 Ribbon 自带的负载规则...................................................................................... 42
7.1.4 Ping 机制............................................................................................................... 43
7.1.5 自定义 Ping.......................................................................................................... 44
7.1.6 其他配置............................................................................................................... 45
8 Spring Cloud 与 RibbonRibbon................................................................................................ 45
8.1 准备工作...................................................................................................................45
8.2 使用代码配置 Ribbon.............................................................................................46
8.3 使用配置文件设置 Ribbon.....................................................................................48
8.4 Spring 使用 Ribbon 的 API.....................................................................................48
9 RestTemplate 负载均衡原理..................................................................................................... 50
9.1 @LoadBalanced 注解概述.....................................................................................50
9.2 编写自定义注解以及拦截器.................................................................................. 51
9.3 使用自定义拦截器以及注解.................................................................................. 52
9.4 控制器中使用 RestTemplate.................................................................................53
10 REST 客户端 Feign 介绍.........................................................................................................54
10.1 使用 CXF 调用 REST 服务................................................................................. 54
10.2 使用 Restlet 调用 REST 服务.............................................................................55
1.2.1 什么是微服务
微服务一词来源 Martin Fowler 的“Microservices”一文,微服务是一种架构风格,将
单体应用划分为小型的服务单元,微服务之间使用 HTTP 的 API 进行资源访问与操作。
在对单体应用的划分上,微服务与前面的 SOA 架构有点类似,但是 SOA 架构侧重于
将每个单体应用的服务集成到 ESB 上,而微服务做得更加彻底,强调将整个模块变成服务
组件,微服务对模块的划分粒度可能会更细。以我们前面的销售、会员模块为例,在 SOA
架构中,只需要将相应的服务发布到 ESB 容器就可以了,而在微服务架构中,这两个模块
本身,将会变为一个或多个的服务组件。
下载地址:https://u18103887.ctfile.com/fs/18103887-311507529
原文地址:https://www.cnblogs.com/xuanxuan2015/p/10664008.html