如何提高java服务器并发性能

参考连接:https://blog.csdn.net/yilijun246437/article/details/103044421java

若有侵权请告知删除nginx

 

给你们分享一下提升java服务器并发性能的经常使用架构策略。spring

一.针对网络层建议使用keepalive+nginx浏览器

一、负载均衡解释安全

负载均衡 创建在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增长吞吐量、增强网络数据处理能力、提升网络的灵活性和可用性。
负载均衡,英文名称为Load Balance,其意思就是分摊到多个操做单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工做任务。服务器

二、经常使用的负载均衡种类网络

(1)、HTTP重定向
HTTP 重定向能够将 HTTP 请求进行转移,在 Web 开发中咱们常常会用它来完成自动跳转,好比用户登陆成功后跳转到相应的管理页面。 这种重定向彻底由HTTP 定义,而且由HTTP 代理和Web 服务器共同实现。很简单,当HTTP 代理(好比浏览器)向Web服务器请求某个URL后,Web 服务器能够经过HTTP 响应头信息中的Location 标记来返回一个新的URL,这意味着HTTP代理须要继续请求这个新的URL ,这便完成了自动跳转。固然,若是你本身写了一个 HTTP 代理,也能够不支持重定向,也就是对于Web 服务器返回的Location 标记视而不见,虽然这可能不符合HTTP 标准,但这彻底取决于你的应用须要。 也正是由于HTTP 重定向具有了请求转移和自动跳转的本领,因此除了知足应用程序须要的各类自动跳转以外,它还能够用于实现负载均衡,以达到Web 扩展的目的。架构

(2)、DNS负载均衡
DNS负责提供域名解析服务,当咱们访问某个站点时,实际上首先须要经过该站点域名的DNS服务器来获取域名指向的IP 地址,在这一过程当中,DNS服务器完成了域名到IP 地址的映射,一样,这种映射也能够是一对多的,这时候,DNS 服务器便充当了负载均衡调度器(也称均衡器),它就像前面提到的重定向转移策略同样,将用户的请求分散到多台服务器上,可是它的实现机制彻底不一样。并发

(3)、反向代理负载均衡
反向代理服务器的核心工做即是转发 HTTP 请求,所以它工做在 HTTP 层面,也就是 TCP 七层结构中的应用层(第七层),因此基于反向代理的负载均衡也称为七层负载均衡,实现它并不困难,目前几乎全部主流的 Web 服务器都热衷于支持基于反向代理的负载均衡。

(4)、IP负载均衡
事实上,在数据链路层(第二层)、网络层(第三层)以及传输层(四层)均可以实现不一样机制的负载均衡,但有所不一样的是,这些负载均衡调度器的工做必须由Linux 内核来完成,由于咱们但愿网络数据包在从内核缓冲区进入进程用户地址空间以前,尽早地被转发到其余实际服务器上,没错,Linux 内核固然能够办获得,位于内核的Netfilter和IPVS能够解决问题,而用户空间的应用程序对此却一筹莫展。 另外一方面,也正是由于能够将调度器工做在应用层如下,这些负载均衡系统能够支持更多的网络服务协议,好比FTP 、SMTP 、DNS ,以及流媒体和VoIP 等应用。负载均衡

二.针对服务器架构层,目前分布式服务架构比较流行,像dubbo,springclould等,这里只介绍dubbo
1. Dubbo是什么?
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,若是没有分布式的需求,实际上是不须要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,而且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册)
2. 其核心部分包含:
(1). 远程通信: 提供对多种基于长链接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。
(2). 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
(3). 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方能够平滑增长或减小机器。

3. Dubbo能作什么?
(1).透明化的远程方法调用,就像调用本地方法同样调用远程方法,只需简单配置,没有任何API侵入。
(2).软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,下降成本,减小单点。
(3). 服务自动注册与发现,再也不须要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,而且可以平滑添加或删除服务提供者。

Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置便可,Dubbo基于Spring的Schema扩展进行加载。

节点角色说明:
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。

三.针对消息通信,能够采用像activemq这类消息中间件,减小并发对性能的损耗
1.ActiveMQ是Apache推出的一款开源的,彻底支持JMS1.1和J2EE1.4规范的JMS Provider实现的消息中间件(Message Oriented Middleware,MOM)

2.ActiveMQ能干什么
   最主要的功能是:实现JMS Provider,用来帮助实现高可用、高性能、可伸缩、易用和安全的企业级面向消息服务的系统

3. ActiveMQ的特色   彻底支持JMS1.1和J2EE 1.4规范(持久化、XA消息、事务)   支持多种传送协议: in-VM、TCP、SSL、NIO、UDP、JGroups、JXTA   可插拔的体系结构,能够灵活定制,如:消息存储方式、安全管理等   很容易和Application Server集成使用   多种语言和协议编写客户端。如:Java、C、C++、PHP   能够很容易的和Spring结合使用

相关文章
相关标签/搜索