多了解下面中间件产品的用法,在用法之上去了解它的原理
1.负载均衡
基于DNS
- 智能DNS,负载均衡策略
- Azure traffic Manager
- 查到服务器地址后和服务器直连,不再经过dns,性能较好
基于CDN
- 动态内容加速
- 安防,waf
- 可以根据延迟来选择就近的服务,适合出海业务
- Azure fronted door
基于四层负载
- lvs
- f5
基于七层负载
- nginx
- openresty
2.网关
- nginx(单体项目)
- zuul,kong(微服务)
- ingress(k8s)
3.CI/CD
CI
- trigger
- 包的形式:image,jar,war
- 二方包打包规则
CD
- trigger
- runtime:vm,k8s,app service(pass),servless(sass)
- 灰度:金丝雀,蓝绿,ABTest(功能性)
- 流量接入规则:ip,userId,流量百分比
- private dns/public dns规则
4.架构风格
- 单体架构
- soa(很少很少)
- 微服务架构(这里包含了一整套的解决方案,服务注册发现,rpc,服务治理等等)
- 解决方案
- springcloud netfix
- springcloud alibaba
- k8s
- 解决方案
- service mesh
- 解决方案
- istio
- 解决方案
5.中间件
消息队列
- rabbit mq
- kafka
- rocket mq
- 云产品:Azure event hub,Azure service bus
缓存
- redis
- memcache
- 基于内存的二级缓存
任务调度
- xxl job
- elastic job
配置
- apollo
- nacos
- 云产品:Azure configuration
6.sql
olap
- hive
- 云产品:Azure Synapse Analytics
oltp
- sql
- mysql
- oracle
- no sql
- mongo
- es
- new sql
- spanner
- tidb
7.troubleshooting三剑客
log
- 采集->传输->存储->查询
- 常见解决方案:
- filebeat->kfk->logstash->es
- 云产品,syslog(阿里云),Log Analytics workspaces(Azure)
trace
trace的重点在于怎么和日志串起来,其实实现一个trace并不复杂,现在很多trace服务提供了apm功能,这种除非买商业的软件,不然用户体验非常差
- trace,span
- 常见解决方案
- pinpoint
- skywalking
monitor(时序)
- 监控对象
- 基础设施
- cpu
- memory
- io
- 应用
- http requests code
- http lantency
- jvm
- 自定义mertic
- 基础设施
- 解决方案:
- prometheus
- 云产品,appinsight(Azure)
alert
重点在于如何创建alert
- 基于日志
- 基于mertic
8.常见解决方案:
identity(user and system)
- authencation(Oauth)
- authorization(rbac)
order
- multi-level
- order
- item
- list
- price
- order price
- item price
- list price
- shiping
- barcode
- delivery
- ...
9.安全
存储:
- 密钥存储
- 证书存储
- private/public key存储