{"id":13754023,"url":"https://github.com/leecho/cola-cloud","last_synced_at":"2025-05-09T22:30:35.846Z","repository":{"id":50380398,"uuid":"127840641","full_name":"leecho/cola-cloud","owner":"leecho","description":"Cola Cloud 基于 Spring Boot, Spring Cloud 构建微服务架构企业级开发平台，集成OAuth2认证、集成短信验证码登录、微信小程序登录、FlyWay数据库版本管理、网关集成Swagger聚合所有服务API文档。基于SpringBootAdmin集成Hystrix、Turbine监控。开发用户中心、权限管理、组织架构、数据字典、消息中心、通知中心等模块。基于MyBatisPlus Generator 开发代码生成器","archived":false,"fork":false,"pushed_at":"2018-05-24T02:44:43.000Z","size":3775,"stargazers_count":346,"open_issues_count":5,"forks_count":192,"subscribers_count":30,"default_branch":"master","last_synced_at":"2024-11-16T06:31:26.907Z","etag":null,"topics":["java","microservice","oauth2","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leecho.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-03T02:40:19.000Z","updated_at":"2024-10-24T08:13:21.000Z","dependencies_parsed_at":"2022-07-30T23:37:57.243Z","dependency_job_id":null,"html_url":"https://github.com/leecho/cola-cloud","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leecho%2Fcola-cloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leecho%2Fcola-cloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leecho%2Fcola-cloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leecho%2Fcola-cloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leecho","download_url":"https://codeload.github.com/leecho/cola-cloud/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253335162,"owners_count":21892617,"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":["java","microservice","oauth2","spring-boot","spring-cloud"],"created_at":"2024-08-03T09:01:37.451Z","updated_at":"2025-05-09T22:30:34.934Z","avatar_url":"https://github.com/leecho.png","language":"Java","readme":"\u003cp align=\"center\"\u003e\r\n \u003cimg src=\"https://img.shields.io/circleci/project/vuejs/vue/dev.svg\" alt=\"Build Status\"\u003e\r\n  \u003cimg src=\"https://img.shields.io/badge/Spring%20Cloud-Edgware-blue.svg\" alt=\"Coverage Status\"\u003e\r\n  \u003cimg src=\"https://img.shields.io/badge/Spring%20Boot-1.5.9-blue.svg\" alt=\"Downloads\"\u003e\r\n\u003c/p\u003e\r\n\u003ch2 align=\"center\"\u003eCola Cloud\u003c/h2\u003e   \r\n\r\n\r\nCola Cloud 基于 Spring Boot, Spring Cloud 构建微服务架构企业级开发平台，集成OAuth2认证、集成短信验证码登录、FlyWay数据库版本管理、网关集成Swagger聚合所有服务API文档。基于SpringBootAdmin集成Hystrix、Turbine监控。开发用户中心、权限管理、组织架构、数据字典、消息中心、通知中心等模块。\r\n\r\n## 服务介绍\r\n\r\n项目名称\t| 编号 | 名称\t| 说明\t\r\n------------- | ------------- | ------------------------- | -------------\r\ncola-cloud-auth\t| auth-service | 认证服务\t| 基于SpringSecurity进行安全认证，采用OAuth2.0认证体系，对客户端、用户进行认证及授权，支持账号密码登录，短信验证码登录\t\r\ncola-cloud-config | config\t| 配置服务\t| 基于Spring Cloud构建统一配置服务，负责管理所有服务的配置文件\r\ncola-cloud-devtools | 无\t| 开发工具\t| Cola 代码生成器\r\ncola-cloud-gateway | gateway\t| 服务网关\t| 基于Zuul构建服务网关，并对服务进行负载，前只实现静态路由\r\ncola-cloud-monitor | monitor\t| 服务监控\t| 基于Spring Boot Admin集成Turbine,Hystrix，对应用状态进行监控，对服务调用进行追踪和对熔断进行监测\r\ncola-cloud-message | message\t| 通知中心\t| 公共基础通知服务，支持系统消息、短信、邮件、推送通知\r\ncola-cloud-registry | registry | 服务注册 | 基于Euraka构建服务注册中心，负责服务注册于发现\r\ncola-cloud-common | common-service |  基础服务 | 聚合Cola平台所有公共服务\r\ncola-cloud-organization | organization-service | 组织架构 | 提供组织架构、员工、岗位等服务\r\ncola-cloud-tenancy | tenancy-service  | 租户服务 | 提供租户以及租户成员服务\r\ncola-cloud-uc | uc-service  | 租户服务 | 用户中心 | 提供系统用户、用户注册服务\r\ncola-cloud-upm | upm-service | 权限服务 | 提供角色、资源、授权服务\r\ncola-cloud-notification | notification-service | 通知中心 | 基于RabbitMQ异步通知发送短信、邮件、WebSocket消息\r\n\r\n## 快速启动\r\n\r\n### 下载代码\r\n\r\n```jshelllanguage\r\n git clone https://gitee.com/leecho/cola-cloud.git\r\n```\r\n\r\n### 配置HOST\r\n\r\nSpring Cloud中的每个服务都是独立部署，所有在进行服务之间调用的时候需要确定对方服务的IP，为了规避IP变化带来代码修改的风险，所以需要配置host\r\n```jshelllanguage\r\n# 注册中心 配置中心\r\n127.0.0.1 registry api-gateway\r\n# reids rabbitmq mysql\r\n127.0.0.1 cola-redis cola-rabbitmq cola-mysql\r\n```\r\n\r\n### 环境变量\r\n\r\n环境变量主要是配置服务的访问用户名和密码：\r\n\r\n```\r\n//配置服务器用户名\r\nCONFIG_SERVER_USERNAME\r\n//配置服务器密码\r\nCONFIG_SERVER_PASSWORD\r\n//注册服务器用户名\r\nREGISTRY_SERVER_USERNAME\r\n//注册服务器密码\r\nREGISTRY_SERVER_PASSWORD\r\n//监控服务器用户名\r\nMONITOR_SERVER_USERNAME\r\n//监控服务器密码\r\nMONITOR_SERVER_PASSWORD\r\n//MYSQL用户名\r\nMYSQL_SERVER_USERNAME\r\n//MYSQL密码\r\nMYSQL_SERVER_PASSWORD\r\n//RabbitMQ用户名\r\nRABBITMQ_SERVER_USERNAME\r\n//RabbitMQ密码\r\nRABBITMQ_SERVER_PASSWORD\r\n//Redis用户名\r\nREDIS_SERVER_USERNAME\r\n//Redis密码\r\nREDIS_SERVER_PASSWORD\r\n```\r\n\r\n### 启动服务\r\n\r\n启动顺序如下：```registry config auth-service uc-serivce upm-service organization-service gateway monitor```\r\n\r\nregistry必须要最先启动，registry启动之后提供接口以供其他服务进行注册\r\n\r\nconfig在registry之后启动，config负责提供给其他服务配置信息，如果config没有启动，其他服务则无法启动\r\n\r\n其他service在config之后启动，如果是第一次运行项目，启动config之后先启动uc-service进行数据初始化\r\n\r\ngateway在最后启动，如果gateway先于其他服务启动，可能无法代理到其他服务，不过会在一段时间后重新代理\r\n\r\nmonitor，在config启动之后即可启动\r\n\r\n### 访问\r\n```js\r\n\r\nhttp://localhost:80/ 服务网关，已经聚合了所有服务的Swagger\r\nhttp://localhost:8761/ 注册中心，可以查看服务注册情况\r\nhttp://localhost:8080/ 监控中心，可以查看服务运行状态\r\n\r\n```\r\n### 获取ACCESS_TOKEN\r\n```js\r\ncurl -X POST \\\r\n  http://api-gateway/uaa/oauth/token \\\r\n  -H 'Cache-Control: no-cache' \\\r\n  -H 'Postman-Token: 40aa591e-8518-4c1f-9e2d-f0c0e6151a40' \\\r\n  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \\\r\n  -F username=admin \\\r\n  -F password=111111 \\\r\n  -F grant_type=password \\\r\n  -F scope=ui\r\n```\r\n\r\n## 基础服务\r\n### 配置服务\r\nSpring Cloud Config 负责所有服务的配置，可以使用本地文件、GIT等方式存储分发配置文件\r\n##### 客户端配置\r\n需要在POM中引入`spring-cloud-starter-config` 依赖, 根据约定自动状态\r\n\r\n在项目中需要设置配置服务的信息，例如配置服务器的地址，访问的用户名和密码等信息，在resources目录下 `bootstrap.yml` 文件配置\r\n```yml\r\nspring:\r\n  application:\r\n    name: message-service\r\n  cloud:\r\n    config:\r\n      uri: http://config:8888\r\n      fail-fast: true\r\n```\r\n\r\n### 认证服务\r\n\r\nSpring Security OAuth2 客户端配置\r\n```yml\r\nsecurity:\r\n  oauth2:\r\n    client:\r\n      clientId: server\r\n      clientSecret: server\r\n      accessTokenUri: http://auth-service:5000/uaa/oauth/token\r\n      grant-type: client_credentials\r\n      scope: server\r\n\r\n```\r\n\r\n``` java\r\n@PreAuthorize(\"#oauth2.hasScope('server')\")\r\n@RequestMapping(value = \"accounts/{name}\", method = RequestMethod.GET)\r\npublic List\u003cDataPoint\u003e getStatisticsByAccountName(@PathVariable String name) {\r\n\treturn statisticsService.findByAccountName(name);\r\n}\r\n```\r\n\r\n### 服务网关\r\n\r\n```yml\r\nzuul:\r\n  routes:\r\n    message-service:\r\n        path: /notifications/**\r\n        serviceId: message-service\r\n        stripPrefix: false\r\n\r\n```\r\n\r\n\r\n### 注册中心\r\n\r\n``` yml\r\nspring:\r\n  application:\r\n    name: message-service\r\n```\r\n\r\n\r\n## 配置\r\n### 短信配置\r\n```yml\r\ncola:\r\n  sms:  #短信配置\r\n    type: aliyun\r\n    aliyun:\r\n      access-key-id: \r\n      access-key-secret: \r\n```\r\n\r\n### 存储配置\r\n```yml\r\ncola:\r\n  storage:\r\n    type: aliyun\r\n    oss:\r\n      access-key-id: \r\n      access-key-secret: \r\n      bucket-name: \r\n      endpoint: \r\n```\r\n\r\n## 系统截图\r\n### 获取Token\r\n![](images/token.png)\r\n\r\n### 注册中心\r\n![](images/registry.png)\r\n\r\n### API文档\r\n![](images/gateway.png)\r\n\r\n### 监控中心\r\n![](images/monitor.png)\r\n\r\n### 监控详细信息\r\n![](images/detail.png)\r\n\r\n### 链路追踪\r\n![](images/zipkin.jpg)\r\n\r\n### 代码生成器\r\n![](images/generator.png)\r\n\r\n\r\nQQ交流群：736697444","funding_links":[],"categories":["spring-cloud"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleecho%2Fcola-cloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleecho%2Fcola-cloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleecho%2Fcola-cloud/lists"}