# micro-service-docker-compose **Repository Path**: Gitee-forks-projects/micro-service-docker-compose ## Basic Information - **Project Name**: micro-service-docker-compose - **Description**: 简单的微服务。
使用python实现发送邮件功能,thrift作为rpc为java端提供服务。
课程模块使用dubbo,进行服务通信。
使用zuul组件统一入口。
使用docker-compose对服务进行编排。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2020-04-21 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 流程图 ![流程图](./micro-service.png) ## 模块说明 1. message-thrift-python-service
使用thrift的方式声明接口。
声明了两种方式,python和java. python版本的实现在 `message_sevice.py`.
java版本的不需要实现.只需要调用 API 接口即可.
端口号为 `9090` 2. message-thrift-message-api
声明JAVA版的接口. 3. user-thrift-service-api
使用thrift的方式声明方法和实体 4. user-thrift-service
完成3声明的方法.从数据库中获取`user`相关信息. 5. user-edge-service-client 过滤请求,没有token的请求都发送到user-edge-service 6. user-edge-service 向外提供REST服务.
使用thrift的方式调用user-thrift-service的方法 7. course-dubbo-service-api dubbo的方式提供公共API 8. course-dubbo-service 完成course-dubbo-service-api的方法,并用service标记,成为dubbo服务提供方 9. course-edge-service 向外提供REST服务,访问course 10. api-gateway-zuul 整个zuul中,为整个项目提供路由功能. ## 需要的基础服务 1. mysql 2. redis 3. zookeeper ## 数据库 ```mysql create database IF NOT EXISTS db_user; USE db_user; CREATE TABLE pe_user ( id int AUTO_INCREMENT PRIMARY KEY, username VARCHAR(32), password VARCHAR(32), real_name VARCHAR(32), mobile VARCHAR(32), email VARCHAR(32) ); CREATE TABLE pe_teacher ( user_id int PRIMARY KEY, intro VARCHAR(32), stars int ); create database IF NOT EXISTS db_course; USE db_course; CREATE TABLE pe_course ( id int AUTO_INCREMENT PRIMARY KEY, String VARCHAR(32), description VARCHAR(32) ); CREATE TABLE pr_user_course ( user_id int, course_id int, PRIMARY KEY(user_id,course_id) ); ``` ## 运行 1. `sh builder-all.sh`.打包所有项目并生成docker镜像 2. `docker-compose -f docker-compose-local.yml up -d` 3. 将`127.0.0.1 www.mooc.com`加入到`/etc/hosts`文件中 4. 使用rest工具`post`方式访问`http://www.mooc.com:8080/user/sendVerifyCode`,参数为`email` `xxx@xxx`.查看邮箱中的验证码 5. 使用rest工具`post`方式访问`http://www.mooc.com:8080/user/register`
参数为:`email xxx@xxx`,`username xxx`,`password xxx`,`verifyCode xxx`
`verifyCode`为上一步接收的验证码 6. 浏览器访问`http://www.mooc.com:8080/user/login`获取`token`值 7. 浏览器访问`http://www.mooc.com:8080/course/courseList?token=31r4gvt2dcha4g52tfxlf55lyfupbt11`
(`token为上一步得到的值`)
结果为课程列表 8. `docker-compose -f docker-compose-local.yml down --rmi all`清理所有镜像 ## 待解决的问题 连续发送验证码,会请求超时.大概连续10次以上,再也连不上了.发送验证码的功能是用python+thrift实现的,不懂.