Skip to content

Latest commit

 

History

History
151 lines (118 loc) · 8.57 KB

README_CN.md

File metadata and controls

151 lines (118 loc) · 8.57 KB

video_spider

English Documentation

使用 Spring Cloud、Istio 和 Kubernetes 构建的一个电商 微服务 项目。

microservices-architecture

模块

  • Chapter00:Docker
  • Chapter01:Restful接口、持久化、SpringDoc OpenAPI
  • Chapter02:异步通信
    • Chapter02-activemq
    • Chapter02-kafka
    • Chapter02-rabbitmq
    • Chapter02-spring-cloud-stream
  • Chapter03:OpenFeign
  • Chapter04:服务发现 Eureka
  • Chapter05:服务网关 Spring Cloud Gateway
  • Chapter06:配置服务 Spring Cloud Config
  • chapter07: 链路追踪 Zipkin
  • chapter08: 监控 Micrometer、Grafana
  • chapter09: 监控 Micrometer、Grafana、Tempo
  • chapter10: 监控 Micrometer、Grafana、Tempo、Loki
  • chapter11:ELK
  • chapter12 认证服务 Spring Security OAuth2
  • Chapter13:监控服务 Spring Boot Admin
  • Chapter14:Kubernetes
  • Chapter15:Istio
  • chapter16: Service Mesh
  • chapter17: Native

技术栈

技术选型 使用版本 最新版本 备注
Java 21 23
Maven 3.9.9 3.9.9
PostgreSQL 17 17
MongoDB 8 8.0.1
Rabbitmq 4 4
Kafka 3.8 3.8
ActiveMQ 6
Kubernetes 1.31
Grafana (Prometheus/Grafana/Loki/Tempo)
ELK 8.5.3
Spring Boot 3.3.4
Spring Boot Admin 3.3.4
Spring Cloud 2023.0.3
SpringDoc OpenAPI 2.6.0

本地开发环境准备

安装软件:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

brew install orbstack
brew install spring-io/tap/spring-boot 
brew install openjdk@21 
brew install maven
brew install jq 
brew install siege 
brew install helm
brew install minikub 
brew install kubectl 
brew install istioctl

echo 'export JAVA_HOME=$(/usr/libexec/java_home -v8)' >> ~/.bash_profile
source ~/.bash_profile

验证版本:

git version && \
docker version -f json | jq -r .Client.Version && \
java -version 2>&1 | grep "openjdk version" && \
mvn -v | grep "Maven" && \
curl --version | grep "curl" | sed 's/(.*//' && \
jq --version && \
spring --version && \
siege --version 2>&1 | grep SIEGE && \
helm version --short && \
kubectl version --client -o json | jq -r .clientVersion.gitVersion && \
minikube version | grep "minikube" && \
istioctl version --remote=false

如何运行

以 Chapter01 为例,进入 microservices 目录,使用 Maven 插件构建镜像

cd Chapter01
cd microservices
mvn -ntp spring-boot:build-image -DskipTests

在某个章节的根目录下使用 docker 启动服务:

cd Chapter01
docker-compose -f docker-compose.yml -f docker-compose-app.yml up -d

使用 K8s 运行服务

使用 Sonar 检测代码质量

先通过 docker-compose.yml 启动本地 Sonar 服务器(可通过http://localhost:9001访问):

注意:我们已经关闭了 sonar.yml 中 UI 的强制身份验证重定向,以便在尝试 SonarQube 时获得开箱即用的体验,对于实际用例,请将其重新打开。

然后,运行 Sonar 分析:

cd microservices
mvn clean verify -DskipTests sonar:sonar -Dsonar.login=admin -Dsonar.password=admin

Sonar 默认的用户名和密码为 admin/admin,如果你修改了密码,请使用新密码。

参考

贡献

非常欢迎提出请求

许可

learn-spring-authorization-server 是在 Apache 2.0 许可 下发布的开源软件 。