Spring Cloud 完整的微服务

栏目: Java · 发布时间: 7年前

内容简介:技术栈Spring boot - 微服务的入门级微框架,用来简化 Spring 应用的初始搭建以及开发过程。Eureka - 云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。
编辑推荐:
本文来自于CSDN,本文讲解的是一个基于 Spring Boot、Spring Cloud、Spring Oauth2 和 Spring Cloud Netflix 等框架构建的微服务项目。

技术栈

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

体系架构

Spring Cloud 完整的微服务

应用组件

Spring Cloud 完整的微服务

启动项目

使用 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

Spring Cloud 完整的微服务

监控

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

控制面板

Spring Cloud 完整的微服务

应用注册历史

Spring Cloud 完整的微服务

Turbine Hystrix面板

Spring Cloud 完整的微服务

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

Spring Cloud 完整的微服务

计数器

Spring Cloud 完整的微服务

查看和修改环境变量

Spring Cloud 完整的微服务

管理 Logback 日志级别

Spring Cloud 完整的微服务

查看并使用 JMX

Spring Cloud 完整的微服务

查看线程

Spring Cloud 完整的微服务

认证历史

Spring Cloud 完整的微服务

查看 Http 请求轨迹

Spring Cloud 完整的微服务

Hystrix 面板

Spring Cloud 完整的微服务

链路跟踪

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

控制面板

Spring Cloud 完整的微服务

链路跟踪明细

Spring Cloud 完整的微服务

服务依赖关系

Spring Cloud 完整的微服务

RabbitMQ 监控

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

Spring Cloud 完整的微服务

接口测试

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:zhangxd

svcb-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 刷新 token

curl -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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

复盘+:把经验转化为能力(第2版)

复盘+:把经验转化为能力(第2版)

邱昭良 / 机械工业出版社 / 39.00

随着环境日趋多变、不确定、复杂、模糊,无论是个人还是组织,都需要更快更有效地进行创新应变、提升能力。复盘作为一种从经验中学习的结构化方法,满足了快速学习的需求,也是有效进行知识萃取与共享的机制。在第1版基础上,《复盘+:把经验转化为能力》(第2版)做了六方面修订: ·提炼复盘的关键词,让大家更精准地理解复盘的精髓; ·基于实际操作经验,梳理、明确了复盘的"底层逻辑"; ·明确了复......一起来看看 《复盘+:把经验转化为能力(第2版)》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具