大型网站系统与java中间件实践--笔记

曾宪杰---大型网站系统与java中间件实践,笔记

2应用分布式

        1,负载均衡

        2,解决集群后的session问题。禁用cookie。

        3,拆分应用:服务化SOA,使用消息中间件。

        

数据读写分布式

        1,主从读写库

        2,搜索引擎是个读库。

        3,加速数据读取--缓存。

        4,数据过大:业务垂直拆分,单表水平拆分。拆分后的路由问题,分页查询。        

        

4,服务框架的设计与实现。

        集中式-->分布式

        服务的调用时的路由选择(众多服务ip中选哪个。方法提供版本号)。

        服务化后的jar爆炸,及jar版本冲突。自定义classLoader,把服务框架自身用的类,和应用用的类控制在user-DefinedClassLoader级别。实现隔离。tomcat,OSGI的bundle。

                osgi应用及实践。

        服务框架需要优先启动。                

        

5,数据访问层

        分布式后的事务方案:

                1,分布式事务XA,两段提交,太重。

                2,最终一致原则。

                一致性理论:CAP

                        consistency 数据一致性,所有节点在同一时间读到的数据一样。

                        Availability 数据可用性,无论成功或失败,每个请求都能收到反馈。

                        Partition-Tolerance 分区容忍性,部分出问题,系统仍能继续工作。

                分布式中,不能同时满足CAP,

                        CA:单机数据库的选择。

                        AP:NoSQL

                分布式中一般会选择AP,然后尽量满足C-最终一致。

                

        访问层方案:

                1,代理/装饰JDBC,类似DBCP连接池的方式。设计模式体会?        

                2,封装ORM层

                

        一致性hash?????????

        

6,消息中间件

        解耦:登陆后立刻返回。短信,安全等交给中间件处理。                

        发送消息的一致性?

        JMS Queue模型,公用一个队列,一个消息只会被收到一次。

        JMS Topic模型,一个消息被收到N次。

        消息订阅者方式。

        消息可靠性:消息存储。

        

        

核心问题:

        数据计算,

        数据存储(读写),倒排索引。

                

相关推荐