python微服务开发.pdf_Python微服务开发

Posted 咸鱼不辣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python微服务开发.pdf_Python微服务开发相关的知识,希望对你有一定的参考价值。

目 录

第 1 章 理解微服务 1

1.1 SOA的起源 2

1.2 单体架构 2

1.3 微服务架构 5

1.4 微服务的益处 7

1.4.1 分离团队的关注点 7

1.4.2 更小的项目 8

1.4.3 扩展和部署 8

1.5 微服务的缺陷 9

1.5.1 不合理的拆分 9

1.5.2 更多的网络交互 9

1.5.3 数据的存储和分享 10

1.5.4 兼容性问题 10

目 录

第 1 章 理解微服务 1

1.1 SOA的起源 2

1.2 单体架构 2

1.3 微服务架构 5

1.4 微服务的益处 7

1.4.1 分离团队的关注点 7

1.4.2 更小的项目 8

1.4.3 扩展和部署 8

1.5 微服务的缺陷 9

1.5.1 不合理的拆分 9

1.5.2 更多的网络交互 9

1.5.3 数据的存储和分享 10

1.5.4 兼容性问题 10

1.5.5 测试 10

1.6 使用Python实现微服务 11

1.6.1 WSGI标准 12

1.6.2 greenlet和gevent模块 13

1.6.3 Twisted和Tornado模块 15

1.6.4 asyncio模块 16

1.6.5 语言性能 18

1.7 本章小结 20

第 2 章 Flask框架 21

2.1 选择Python版本 22

2.2 Flask如何处理请求 23

2.2.1 路由匹配 26

2.2.2 请求 30

2.2.3 响应 32

2.3 Flask的内置特性 33

2.3.1 Session对象 34

2.3.2 全局值 34

2.3.3 信号 35

2.3.4 扩展和中间件 37

2.3.5 模板 38

2.3.6 配置 40

2.3.7 Blueprint 42

2.3.8 错误处理和调试 43

2.4 微服务应用的骨架 47

2.5 本章小结 49

第 3 章 良性循环:编码、测试和写文档 51

3.1 各种测试类型的差异 52

3.1.1 单元测试 53

3.1.2 功能测试 56

3.1.3 集成测试 58

3.1.4 负载测试 59

3.1.5 端到端测试 61

3.2 使用WebTest 62

3.3 使用pytest和Tox 64

3.4 开发者文档 67

3.5 持续集成 71

3.5.1 Travis-CI 72

3.5.2 ReadTheDocs 73

3.5.3 Coveralls 73

3.6 本章小结 75

第 4 章 设计Runnerly 77

4.1 Runnerly应用 77

4.2 单体设计 79

4.2.1 模型 80

4.2.2 视图与模板 80

4.2.3 后台任务 84

4.2.4 身份验证和授权 88

4.2.5 单体设计汇总 92

4.3 拆分单体 93

4.4 数据服务 94

4.5 使用Open API 2.0 95

4.6 进一步拆分 97

4.7 本章小结 98

第 5 章 与其他服务交互 101

5.1 同步调用 102

5.1.1 在Flask应用中使用Session 103

5.1.2 连接池 107

5.1.3 HTTP缓存头 108

5.1.4 改进数据传输 111

5.1.5 同步总结 115

5.2 异步调用 116

5.2.1 任务队列 116

5.2.2 主题队列 117

5.2.3 发布/订阅模式 122

5.2.4 AMQP上的RPC 122

5.2.5 异步总结 122

5.3 测试服务间交互 123

5.3.1 模拟同步调用 123

5.3.2 模拟异步调用 124

5.4 本章小结 127

第 6 章 监控服务 129

6.1 集中化日志 129

6.1.1 设置Graylog 131

6.1.2 向Graylog发送日志 134

6.1.3 添加扩展字段 136

6.2 性能指标 137

6.2.1 系统指标 138

6.2.2 代码指标 140

6.2.3 Web服务器指标 142

6.3 本章小结 143

第 7 章 保护服务 145

7.1 OAuth2协议 146

7.2 基于令牌的身份验证 147

7.2.1 JWT标准 148

7.2.2 PyJWT 150

7.2.3 基于证书的X.509身份验证 151

7.2.4 TokenDealer微服务 154

7.2.5 使用TokenDealer 157

7.3 Web应用防火墙 160

7.4 保护代码 166

7.4.1 断言传入的数据 166

7.4.2 限制应用的范围 170

7.4.3 使用Bandit linter 171

7.5 本章小结 174

第 8 章 综合运用 175

8.1 构建ReactJS仪表盘 176

8.1.1 JSX语法 176

8.1.2 React组件 177

8.2 ReactJS与Flask 181

8.2.1 使用 bower、npm和babel 182

8.2.2 跨域资源共享 185

8.3 身份验证与授权 188

8.3.1 与数据服务交互 188

8.3.2 获取Strava令牌 189

8.3.3 javascript身份验证 191

8.4 本章小结 192

第 9 章 打包和运行Runnerly 195

9.1 打包工具链 196

9.1.1 一些定义 196

9.1.2 打包 197

9.1.3 版本控制 204

9.1.4 发布 206

9.1.5 分发 208

9.2 运行所有微服务 210

9.3 进程管理 213

9.4 本章小结 216

第 10 章 容器化服务 217

10.1 何为Docker? 218

10.2 Docker简介 219

10.3 在Docker中运行Flask 221

10.4 完整的栈——OpenResty、Circus和Flask 223

10.4.1 OpenResty 224

10.4.2 Circus 226

10.5 基于Docker的部署 228

10.5.1 Docker Compose 230

10.5.2 集群和初始化简介 231

10.6 本章小结 233

第 11 章 在AWS上部署 235

11.1 AWS总览 236

11.2 路由:Route53、ELB和AutoScaling 237

11.3 执行:EC2和Lambda 237

11.4 存储:EBS、S3、RDS、ElasticCache和CloudFront 238

11.4.1 消息:SES、SQS和SNS 240

11.4.2 初始化资源和部署:CloudFormation和ECS 241

11.5 在AWS上部署简介 242

11.5.1 创建AWS账号 242

11.5.2 使用CoreOS在EC2上部署 244

11.6 使用ECS 部署 247

11.7 Route53 251

11.8 本章小结 253

第 12 章 接下来做什么? 255

12.1 迭代器和生成器 256

12.2 协同程序 259

12.3 asyncio库 260

12.4 aiohttp框架 262

12.5 Sanic 262

12.6 异步和同步 264

12.7 本章小结 265

以上是关于python微服务开发.pdf_Python微服务开发的主要内容,如果未能解决你的问题,请参考以下文章

个人微信公众号搭建Python实现 -开发配置和微信服务器转入-认识微信公众号(14.1.1)

Python 开发个人微信号在运维开发中的使用

实战:1 小时上线 Flask 短信微服务

微服务跨语言调用(摘选)

利用gRPC构建Python微服务

Python 微服务框架 Nameko 初体验