JHipster 微服务示例
使用 JHipster 创建的微服务架构。 将 Spring Cloud、Spring Boot、Angular 和 MongoDB 用于简单的博客/商店应用程序。
请阅读 使用 JHipster 开发和部署微服务以了解如何创建此示例。
先决条件: Java 8, Node.js 6.11, Yarn, 和 Docker.
注意:如果您不在 Mac 或 Windows 上,则可能还需要安装 Docker Compose。
Okta 具有身份验证和用户管理 API,可通过即时、可扩展的用户基础结构缩短开发时间。 Okta 直观的 API 和专家支持使开发人员可以轻松地验证,管理和保护任何应用程序中的用户和角色。
入门
要安装此示例应用程序,请运行以下命令:
git clone https://github.com/oktadeveloper/jhipster-microservices-example.git cd jhipster-microservices-example
- 通过在注册表目录中运行
./mvnw -Pprod
来启动注册表。 - 在
Blog
目录中安装依赖项,构建 UI,然后运行 Spring Boot 应用程序。yarn ./mvnw
- 使用
store
目录中的 Docker Compose 启动 MongoDB。docker-compose -f src/main/docker/mongodb.yml up
- 在
store
目录中安装依赖项,构建 UI,然后运行 Spring Boot 应用程序。yarn ./mvnw
用 Docker Compose 运行
如果您不想使用 Maven 手动启动应用程序,则可以使用 Docker Compose 启动所有程序。
- 确保 Docker 正在运行。
- 通过在两个目录中运行以下命令,为
blog
andstore
应用构建 Docker 映像。./mvnw package -Pprod docker:build
- 打开一个终端,导航到该项目的
docker
目录,然后运行以下命令。如果您的计算机上有大量 RAM,则可能需要调整 Docker 的默认设置(2 GB)。docker-compose up -d
提示:如果要查看当前窗口中所有容器的日志,请从上面命令的末尾 Remove-d
。 - 使用 Kitematic 查看已部署服务的端口和日志。
要在 JHipster Console 的图表中创建活动(activity),请在 blog 和 store 项目中运行 Gatling 测试。
./mvnw gatling:execute
要删除所有 Docker 容器,请运行以下命令或使用 Kitematic 手动执行。
docker stop $(docker ps -a -q) docker rm $(docker ps -a -q)
要查找 macOS 上正在运行的端口,请使用 sudo lsof -i :9092 #检查端口 9092。
与 Kubernetes 和 Minikube 一起运行
- 安装 kubectl, VirtualBox, and Minikube.
- 用
minikube start
启动 Minikube。 - 为了能够使用 docker 守护程序,请确保 Docker 正在运行,然后在终端中运行以下命令:
eval $(minikube docker-env)
- 生成
blog
和store
应用的 Docker 映像。./mvnw package -Pprod docker:build
- 导航到终端中的
kubernetes
目录,然后重新生成文件,使它们与您的 Docker 存储库名称匹配。jhipster kubernetes
按照说明标记和推送 Docker 映像。docker image tag blog {yourRepoName}/blog docker push {yourRepoName}/blog docker image tag store {yourRepoName}/store docker push {yourRepoName}/store
- 使用
kubectl
部署到 Minikube。kubectl apply -f registry kubectl apply -f blog kubectl apply -f store
部署过程可能需要几分钟才能完成。 运行minikube dashboard
以查看已部署的容器。 您还可以运行kubectl get po -o wide --watch
查看每个 pod 的状态。 - 运行
minikube service blog
以查看博客应用程序。您应该能够登录并添加博客、条目和产品。
要删除所有已部署的容器,请运行以下命令:
kubectl delete deployment --all
要停止 Minikube,请运行 minikube stop。
注意:如果您运行 minikube delete 并在以后运行 minikube start 时遇到问题,请运行 rm -rf ~/.minikube。有关更多信息,请参见此问题。
谷歌云(Google Cloud)
- 通过 console.cloud.google.com 创建一个 Google Cloud 项目。
- 导航到 https://console.cloud.google.com/kubernetes/list 初始化项目的容器引擎。
- 使用以下方法安装 Google Cloud SDK 并设置项目:
gcloud config set project <project-name>
- 创建一个集群:
gcloud container clusters create <cluster-name> --machine-type=n1-standard-2 --scopes cloud-platform --zone us-west1-a
要查看可能的 zones,运行gcloud compute zones list
。 - 推送
blog
和store
并将 Docker 映像到Docker Hub。您将需要创建一个帐户并运行 docker login 来推送您的映像。映像可以从任何目录运行。docker image tag blog mraible/blog docker push mraible/blog docker image tag store mraible/store docker push mraible/store
- 运行
kubectl
命令进行部署。kubectl apply -f registry kubectl apply -f blog kubectl apply -f store
- 使用端口转发在本地查看注册表应用程序。
kubectl port-forward jhipster-registry-0 8761:8761
- 运行
kubectl svc blog
察看 Google Cloud 上的 blog 应用。 - 使用
kubectl
根据需要扩展微服务应用程序:kubectl scale --replicas=3 deployment/store
要观看此过程的截屏视频,请观看此 YouTube 视频。
AWS
如果您知道如何将此架构部署到 AWS,我很想听听它!我“气愤地尝试过”,但最终还是失败了。但最终失败了。
链接
这个例子使用了 JHipster 和一个很棒的项目,它允许您使用 Spring Boot 生成微服务架构。 有关使用 OAuth 和 Okta 的示例,请参见使用 OAuth 2.0 和 JHipster 开发微服务架构。
帮助
请在博客文章中发表任何问题作为评论,或访问我们的 Okta 开发者论坛。如果要创建支持工单,也可以发送电子邮件至 developers@okta.com。
许可
Apache 2.0,请参阅 LICENSE。
(The first version translated by vz on 2020.08.08)