J2EE分布式框架应用

1、概述

分布式:一个业务分拆多个子业务,部署在不同的服务器上,这样的话服务与服务之间更好的按照职责和功能划区分,都做自己擅长的部分,使得源有更好的分配

分布式系统:多个能独立运行的计算机(称为结点)组成。各个结点利用计算机网络进行信息传递,从而实现共同的目标或者任务

J2EE应用常用架构以及分布式框架的特点等:

1、原始版

            

特点:

(1)单节点

(2)几乎无容灾:只有一台机器,出现问题服务器挂了,只能重启

(3)负载能力低:承受不要压力

(4)维护简单


2、动静分离版


特点:

(1)Nginx 访问静态资源

(2)Nginx 实现负载均衡

(3)应用分离:和Js、HTML、资源图片等分离

(4)依赖框架:通过开发框架来减少开发时间、成本等等。。。

(5)Session 持久化问题:因为应用不在同一机器


3、缓存版



特点:

(1)大量使用缓存:key/value结构简单易用,效率高速度高,来达到提升服务的性能。

    列如:

    (1)先到缓存数据里查询没有结果在去数据库里去查询,并写入到缓存数据库中

    (2)Nginx接收Https请求,再将Https 请求转换成Http 请求,提高了安全性。

    (3)Session持久化:将Session存入缓存数据库中进行持久化,可以解决负载均衡Session丢失等问题

    (4)一致性问题 :缓存数据库没有和数据库同步,导致数据没有及时更新。

    (5)缓存失效问题

4、分布式服务


5、弹性计算

6、常见服务治理方式




高并发系统的设计需要注意一下几点:

尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。

用jprofiler等工具找出性能瓶颈,减少额外的开销。

优化数据库查询语句,减少直接使用hibernate等工具的直接生成语句(仅耗时较长的查询做优化)。

优化数据库结构,多做索引,提高查询效率。

统计的功能尽量做缓存,或按每天一统计或定时统计相关报表,避免需要时进行统计的功能。

能使用静态页面的地方尽量使用,减少容器的解析(尽量将动态内容生成静态html来显示)。

解决以上问题后,使用服务器集群来解决单台的瓶颈问题。

基本上以上述问题解决后,达到系统最优。




猜你喜欢

转载自blog.csdn.net/izipfnybwr/article/details/81017973