基于 Spring Cloud 完整的微服务架构实战

技术栈

Spring boot - 微服务的入门级微框架,用来简化 Spring 应用的初始搭建以及开发过程。

Eureka - 云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。

Spring Cloud Config - 配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git 以及 Subversion。

Hystrix - 熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。

Zuul - Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。

Spring Cloud Bus - 事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与 Spring Cloud Config 联合实现热部署。

Spring Cloud Sleuth - 日志收集工具包,封装了 Dapper 和 log-based 追踪以及 Zipkin 和 HTrace 操作,为 SpringCloud 应用实现了一种分布式追踪解决方案。

Ribbon - 提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用。

Turbine - Turbine 是聚合服务器发送事件流数据的一个工具,用来监控集群下 hystrix 的 metrics 情况。

Spring Cloud Stream - Spring 数据流操作开发包,封装了与 Redis、Rabbit、Kafka 等发送接收消息。

Feign - Feign 是一种声明式、模板化的 HTTP 客户端。

Spring Cloud OAuth2 - 基于 Spring Security 和 OAuth2 的安全工具包,为你的应用程序添加安全控制。

应用架构

该项目包含 8 个服务

registry - 服务注册与发现

config - 外部配置

monitor - 监控

zipkin - 分布式跟踪

gateway - 代理所有微服务的接口网关

auth-service - OAuth2 认证服务

svca-service - 业务服务A

svcb-service - 业务服务B

体系架构

应用组件

启动项目

使用 Docker 快速启动

配置 Docker 环境

mvn clean package 打包项目及 Docker 镜像

在项目根目录下执行 docker-compose up -d 启动所有项目

本地手动启动

配置 rabbitmq

修改 hosts 将主机名指向到本地

127.0.0.1 registry config monitor rabbitmq auth-service

或者修改各服务配置文件中的相应主机名为本地 ip

启动 registry、config、monitor、zipkin

启动 gateway、auth-service、svca-service、svcb-service

项目预览

注册中心

访问 http://localhost:8761/ 默认账号 user,密码 password

监控

访问 http://localhost:8040/ 默认账号 admin,密码 admin

控制面板

应用注册历史

Turbine Hystrix面板

应用信息、健康状况、垃圾回收等详情

计数器

查看和修改环境变量

管理 Logback 日志级别

查看并使用 JMX

查看线程

认证历史

查看 Http 请求轨迹

Hystrix 面板

链路跟踪

访问 http://localhost:9411/ 默认账号 admin,密码 admin

控制面板

链路跟踪明细

服务依赖关系

RabbitMQ 监控

Docker 启动访问 http://localhost:15673/ 默认账号 guest,密码 guest(本地 rabbit 管理系统默认端口15672)

接口测试

1.获取 Token

curl -X POST -vu client:secret http://localhost:8060/
uaa/oauth/token -H "Accept: application/json" -d "password=password&username=anil&grant_type=password
&scope=read%20write"

返回如下格式数据:

{"access_token": "eac56504-c4f0-4706-b72e-3dc3acdf45e9","token_type": "bearer","refresh_token": "da1007dc-683c-4309-965d-370b15aa4aeb","expires_in": 3599,"scope": "read write"}

2.使用 access token 访问 service a 接口

curl -i -H "Authorization: Bearer eac56504-c4f0-4706-b72e-3dc3acdf45e9" http://localhost:8060/svca

返回如下数据:

svca-service (172.18.0.8:8080)===>name:zhangxdsvcb-service (172.18.0.2:8070)===>Say Hello
3.使用 access token 访问 service b 接口
curl -i -H "Authorization: Bearer eac56504-c4f0-4706-b72e-3dc3acdf45e9" http://localhost:8060/svcb

返回如下数据:

svcb-service (172.18.0.2:8070)===>Say Hello
4.使用 refresh token 刷新 tokencurl -X POST -vu client:secret http://localhost:8060/uaa/oauth/token -H "Accept: application/json" -d "grant_type=refresh_token&refresh_token=da1007dc-683c-4309-965d-370b15aa4aeb"

返回更新后的 Token:

{"access_token": "63ff57ce-f140-482e-ba7e-b6f29df35c88","token_type": "bearer","refresh_token": "da1007dc-683c-4309-965d-370b15aa4aeb","expires_in": 3599,"scope": "read write"}

5.刷新配置

curl -X POST -vu user:password http://localhost:8888/bus/refresh

