Monday, July 13, 2020

Micro service + How to handle HF

微服务架构:


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是大堂经理

  1. 路由

  2. 流量清洗,防止 SQL injection, XSS, CSRF(网络爬虫),软防

流量网关是双向的,网络IO

需要集群



服务网关,需要集群

Zuul, Spring Gateway

  1. 服务路由

  2. 权限校验


权限

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

Most Recent Posts