{"id":13535379,"url":"https://github.com/vangao1989/cloudE","last_synced_at":"2025-04-02T01:30:41.694Z","repository":{"id":201857883,"uuid":"98143442","full_name":"vangao1989/cloudE","owner":"vangao1989","description":"基于spring cloud的分布式系统架构。提供整套的微服务组件，包括服务发现、服务治理、链路追踪、服务监控等","archived":false,"fork":false,"pushed_at":"2018-07-17T01:44:21.000Z","size":1157,"stargazers_count":380,"open_issues_count":1,"forks_count":221,"subscribers_count":64,"default_branch":"master","last_synced_at":"2024-11-02T23:32:50.572Z","etag":null,"topics":["spring","spring-boot","spring-cloud"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vangao1989.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-07-24T02:58:48.000Z","updated_at":"2024-10-31T01:23:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"3cec4aac-8045-4bd6-9164-bbd9fad957b3","html_url":"https://github.com/vangao1989/cloudE","commit_stats":null,"previous_names":["vangao1989/cloude"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vangao1989%2FcloudE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vangao1989%2FcloudE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vangao1989%2FcloudE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vangao1989%2FcloudE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vangao1989","download_url":"https://codeload.github.com/vangao1989/cloudE/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246738405,"owners_count":20825775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["spring","spring-boot","spring-cloud"],"created_at":"2024-08-01T08:00:55.213Z","updated_at":"2025-04-02T01:30:41.375Z","avatar_url":"https://github.com/vangao1989.png","language":"Java","funding_links":[],"categories":["开源"],"sub_categories":[],"readme":"## 项目介绍\n\n　　基于spring cloud的分布式系统架构。提供整套的微服务组件，包括服务发现、服务治理、链路追踪、服务监控等。所有服务均支持在docker中运行。\n\n\n### 组织结构\n\n``` lua\ncloudE\n├── cloudE-eureka-server -- 服务发现\n├── cloudE-config-server -- 分布式配置中心\n├── cloudE-admin-server -- 服务监控\n├── cloudE-gateway-server -- zuul网关\n├── cloudE-hystrix-dashboard-server -- hystrix仪表盘\n├── cloudE-turbine-server -- hystrix仪表盘聚合服务\n├── cloudE-zipkin-server -- 链路监控\n├── cloudE-pay-api -- 支付服务api，提供feign接口\n├── cloudE-pay-provider -- 支付服务\n├── cloudE-ucenter-provider -- 用户中心\n├── cloudE-mapper -- mybatis生成模块\n├── cloudE-common 公共模块、工具类等\n```\n\n### 技术选型\n\n技术 | 说明 | 官网\n----|------|----\nSpring cloud eureka | 云端服务发现，一个基于 REST 的服务，用于定位服务，以实现云端中间层服务发现和故障转移。 | [https://projects.spring.io/spring-cloud/](https://projects.spring.io/spring-cloud/)\nSpring cloud config server | 让你可以把配置放到远程服务器，集中化管理集群配置，目前支持本地存储、Git以及Subversion  | [https://projects.spring.io/spring-cloud/](https://projects.spring.io/spring-cloud/)\nSpring cloud zuul | Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架  | [https://projects.spring.io/spring-cloud/](https://projects.spring.io/spring-cloud/)\nSpring Cloud Sleuth | 日志收集工具包，封装了Dapper和log-based追踪以及Zipkin和HTrace操作，为SpringCloud应用实现了一种分布式追踪解决方案。 | [https://projects.spring.io/spring-cloud/](https://projects.spring.io/spring-cloud/)\nSpring boot admin | 服务监控  | [http://projects.spring.io/spring-boot/](http://projects.spring.io/spring-boot/)\nHystrix | 熔断器，容错管理工具，旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。 | \nHystrix-dashboard | hystrix 仪表盘 \nzipkin | 分布式链路调用监控系统，聚合各业务系统调用延迟数据，达到链路调用监控跟踪。 |\nTurbine | 聚合服务器发送事件流数据的工具，用来监控集群下hystrix的metrics情况。\nFeign | 一种声明式、模板化的HTTP客户端。\nMyBatis Generator | 代码生成  | [http://www.mybatis.org/generator/index.html](http://www.mybatis.org/generator/index.html)\nRedis | 分布式缓存数据库  | [https://redis.io/](https://redis.io/)\nLog4J | 日志组件  | [http://logging.apache.org/log4j/1.2/](http://logging.apache.org/log4j/1.2/)\nSwagger2 | 接口测试框架  | [http://swagger.io/](http://swagger.io/)\nMaven | 项目构建管理  | [http://maven.apache.org/](http://maven.apache.org/)\nprometheus | 时间序列数据库 | [https://prometheus.io/](https://prometheus.io/)\n\n### 模块介绍\n\n\u003e cloudE-common\n\n包含了公共模块，以及工具类等。\n\n\u003e cloudE-pay-api\n\n支付服务api包，以feign的形式暴露支付接口\n\n\u003e cloudE-pay-provider\n\n提供支付服务\n\n\u003e cloudE-ucenter-provider\n\n用户中心，通过feign调用支付服务\n\n\n### 环境搭建\n\n\u003e 开发环境\n\n- 1、本机安装Jdk8、Mysql并**启动相关服务**，使用默认配置默认端口即可\n- 2、克隆源代码到本地并打开，**推荐使用IntelliJ IDEA**\n\n\u003e 准备工作\n\n- 创建数据库，导入cloudE-mapper项目中的create.sql\n\n- 修改cloudE-config-server中对应的配置信息（properties）\n\n\u003e 启动服务\n\n- 启动服务有三种方式：\n\n- 1、执行spring boot main方法\n\n- 2、执行maven打包命令 mvn clean install -Dmaven.test.skip=true ,jar包会被打到target目录下，进入该目录，执行 java -jar cloudE-xxxxx-xxxx.jar --spring.profiles.active=dev\n\n- 3、构建docker镜像（mvn package docker:build），然后执行docker run xxxxx/xxxxx\n\n\u003e 启动顺序\n\n- 优先启动cloudE-eureka-server,cloudE-config-server。其他服务顺序随意\n\n\n### 服务监控\n\n\u003e  通过prometheus client暴露Metrics到/prometheus。然后通过简单的配置Prometheus，就可以采集到监控数据。还可以使用Grafana，更好的展示监控数据。\n  \n  下面放上两张监控的效果图：\n- 1、prometheus\n![prometheus](project-bootstrap/prometheus.png)\n- 2、grafana\n![grafana](project-bootstrap/grafana.png)\n  \n  另外，通过spring cloud生态内的hystrix dashboard,以及zipkin（链路监控），也可以很好的监控服务，排查问题\n- 1、hystrix dashboard\n![hystrix](project-bootstrap/hystrix.png)\n- 2、zipkin\n![zipkin1](project-bootstrap/zipkin1.png) \n\n\n### 动态参数注入\n\n\u003e  有时候业务上需要用到可以热修改的参数，可以通过@RefreshScope注解，和spring boot admin来实现\n    \n   例子在cloudE-ucenter-provider中。实现如下：\n- 1.在启动类上加上@RefreshScope注解\n- 2.类中注入参数(参数配在properites中)\n![ucenterTask](project-bootstrap/ucenterTask.png)\n- 3.spring boot admin修改对应参数，即可实时生效\n![spring-boot-admin](project-bootstrap/spring-boot-admin.png)\n\n\n\n\n\n    \n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvangao1989%2FcloudE","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvangao1989%2FcloudE","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvangao1989%2FcloudE/lists"}