SpringCloud 使用全套demo
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
admin-metrics-service
api-gateway
api-getway/src/main/resources
apollo-service
auth-service
common
config-server
config
eureka-server
mq-service
order-service
springcloud-gateway
token-service 尝试去除admin的配置,直接使用eureka注册中心的地址 Jul 8, 2018
user-service-mq
user-service
wiki/img
.gitignore
README.MD
pom.xml

README.MD

工程说明

SpringCloud 研究与学习,内包含Zuul,Eureka,Config,Feign,Ribbon等框架的使用

博客资源

项目内各工程说明

  • common 各服务共通代码
  • config-server 配置中心,作为configserver,端口:9000
  • eureka-server eureka服务工程,端口:8761
  • user-service 用户服务工程
  • auth-service 授权认证服务,用于用户权限校验
  • order-service 订单服务
  • api-getway 网关服务工程,使用Zuul对服务进行分发和权限校验,端口:7000
  • user-service-mq GitChat课程使用的代码,使用基于kafka的日志埋点收集系统

项目结构

服务内部调用是互相信任的,可以直接调用。外部访问要通过网关服务进行转发处理。

使用说明

启动前先安装common工程,进入common工程执行命令:mvn install

  1. 启动配置中心:进入config-server目录执行命令:mvn spring-boot:run
  2. 启动服务中心:eureka-server目录执行命令:mvn spring-boot:run
  3. 启动用户服务:user-service目录执行命令:mvn spring-boot:run
  4. 启动订单服务:order-service目录执行命令:mvn spring-boot:run
  5. 启动授权服务:auth-service目录执行命令:mvn spring-boot:run
  6. 启动网关服务:api-gateway目录执行命令:mvn spring-boot:run

步骤1,2需要严格按照顺序启动,步骤1启动成功后才可以继续启动步骤2。步骤2启动成功后,3-6的服务可以同时启动

步骤2启动成功后,访问http://localhost:8761/ 即可查看到启动的服务,全都启动成功后即可以进行后续的测试。

Api网关说明

  • 页面启动后访问:http://localhost:8761/ 即可查看eureka服务有多少个已经注册成功

  • 网关直接调用用户和订单服务,访问地址:http://192.168.1.183:7000/biz/zuul

  • 用户登录,转发到用户登录接口,返回状态码和token信息,由于token信息是在用户服务中使用的。所以对外使用时在网关层使用JWT加密,防止信息篡改和权限校验。直接调用登录接口: 通过网关调用登录接口,返回的token是通过JWT加密的

使用docker部署

先配置好docker环境,从cmd进入执行docker images 命令运行正常, 到工程中,执行;mvn package docker:build,执行docker images可以看到生成的镜像, 运行:docker run -p 8081:8081 -t springcloud/${工程名字}

概论

通常来说,微服务之间的通信是通过内网来的,与外部连接是通过网关来转发的。 所以基本上对外开放的工程都集成在api-getway工程上。通过网关服务,对其他服务调用前可以进行基本的权限校验和数据拦截

TODO

  • 整合阿波罗配置中心
  • 添加hystrix dashboard
  • 添加网关流量监控,ip限定,QPS输出