# microservice-imooc **Repository Path**: goBigg/microservice-imooc ## Basic Information - **Project Name**: microservice-imooc - **Description**: 慕课网-Docker+Kubernetes(k8s)微服务容器化实践 代码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2019-09-23 - **Last Updated**: 2022-09-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 用户服务 - 用户的登录 - 用户注册 - 用户的基本信息查询 无状态,无 session,单点登录 # 课程服务 - 登录验证 - 课程的 curd # 公共信息服务 - 发送邮件 - 发送短信 # 用户 edge Service # 课程 edge Service # API GateWay # 遇到的问题 ## 如果 thrift 服务的抛异常 测试登录的时候,user-edge-service 调用user-thrift-service的getUserByName方法,user-thrift-service端报的是org.springframework.jdbc.BadSqlGrammarException:。 而请求端user-edge-service 报的异常是 java.net.SocketTimeoutException: Rad timed out(org.apache.thrift.TApplicationException: getUserByName failed: unknown result) 如果服务端查询结果为空,edge 也会抛差不多的异常 ``` org.apache.thrift.TApplicationException: getUserByName failed: unknown result at com.imooc.thrift.user.UserService$Client.recv_getUserByName(UserService.java:96) at com.imooc.thrift.user.UserService$Client.getUserByName(UserService.java:79) at com.imooc.user.controller.UserController.login(UserController.java:58) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ```