分布式知识图谱
2019-03-14 15:39:36 3 举报
AI智能生成
登录查看完整内容
Java分布式知识图谱
作者其他创作
大纲/内容
消息队列
kafka
activeMQ
分布式服务调用
Dubbo
rpc
注册中心
zk选举算法
协议
netty
服务重名
使用group解决
超时
SpringCloud
Eureka/Consul/Etcd/Zk
Feign
zuul
Hystrix
Distribute
分布式事务
解决方案
组件
Fescar
rocketMQ
二段/三段提交
多 prepare -> commit
补偿式事务TCC
开发成本高,每个事务操作每个参与者都需要实现try/confirm/cancel三个接口。
本地消息表(异步确保)
将业务消息维护到本地消息表里,将分布式事务拆分成本地事务进行处理
消费方本地处理失败了会重试,如果是业务失败发送补偿信息给生产方,通知其回滚
MQ 事务消息
1、A服务提交消息到MQ,对B不可见
2、A服务执行完事务将,告诉MQ确认刚才的消息,对B可见
3、B服务执行完事务,告诉MQ确认完成,如果失败,告诉MQ失败,A收到失败消息回退操作
Sagas 事务模型
它将大事务拆分本地小事务,有个事务成功链,失败了回调补偿链
CAP理论
一致性(Consistency):
可用性(Availability):
分区容忍性(PartitionTolerance):
BASE理论
Basically Available(基本可用)
Soft state(软状态)
Eventually consistent(最终一致性)
分布式存储
ES
底层为Lucene
大数据量查询使用Scroll API
JVM配置 不大于32G
缓存
redis
分布式锁
setNX,set if not exits
设置锁的过期时间,防止程序崩溃获取不到锁
由于程序崩溃(或者执行时间超长),导致的锁失效问题可以用守护线程延长锁等待时间
需要有一个公共守护新阿西,如果锁超时5分钟的异常情况,进行告警
删除掉锁的时候,利用发布订阅解决频繁的锁竞争问题
RedisCallBack异步执行
程序内部还得加锁,因为程序内部是多线程调用的
String、List、Hash、Set、SortedSet、pipepline
分页
redis工作原理,在线扩容,哨兵机制
一致性hash算法
es、hadoop,redis(65535个虚拟节点)
缓存雪崩后,大流量进入数据库
方法上锁,只有某一个用户能调用该方法(其它用户阻塞或返回错误),将缓存补全后,恢复服务
数据库
MySQL
ShardlingJDBC
MyCat
动态扩容问题
hbase
hdfs
文件服务
FastDFS
TFS
高可用
限流
Guava RateLimiter/ Sentiniel
容灾
监控
zabbix
负载均衡
LVS
在四层(传输层)将http地址直接修改,少了nginx的拆包解包,request header,cookie等操作。
nginx
cpu 进程数 worker_cpu_affinity
并发连接数 worker_connections
硬件设备
F5
DDOS防护
DNS 负载均衡
一个域名每次返回不同的地址,达到负载均衡的效果
收藏
收藏
0 条评论
回复 删除
下一页