API网关 Gateway
- 类似于设计模式中的Facade模式
- 微服务系统中的正门
- 微服务的重要组成部分
常见作用
- 身份验证和安全 JSON Web Token(JWT)
- 审查和检测
- 动态路由
- 压力测试
- 负载均衡
- 静态相应处理
业务总结
必须先启动服务提供者,否则会报错
启动检查:服务启动过程中验证服务提供者的可用性,如果验证出现问题,则阻止整个spring容器的初始化,还有个好处就是服务启动检查可以尽可能早的发现服务问题
check = false
如果我们将用户模块部署多台,消费者会如何访问
Dubbo负载均衡
Protocol
Dubbo支持多协议
最常见dubbo
RMI、Hessian、Http、Redis、Memerycached
网关gateway逻辑处理
外部服务请求的入口
1、使用ThreadLocal进行用户的id存储,配合jwt进行用户校验
public class CurrentUser {
// 线程绑定的存储空间
private static final ThreadLocal<String> threadlocal = new ThreadLocal<>();
// 将用户信息放入存储空间
public static void saveUserId(String userId) {
threadlocal.set(userId);
}
// 将用户信息取出
public static String getCurrentUserId() {
return threadlocal.get();
}
/* 考虑到jvm内存大小 存储对象过多 使用存储id */
// public static void saveUserInfo(UserInfoModel userInfoModel) {
// threadlocal.set(userInfoModel);
// }
// 将用户信息取出
// public static UserInfoModel getCurrentUser() {
// return threadlocal.get();
// }
}
@RequestMapping(value = "${jwt.auth-path}")
public ResponseVO createAuthenticationToken(AuthRequ