Spring Cloud(5)---基于 Spring Cloud 完整的微服务架构实战相关推荐

  1. 基于 Spring Cloud 完整的微服务架构实战

    本项目是一个基于 Spring Boot.Spring Cloud.Spring Oauth2 和 Spring Cloud Netflix 等框架构建的微服务项目. @作者:Sheldon地址:ht ...

  2. 基于 Spring Cloud + Vue.js完整的微服务架构实战

    介绍 本项目是一个基于 Spring Boot.Spring Cloud.Spring Oauth2 和 Spring Cloud Netflix 等框架构建的微服务项目 前端框架为Vue.js. E ...

  3. 微服务架构实战第一节 Spring Cloud介绍

    开篇词 为什么你要学习微服务架构? 你好,我是萧然,长期从事分布式系统的构建和优化工作,负责过大型电商以及健康类系统的设计和开发,曾带领团队完成大规模微服务架构建设,在基于 Spring Cloud ...

  4. 【福利】赠书:Spring Cloud与Docker微服务架构实战(第2版)

    本次福利送出好友周立的第二版书籍! 正在关注和使用Spring Cloud的朋友们不要错过哦! 内容提要 <Spring Cloud与Docker微服务架构实战(第2版)>基于Spring ...

  5. 《Spring Cloud微服务架构实战派》PDF样章

    内容摘要: 本书针对Spring Cloud Greenwich.SR2版本+Spring Boot的2.1.x.RELEASE版本.在编写过程中,不仅考虑到在企业任职所需的技能,还考虑到求职面试时可 ...

  6. 疯狂Spring Cloud微服务架构实战

    网站 更多书籍点击进入>> CiCi岛 下载 电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍 电子书下载(皮皮云盘-点击"普通下载" ...

  7. Spring Cloud与Docker微服务架构实战 PDF版 内含目录

    Spring Cloud与Docker微服务架构实战  目录 1 微服务架构概述 1 1.1 单体应用架构存在的问题1 1.2 如何解决单体应用架构存在的问题3 1.3 什么是微服务3 1.4 微服务 ...

  8. 防止内卷和被潜规则,Spring Cloud Alibaba微服务架构实战派(上下册)|35岁程序员那些事

    目录 1 写书缘由 2 本书上册核心内容 2.1 Spring Cloud Alibaba基础实战 2.1.1 主要内容 2.1.2 MyBatis-Plus实现多租户架构的核心原理 2.2 分布式服 ...

  9. 《Spring Cloud与Docker微服务架构实战》配套代码

    不才写了本使用Spring Cloud玩转微服务架构的书,书名是<Spring Cloud与Docker微服务架构实战> - 周立,已于2017-01-12交稿.不少朋友想先看看源码,现将 ...

最新文章

  1. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别
  2. 前端DevOps之PageSpeed Insights
  3. matlab FAQ
  4. 深度系统安装移动硬盘启动_深度系统如何安装_电脑知识
  5. python中class什么意思_【转载】在python的class中的,self到底是什么?
  6. C/C++的memset函数的说明和使用
  7. mysql insert on update_我可以始终使用INSERT…ON DUPLICATE UPDATE进行简单的更新/插入吗?...
  8. linux清理磁盘空间_Ubuntu上释放磁盘空间的几种简单方法
  9. 记一次守护日志导致硬盘空间告警问题
  10. Maven安装和配置详细教程
  11. BIOS设置中的启动引导模式以及SATA的三种模式
  12. 永久免费的域名注册有吗?免费的域名注册在哪个平台?
  13. Deep Freeze冰点还原精灵破解|对Persi0.sys文件的思考
  14. 【蓝桥杯国赛真题08】python约分 蓝桥杯青少年组python编程 蓝桥杯国赛真题解析
  15. 飞思卡尔Kinetis系列单片机被锁住后,怎么解锁
  16. GitHub 的设置代码上传
  17. overleaf 插入图片_latex中插入图片
  18. 【linux进阶4】apache的服务使用(图文巨详细解释apache的正向和反向代理)
  19. 从本质矩阵恢复相机矩阵
  20. 【大赛八卦】2020国际初中生信息学竞赛中国代表队蝉联团体总分第一和金牌人数第一

热门文章

  1. 【STM32】点灯仪式
  2. noip初赛试题 c语言,NOIP初赛试题提高组C语言.doc
  3. python中集合变量_详解python的变量缓存机制
  4. 《深入理解分布式事务》第八章 TCC 分布式事务原理
  5. 【Java数据结构与算法】第十五章 B树、B+树和B*树
  6. Redis模式对比:主从模式 VS 哨兵sentinel模式 VS Redis cluster模式
  7. python网络编程系列
  8. JS动态更新微信浏览器中的title
  9. JQuery操作类数组的工具方法
  10. 常见网站CSS样式重置