微服务 —— 网络直播课笔记

微服务:

A ————> B
soap   xml
http    JSON
webservice强依赖

微 -> 很渺小,不重要
          无依赖,可插拔

不主动,不拒绝,不负责——>微服务


                          负载均衡               B
客户端-->    A————————>   B
                     ——>降级,凑合       B

菜单服务,以前是返回null,返回500,timeout,微服务里提供服务降级,本地有一个基本菜单,兜底数据,正常数据没有了有兜底数据,A提供兜底数据

QPS单纯的query=静态    TPS=事务

用户 ——>ip——>html
        ——>加载静态资源,不在一台服务器上,另外一个机房,动静分离,QPS
        ——>动态服务,查服务器几点了,服务器状态,1+1=?,TPS=transaction,事务相关

nginx集群流量网关服务(瓶颈在于IO,高可用,解决IO瓶颈,没有会话效率高):waf,定向流量分发,负载均衡策略,kona,Openrestv(Nginx + Lua)
有多少无效流量,屏蔽无效流量:爬虫(搜索引擎来爬东西每隔几分钟就爬一次,全部内容爬过去,京东的流量60%以上流量都是爬虫),攻击(SQL注入),频控(频繁刷新,人肉攻击),CC ddos(通过TCP三次握手四次分手,建立无限多握手,不回应,硬件防火墙+扩带宽)
做架构师必须得动脑子
nginx网关,客户到服务的中间服务生,就是网关
网关:对服务   向外暴露
          拦截非法请求
反向代理,负载均衡策略,LB
用java实现服务生网关使用filter拦截用户请求,url截取http://xxxxx.com/abc.action
abc.action     1:ip,port\2:ip,port\3:ip,port号机上

网关调服务http,rpc

业务网关:
权限系统与单点登录:
SpringCloud Security oauth2 ——>基于security+oauth2的安全认证
JWT ——>带有用户信息的token
CAS token = sessionid——>完整的sso服务器

SpringCloud Gateway集成
Netflix Zuul集成 ——>优化

session存在服务器端,有状态,性能低
token不存在服务器端,无状态,高性能
通过水平扩容

拦截,失败,缓存,能做的多靠前就做多靠前,注定失败的早拦截

动态DNS解析=客户端的负载均衡——>10个10万级的lvs——>后端提供服务

服务治理
1,服务注册中心(Eureka多,zookeeper,Alibaba Nacos, HashiCorp consul):通知
2,SpringCloud Admin 服务监控:非正常下线,报警,通知,邮件,钉钉。。。
3,所有的微服务里都有一个Actuator(SpringBoot服务 Service) 

没有网关的服务:
最小模型
A——>微服务——>B
现在的工资 + 每个500*个数 = ?

微服务A
SpringCloud Sercurity RBAC
基于Servlet的SpringMVC
Spring Reactive Web webflux netty ——>内置的服务器是netty,而不是tomcat

服务列表
远程服务同步调用(SpringCloud OpenFeign-面向接口编程,Netflix Feign,rest)——客户端的负载均衡——断路器(Netflix hvstrix 熔断降级)

View渲染
ThvmeLeaf——Enjoy

你可能感兴趣的:(java)