Awesome Open Source
Awesome Open Source

xxproject

SpringCloud 微服务综合实例。分布式配置中心,服务发现&负载均衡,链路断路器,API网关,OAuth2认证授权,分布式追踪,ELK日志中心,Docker持续交付等最佳实践。

Features:    

  • [x] 分布式配置中心, 通过消息总线更新配置
  • [x] Eureka实现服务端服务注册/服务发现/负载均衡
  • [x] Feign实现客户端负载均衡
  • [x] Hystrix实现链路断路器
  • [x] Zuul实现API网关
  • [x] Zipkin&Sleuth实现分布式追踪
  • [ ] 消息驱动
  • [ ] 分布式锁&信号量
  • [ ] 统一异常处理
  • [ ] 统一HTTP处理
  • [ ] 国际化
  • [x] OAuth2.0与安全
  • [ ] API文档与测试
  • [ ] 批处理
  • [ ] 分布式任务调度
  • [ ] 分布式ID中心
  • [x] 日志收集
  • [ ] 同步与异步调用
  • [ ] RPC调用
  • [ ] 其他最佳实践

Overview:    

  • 系统全景图:
    image

  • 技术实现:

    服务 实现方案 项目
    分布式配置中心 SpringCloud Config Server support/config-server
    服务注册/负载均衡 Netflix Eureka support/eureka-server
    客户端负载均衡 NetFlix Ribbon --
    链路保护与监控 NetFlix Hystrix support/turbine-server & support/hystrix-dashboard    
    API网关 NetFlix Zuul support/zuul-server
    分布式追踪调用链分析 SpringCloud Sleuth support/zipkin-server        
    OAuth2认证授权 SpringCloud Security OAuth support/auth-server
    基础服务 -- core/product-service & core/review-service    
    聚合服务 -- composite/product-composite-service  
    API服务 -- api/product-api-service
    日志处理 ELK --
    普通方式部署 Ansible Playbooks --
    容器化部署 Docker Compose --

Compile:

  • 编译构建为Jar包: mvn clean package

  • 编译构建为Docker镜像: mvn clean package docker:build, 镜像列表:    

    image

Deploy:

  • Jar方式部署: 可参考READM步骤

  • Docker方式部署: source bootstrap.rc && docker-compose up -d, 检查以下17个容器正常运行(容器数量较多,机器内存最好在8G以上,否则可能导致部分容器启动失败):        

    image
    image

  • 部署完成, 访问Eureka: http://localhost:8001/, 查看注册的服务实例如下:    image  

Enjoy:


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
java (30,061
docker (2,670
ansible (400
docker-compose (358
oauth2 (284
config (145
springcloud (89
elk (59
zipkin (54
eureka (51
zuul (44
hystrix (43

Find Open Source By Browsing 7,000 Topics Across 59 Categories