MCloud 基于 Spring Cloud 进行开发,提供了项目中常用的基础设施:
- mcloud-registry 服务注册与发现中心。
- keycloak 用户认证和管理。
- mcloud-apigw 基于Spring cloud gateway 实现的 API 网关 ,同时使用了
netflix-ribbon
作为负载均衡器。 - mcloud-config 基于 GitHub 的统一配置中心(此项目使用 这个 repo 作为配置存储库)。
- mcloud-logs 基于
logstash
Kibana
以及ElasticSearch
实现的日志服务。 - mcloud-demo Demo Project
- mcloud-console 基于 ant-design-pro 搭建的系统控制台(因升级
Spring Cloud
版本缘故,此模块暂不可用)。
其他:
- Code Generator 用于 Intellij-IDEA 的代码生成器插件。
- 文档参考:https://www.docs4dev.com
- Spring Boot
2.1.3.RELEASE
- Spring Cloud
Greenwich.RELEASE
- Maven
- JDK 1.8
- ......
-
JDK 1.8 以上
-
IDE 请安装对应IDE的 lombok 插件
-
**注:**在安装完
keycloak
后,需要将mcloud/data
目录下的realm-export.json
导入keycloak
,并手动重置mcloud realm
下的mcloud
客户端的clientSecret
,并将新的clientSecret
填入mcloud-demo
下的application.yml
中。
克隆项目到本地
git clone https://github.com/heyuxian/mcloud.git
因为项目使用配置优先的方式,所以需要先启动 mcloud-config
模块,然后依次启动 mcloud-registry
、mcloud-apigw
,mcloud-demo
。
启动配置中心:
cd mcloud-config
mvn clean install spring-boot:run
启动注册中心:
cd mcloud-registry
#分别在三个终端运行以下命令,用于启动多个注册节点
mvn clean install spring-boot:run -Dspring.profiles.active=peer1
mvn clean install spring-boot:run -Dspring.profiles.active=peer2
mvn clean install spring-boot:run -Dspring.profiles.active=peer3
启动 API 网关:
cd mcloud-apigw
mvn clean install spring-boot:run
启动示例项目:
cd mcloud-demo
mvn clean install
#分别在两个终端运行以下命令,用于启动两个节点
mvn spring-boot:run -Dspring.profiles.active=peer1
mvn spring-boot:run -Dspring.profiles.active=peer2
所有节点都启动完成后,还需要获取 access_token
,之后,我们就可以使用这个 token 来访问我们的 API:
curl --request GET \
--url http://localhost/mcloud-demo/users/me \
--header 'authorization: Bearer ${access_token}' \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--data '{}'
若是对于本项目有任何问题或建议,请提 Issue 。