SpringCloud 微服务综合实例
来源:互联网 发布:美国经济数据在哪查看 编辑:程序博客网 时间:2024/05/20 05:30
GitHub: https://github.com/junneyang/xxproject
SpringCloud 微服务综合实例。分布式配置中心,服务发现&负载均衡,链路断路器,API网关,OAuth2认证授权,分布式追踪,ELK日志中心,Docker持续交付等最佳实践。
Features:
- 分布式配置中心, 通过消息总线更新配置
- Eureka实现服务端服务注册/服务发现/负载均衡
- Feign实现客户端负载均衡
- Hystrix实现链路断路器
- Zuul实现API网关
- Zipkin&Sleuth实现分布式追踪
- 消息驱动
- 分布式锁&信号量
- 统一异常处理
- 统一HTTP处理
- 国际化
- OAuth2.0与安全
- API文档与测试
- 批处理
- 分布式任务调度
- 分布式ID中心
- 日志收集
- 同步与异步调用
- RPC调用
- 其他最佳实践
Overview:
系统全景图:
技术实现:
服务 实现方案 项目 分布式配置中心SpringCloud Config Serversupport/config-server服务注册/负载均衡Netflix Eurekasupport/eureka-server客户端负载均衡NetFlix Ribbon--链路保护与监控NetFlix Hystrixsupport/turbine-server & support/hystrix-dashboard API网关NetFlix Zuulsupport/zuul-server分布式追踪调用链分析SpringCloud Sleuthsupport/zipkin-server OAuth2认证授权SpringCloud Security OAuthsupport/auth-server基础服务--core/product-service & core/review-service 聚合服务--composite/product-composite-service API服务--api/product-api-service 日志处理ELK--容器化部署Docker Compose--
Compile:
编译构建为Jar包:
mvn clean package
编译构建为Docker镜像:
mvn clean package docker:build
, 镜像列表:
Deploy:
Jar方式部署:
可参考READM步骤
Docker方式部署:
source bootstrap.rc && docker-compose up -d
, 检查以下17个容器正常运行:部署完成, 访问Eureka, 查看注册的服务实例如下:
Enjoy:
- 访问OAuth Server:
http://localhost:9999/uaa/oauth/authorize?response_type=code&client_id=acme&redirect_uri=http://example.com&scope=webshop&state=97536,
输入用户名密码(admin/passw0rd)
- 同意OAuth授权, 如下:
- 页面跳转到: http://example.com/?code=5J4vJ8&state=97536,
该页面可以获取CODE, 如下: - 通过CODE获取TOKEN:
CODE=5J4vJ8curl acme:acmesecret@localhost:9999/uaa/oauth/token \ -d grant_type=authorization_code \ -d client_id=acme \ -d redirect_uri=http://example.com \ -d code=$CODE -s | jq .TOKEN=bd34faf8-dcd0-4aed-a903-c8a90cb7a731
- 以上获取TOKEN步骤截图如下:
- 访问API服务: http://localhost:5555/api/product-api-service/product-api-composite,
返回成功, 并且消息头携带X-RequestId, 如下: - 访问追踪系统: http://localhost:7777/zipkin/,
- 实际服务调用示意图:
- 调用链分析如下:
- 服务依赖拓扑图如下:
- 实际服务调用示意图:
- 访问链路保护系统: http://localhost:8088/hystrix/monitor?stream=http%3A%2F%2Fturbine-server%3A8989%2Fturbine.stream,
链路断路器状态如下, 可以看到断路器状态, 调用次数, 失败次数、线程池等信息: - 访问ELK日志系统: http://localhost:5601, 如下:
- 使用jvisualvm监控JVM实时性能指标,
- CPU、内存占用分析如下:
- 线程视角性能分析如下:
阅读全文
0 0
- SpringCloud 微服务综合实例
- springcloud微服务
- springCloud微服务学习总结
- 1、SpringCloud 微服务介绍
- 使用SpringCloud实战微服务
- 微服务框架-SpringCloud简介
- 使用SpringCloud实战微服务
- SpringCloud(一)构建SpringBoot微服务
- SpringCloud系列(1)---初试微服务
- 初学springcloud微服务框架(—)
- 初学springcloud微服务框架(二)
- 使用SpringCloud搭建微服务<一>
- SpringCloud、Dubbo 和 Istio 微服务框架
- springcloud和dubbo微服务架构图
- 【微服务架构】SpringCloud之Ribbon(四)
- 【微服务架构】SpringCloud之Feign(五)
- 【微服务架构】SpringCloud之Ribbon(四)
- 【微服务架构】SpringCloud之Feign(五)
- android监测电池的电量
- 申请邓白氏(D-U-N-S)编码
- Hibernate笔记
- Spring Data Jpa 简单使用事务
- 多线程出现HibernateException: Could not obtain transaction-synchronized Session for current thread
- SpringCloud 微服务综合实例
- 面试中常见的计算机网络问题
- 计算机原理:第一 简单进制转化
- SIFT、SURF、Harris、BRIEF、FAST、DAISY、FAST经典描述子简介
- Android 5.1系统源码Wifi模块中wifiSettings源码分析
- python 之 os.path学习笔记
- K-Graph Oddity UVA
- netty原理
- 简单详细解决python版本共存问题