`
wataxi
  • 浏览: 209020 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

分布式Java 应用(转)

    博客分类:
  • java
阅读更多

网络通信:协议TCP/IP,UDP/Ip,Multicast

               IO:BIO,NIO-Reactor,AIO-Proactor

消息方式的系统间通信:

                基于Java包:TCP/IP(Socket、ServerSocket;SocketChannel、ServerSocketChannel)

                                   UPD/IP(DatagramSocket、DatagramPacket;DatagramChannel、DatagramPacket)

                                   Mutilcast(MulticastSocket、DatagramPacket)

                                   SRM

                基于开源框架:Mina,Netty

                性能角度:连接管理(连接池、连接复用、短连接、长连接)

远程调用方式的系统间通信:基于Java包(RMI(UnicastRemoteObject,LocateRegistry),Webservice)

                                       基于开源框架(Spring RMI,Apache CXF)

                                       性能角度(反射,序列化、反序列化)

深入理解JVM

                 JAVA代码的执行:代码编译为class——sun.jdk中的javac,装载class——ClassLoader,执行class(解释执行、编译执行(client complier,server complier)

                 内存空间:方法区、堆、JVM方法栈、本地方法栈和PC寄存器

                 内存分配:堆上的分配、TLAB分配、栈上的分配

                 内存回收:算法(Copy,Mark-sweep,mark-compact)

                                Sun JDK 实现(分代回收,GC参数,G1)

                 内存状态分析:jconsole、visualvm、jstat、jmap、MAT

                 线程资源同步和交互机制:

                                 资源同步机制:synchronized实现、lock/unlock

                                 线程交互机制:Object.wait/notify/notifyAll ——Double check pattern

                                                      并发包提供的交互机制——semaphore、CountdownLatch

                  线程状态及分析方法:jstack、TDA

 

Sun JDK:

集合包:List(ArrayList,LinkedList,Vector,Stack),Set(HashSet,TreeSet),Map(HashMap,TreeMap)

并发包:ConcurrentHashMap,CopyOnWriteArrayList,CopyOnWriteArraySet,ArrayBlockingQueue,AtomicInteger,ThreadPoolExecutor,Executors,FutureTask,Semaphore,CountDownLatch,CyclicBarrier,ReentrantLock,Condition,ReentrantReadWriteLock

序列化,反序列化

性能调优:

1,先粗粒度划分,在细粒度寻找具体点

2,设定调优目标

3,根据现状衡量目前系统资源的瓶颈,需找消耗资源的代码,寻找执行慢的原因和代码

(CPU(us(代码循环、计算量大等),sy(线程上下文,线程多,IO等待多)))

(文件IO(并发读写多,文件大))

(内存(JVM堆内存(创建了多个对象,持有了不必要的引用),JVM以外的内存(创建了太多的线程,使用了BYTEBUFFER但未释放))

(网络IO(读写网络操作太频繁))

(访问量不大(锁竞争激烈,未充分使用硬件资源,数据量大))

4,性能调优(a针对系统资源消耗过多的优化;b资源消耗不多,但执行慢)

a:cpu:适当释放CPU,wait/notify机制,JVM和内存的优化;降低锁竞争,coroutine;文件IO:异步,限流,限制文件大小;内存,GC调优,JVM堆的代大小调优,释放不需要引用的对象,对象缓冲池

b:降低锁竞争(lock-freem,拆分锁,copyOnWrite),充分使用硬件(充分使用多个CPU,充分使用内存)

 

 构建高可用:避免单点,提高应用的可用性

负载均衡技术:选址,filover,响应返回方式(NAT,IP-Tuneling,DSR),硬件负载,软件负载VRRP,去中心化实现软件负载gossip

热备:Linux HA等

使用多机房

提高可用性:报警系统,日志记录和分析系统,水平伸缩,拆分,读写分离,其他

 

构建可伸缩的系统

垂直伸缩:支撑高访问量(增加CPU(锁问题,线程数随CPU增加的问题),增加内存(cache设置为内存比率的问题))

支撑大数据量:分表

提升计算能力:并行多线程计算

 水平伸缩:SNA,有状态的情况(存在内存的状态(用户身份)广播同步,分布式缓存,terracotta),文件(上传的文件(存储设备,SAN文件系统,分布式文件系统));伸缩带来的数据库问题(cache,分库,异步数据库访问,中间层DAL)

支撑大数据量:性能压力(读写)读写分离,多master

提升计算能力:mapreduce,MPI     

 

 

类加载机制:装载--链接(校验,准备,解析)--初始化         

分享到:
评论

相关推荐

    分布式Java应用基础与实践pdf

    分布式Java应用基础与实践是Java开发领域中的一个重要主题,它涉及到如何通过网络将多个独立的计算机节点连接起来,协同处理任务,以实现系统的高可用性、高性能和可伸缩性。在Java中,分布式系统主要依赖于一些核心...

    分布式Java应用:基础与实践(分布式Java应用知识点全景图)

    本书介绍了编写分布式Java应用涉及的众多知识点,分为了基于Java实现网络通信、RPC;基于SOA实现大型分布式Java应用;编写高性能Java应用;构建高可用、可伸缩的系统四个部分,七章内容来进行介绍,在这一本不算厚的...

    《分布式Java应用基础与实践》pdf电子版

    《分布式Java应用基础与实践》pdf电子版,

    分布式Java应用基础与实践

    本书介绍了编写分布式Java应用涉及的众多知识点,分为了基于Java实现网络通信、RPC;基于SOA实现大型分布式Java应用;编写高性能Java应用;构建高可用、可伸缩的系统四个部分,七章内容来进行介绍,在这一本不算厚的...

    分布式Java应用 完整版 PDF

    《分布式Java应用 完整版》是一本深入探讨如何利用Java技术构建分布式系统的权威指南。全书分为四个主要部分,全面覆盖了从基础的网络通信到复杂的系统架构设计的各个环节,旨在帮助读者掌握构建高性能、高可用和可...

    分布式java应用.pdf

    由于提供的【部分内容】链接均指向同一网址,且无法从中提取具体信息,因此无法直接分析这些链接所包含的分布式Java应用的具体知识点。但是,我可以基于分布式Java应用的主题提供丰富的知识点。 分布式Java应用指的...

    分布式Java应用

    分布式Java应用是现代企业级软件开发中的重要组成部分,它涉及到多台计算机之间的协作,以处理大规模数据和提供高可用性服务。在这个主题中,我们主要关注的是如何利用Java技术来构建分布式系统,以及相关的理论与...

    分布式Java应用基础与实践源码.zip

    分布式Java应用基础与实践源码分析 在当前的互联网时代,分布式系统已经成为企业级应用的主流架构。Java作为广泛使用的编程语言,其在分布式领域的应用非常广泛。本篇将深入探讨分布式Java应用的基础知识和实践要点...

    分布式java应用_林昊_电子版

    分布式Java应用是现代互联网行业中广泛讨论的话题,尤其在大型企业级系统中,为了处理高并发、海量数据等问题,采用分布式架构成为了必要的选择。林昊,作为知名的Java技术专家,他的著作《分布式Java应用》深入浅出...

    Java分布式应用学习笔记01分布式Java应用和SOA

    ### 实现分布式Java应用的挑战与解决方案 尽管Java提供了丰富的库和技术栈来支持分布式应用的开发,但在实际应用中仍面临许多挑战,例如: - **一致性问题**:在分布式系统中保持数据的一致性是一项复杂任务,需要...

    分布式java应用基础与实践附带源码(完整版)

    分布式Java应用基础与实践是Java开发领域中的一个重要话题,它涉及到如何在多个计算机节点上协同工作,以提高系统的可扩展性、可靠性和性能。在这个完整版的资源中,包括了一本名为“分布式JAVA应用 基础与实践.pdf...

    分布式Java应用:基础与实践

    分布式Java应用:基础与实践

    分布式JAVA应用基础与实践(林昊)完整版pad+源码

    分布式JAVA应用基础与实践是Java开发领域中一个重要的主题,主要涵盖了如何在大规模网络环境中设计、部署和管理Java应用程序。本书由林昊编著,旨在帮助开发者深入理解分布式系统的基本概念,掌握Java在分布式环境中...

    分布式Java应用:基础与实践.pdf

    分布式Java应用是计算机科学中的一个重要领域,它利用了Java语言的网络友好性,为实现大型、高并发、高性能的系统提供了可能。分布式计算技术有着悠久的历史,它从早期的C/S架构,到P2P模型,再到现在的云计算,始终...

    分布式JAVA应用 基础与实践.pdf

    分布式Java应用知识点全景图,很全面,值得一读

    分布式Java应用基础与实践[带目录书签]

    分布式Java应用基础与实践是Java开发中的重要领域,它涵盖了多台计算机之间的协作,通过网络进行数据交换和服务调用,以实现大规模系统的高效运行。在Java世界中,分布式技术广泛应用于构建可扩展、高可用的互联网...

    分布式Java应用基础与实践.pdf

    分布式Java应用基础与实践.pdf 林昊 著 中文 电子工业出版社

    分布式java应用完整版

    分布式Java应用是现代企业级软件开发中的重要组成部分,它涉及到多个服务器协同工作,以处理大规模数据和高并发请求。在本资源包中,"分布式Java应用完整版"提供了全面的学习资料,包括视频教程和电子书,帮助开发者...

Global site tag (gtag.js) - Google Analytics