Kamafeel

求其上,得其中;求其中,得其下,求其下,必败


  • 首页

  • 归档

spring cloud gateway限流

发表于 2022-03-09 | 分类于 微服务 , 理论

限流算法

令牌,漏桶,滑动窗

实现机制

核心还是实现Filter接口
官方已经自带redis限流(lua实现),单机限流。

参考

https://www.cnblogs.com/javastack/p/15337244.html

K8S组件-ingress

发表于 2022-03-09 | 分类于 K8S

核心价值

集群内部,对外的统一出口
可以做路由,限流,负载均衡等

参考

基本概念
https://kubernetes.io/zh/docs/concepts/services-networking/ingress/

限流配置:
https://www.modb.pro/db/214722

特别注意

不要轻易改nginx ingress的yaml,将出发 nginx reload,导致长链接故障

可选 ingress

Apache APISIX ingress controller
nginx ingress controller

K8S组件-API Server

发表于 2022-03-09 | 分类于 K8S

核心作用

K8S对外接口,响应声明等一切交互。

限流

一般不需要,此API一般内网访问
https://qingwave.github.io/k8s-rate-limit/#%E8%83%8C%E6%99%AF

参考

https://www.huweihuang.com/article/kubernetes/core-principle/kubernetes-core-principle-api-server/

大数据分析产品架构

发表于 2022-03-08 | 分类于 架构 , 产品

大数据组件

大数据相关组件更新快,技术栈变化快。但最终都会落地到SQL。

alt

https://bigdata.djbook.top/

3种产品模式

1.各类数据处理由各类数据库完成。
数据传输通过hdfs或者对象存储,数据转换通过datax,清洗,加工任由数据库编写SQL完成。

2.深度绑定spark,flink
作为批处理和流处理的,计算引擎。数据交互通过spark组件,flink组件。

3.星环,WeDataSphere之类
在大数据层中间,加上一层,上层统一SQL开发,屏蔽底层细节。

优缺点

1.技术栈能力低,能满足大数据初级用户。产品不能形成门槛。

2.需要针对spark,flink深度绑定,开发人员昂贵,一荣俱荣模式。

3.产品门槛高,需要对大数据组件深度二次开发,引入中间层增加复杂度。

nginx负载均衡案例

发表于 2022-03-07 | 分类于 中间件 , nginx

负载均衡 注重点

非80端口做反向代理

需要特别注意:proxy_set_header Host $host:$server_port;

nginx接收到浏览器请求后修改请求头中的host信息,然后再把请求转发给后端真实服务节点,服务节点响应后把返回信息传送给nginx,而由于nginx是使用的非80端口做代理,后端服务节点却依然以为nginx是80端口,所以响应信息没有正确的返回给nginx的非80端口。

负载均衡 策略

p_hash 会尽量保障Session的统一性

https://www.cnblogs.com/yanggb/p/10895326.html

参考代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

upstream tomcat_server {
ip_hash;
server 192.168.30.199:8080 max_fails=3 fail_timeout=40s;
server 192.168.30.199:18080;
}

map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}

server {
listen 81;
server_name pdi.pk;
client_max_body_size 500M;

location /pdi {
proxy_pass http://tomcat_server;
proxy_set_header Host $host:$server_port;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}

}


websocket

https://www.xncoding.com/2018/03/12/fullstack/nginx-websocket.html

负载均衡 重试策略 陷阱

重试策略涉及核心流量转发,配置不当可出现以下(不限):

1.订单重复提交
2.恶意攻击导致no live upstreams
3.业务正常耗时被当成超时

https://zhuanlan.zhihu.com/p/127959800

其余参考

https://developer.51cto.com/article/619538.html

读写分离几种实现方式

发表于 2022-03-04

java内存过高分析

发表于 2022-03-03

步骤如下

1.top >> 观察占用CPU或者MEN(内存)使用情况最高的进程,记录PID;

2.top -p PID >> 观察该PID对应进程的占用情况,
shift + h >> 开启线程显示,观察CPU/Men占用较高的线程有哪些,记录对应TID;

3.jstack PID > jstack.txt >> 查看该线程的堆栈信息

4.printf “%x\n” TID >> 将线程对应PID转为 16进制数(TID16);

5.cat jstack.txt | grep TID16 >> 查看当前占用内存高的线程具体在做什么操作,分析原因

6.jmap -histo:live PID >> 查看当前堆内存中存在哪些存活对象

  1. jstat -gcutil PID 1000 3 >> 查看gc情况

docker-compose使用

发表于 2022-03-03 | 分类于 Docker

使命

单机多docker配合部署
比如kafka(2.8-)的安装等

安装

https://docs.docker.com/compose/install/

详细运用

https://www.runoob.com/docker/docker-compose.html

建议

K8S本身会占用比较多资源,如果没有相关运维能力,建议docker-compose部署(资源占用少)

kafka架构

发表于 2022-03-01 | 分类于 中间件 , Kafka

核心概念

1.分区是提高 topic 读写负载
2.0拷贝(客户端和服务端版本差异会导致非0拷贝,增加时间戳)
3.全局时序性,只能一生产,一分区,一消费

4.Kafka最好部署集群,避免丢消息,topic至少2个副本

参考

https://toutiao.io/posts/10w4j9c/preview

https://developer.51cto.com/article/687362.html

maven仓库mirror与repositories关系

发表于 2022-02-23 | 分类于 maven

获取镜像链路

1.pom.xml里的repository集合–>settings.xml里找mirrors
2.if(repository的id和mirror的mirrorOf的值相同) –>该mirror替代该repository
3.else 使用其本身

bwt:repositories中默认包含了中央仓库central

alt

mirrorOf类型含义

mirrorOf规则 作用
* 匹配所有,所有内容都从镜像拉取
external:* 除了本地缓存的所有从镜像仓库拉取
central 覆盖默认的仓库
repo1,repo2 匹配仓库repo1和repo2,使用逗号分割多个远程仓库
1234…21

Kamafeel

204 日志
57 分类
129 标签
© 2022 Kamafeel
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Pisces v7.1.2