微服务架构:
Eureka 注册与发现
Actuator 监控
TrestTemplate 服务器远程调用
Ribbon 负载均衡
OpenFeigh 声明式服务调用
Hystrix 熔断,降级,资源隔离
HystrixDashboard
Zuul 网关
Config 配置中心
Sleuth zipkin 链路追踪
流量介入层
域名服务
动态DNS:把一个域名分布到多个IP,多个机房,去本地的load balancer
分流,延迟降低,容灾
HttpDns:
传统DNS是UDP协议(不可靠,数据更新不及时,tree structure 域名机构太庞大,不安全被劫持),而HttpDns是HTTP,不适合浏览器,适合 mobile app,HTTP 协议接口,参数 = 域名
硬防:防止DDoS之类的,买硬件就好
LVS:part of Linux
LVS:Linux 虚拟机、流量调度,负载均衡
单向的 End user -----> LVS -----> tomcat -----> end user,适合IO密集型
nginx:高性能代理服务器,系统内部流量分发,反向代理
有来回 End user -----> nginx-----> tomcat -----> nginx-----> end user
计算密集型服务:加机器
IO型:扩带宽(比如视屏文件)
有多个LVS
Keepalived:IP漂移
流量网关层
Nginx, Tomcat, Apache Httpd, IIS
LVS不认识后面是谁,需要路由层(网关层组件),硬防是保安,lvs是接待,Nginx是大堂经理
路由
流量清洗,防止 SQL injection, XSS, CSRF(网络爬虫),软防
流量网关是双向的,网络IO
需要集群
服务网关,需要集群
Zuul, Spring Gateway
服务路由
权限校验
权限
Shiro -> CA server
Spring Security
OAuth2 -> OpenID 我提供的服务,通过你的授权,给第三方的服务用
JWT:会话无状态
初次登录:用户初次登录,输入用户名密码
密码验证:服务器从数据库取出用户名和密码进行验证
生成JWT:服务器端验证通过,根据从数据库返回的信息,以及预设规则,生成JWT
返还JWT:服务器的HTTP RESPONSE中将JWT返还
带JWT的请求:以后客户端发起请求,HTTP REQUEST HEADER中的Authorization字段都要有值,为JWT
JWT token 自带权限信息
权限信息:role + rule (更细腻)
服务网关+服务controller 用 Eureka 来服务注册
微服务
服务controller
No comments:
Post a Comment