程序员必点技能

122 阅读2分钟

多了解下面中间件产品的用法,在用法之上去了解它的原理

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存储