中间件实战
2015-11-20 15:16:03 0 举报
AI智能生成
登录查看完整内容
2015-11-30日 大型网站系统与java中间件 思维导图
作者其他创作
大纲/内容
大型中间件实战
5.数据访问层
单机数据库到分布式数据库的挑战和应对
数据库垂直分割/水平拆分的困难
单机到多机的事务处理
两阶段提交
CAP
BASE
paxos协议
一致性算法
多级的Sequence处理
多机的数据查询
跨库join
1.把join操作分成多次的数据库操作
2.数据冗余
3.借助外部系统解决一些跨库问题
外键约束
1.应用层判断,容错方式
2.每个单库的数据是内聚的
跨库查询的问题及解决
数据访问层的设计与实现
对外提供数据访问层的方式
1.专有API
2.通用的方式,jdbc
3.基于ORM或者类ORM接口的方式
按照数据层流程的顺序看数据层设计
规则处理阶段
改写sql
如何选择数据源
执行sql和结果处理阶段
实践经验分享
1.复杂的连接管理
三层数据源的支持和选择
独立部署的数据访问层实现方式
读写分离的挑战和应对
1.主从复制场景
2.主备库分库方式不同的数据复制
3.引入数据变更平台
数据平滑迁移
被延迟的任务
暂停的任务
进行中的任务
6.消息中间件
应用解耦
传统做法
引入消息中间件
消息中间件
JMS
消息发送一致性
JMS方法
如何解决消息中间件与使用者的强依赖问题
消息模型对消息接受的影响
JMSQueue
JMS Topic
JMS客户端连接处理和带来的限制
所需消息模型
消息订阅者订阅消息的方式
保证消息可靠性的做法
消息发送端可靠性保证
消息存储的可靠性保证
实现基于文件的消息存储
采用数据库作为消息存储
基于双机内存的消息存储
7.软件负载中心与集中配置管理
8构建大型网站的其他要素
分支主题
文案与场景及平面设计A
场景及平面设计
两机
两台机器
应用(一台)
服务器(与应用同一台)
数据库一台
多机
>=3台机器
应用一台
服务器多台
数据库多台
ji
引入负载均衡
多台服务器产生session问题
单台服务器
标准请求
多台服务器
产生session问题
1.session stickey
2.session replication
3.session集中存储
4.cookies保存session
数据库压力变大
读写分离
读
增加一个读库
解决方案
数据缓存
页面缓存
分布式存储系统
写
队列->批量写入
数据库遇到的另一个瓶颈
垂直拆分
水平拆分
应用之间交流信息
java并发编程
构建java中间件的基础知识
JVM
线程池
锁
Sychronized
ReentrantLock
原子性(Atomitic)
CountDownLatch
CyclicBarrier
Semaphore
Exchanger
并发容器
Future和FutureTask
volatile
动态代理
反射
网络通信选择
Mina
Netty
分布式系统中的java中间件
4.服务框架
服务框架的设计与实现
服务框架原型
单机方式
实现远程服务调用客户端
实现服务端
服务调用端的设计与实现
运行期服务框架与应用和容器的关系
服务调用者与服务提供者之间的通信方式
引用接口、方法、参数的路由
多机房场景
服务调用端的流控处理
序列化与反序列化处理
网络通信的选择
支持多种异步服务调用方式
服务提供端的设计与实现
暴露远程服务
对请求处理流程
不同服务线程池隔离
服务提供端的流控处理
服务升级
实战中的优化
拆分的服务必须是公用的
服务放在服务调用者机器上会更加合适,经济
使用缓存来环境数据库压力
为服务化护航的服务治理
服务框架与ESB对比
总结
故障处理
缺乏全局时钟
单点故障
故障独立性
事务的挑战
0 条评论
回复 删除
下一页