线程池  ThreadPoolExecutor(int corePoolSize,

int maximumPoolSize,

long keepAliveTime,

TimeUnit unit,

BlockingQueue<Runnable> workQueue,

ThreadFactory threadFactory,

RejectedExecutionHandler handler)

1.synchronized

2.volatile

3.Reentrantlock ReentrantReadWriteLock

4.Atomics

5.wait notify notifyAll

6.CountDownLatch

7.CyclicBarrier  循环屏障

    

示例:

class Solver {

*   final int N;

*   final float[][] data;

*   final CyclicBarrier barrier;

*

*   class Worker implements Runnable {

*     int myRow;

*     Worker(int row) { myRow = row; }

*     public void run() {

*       while (!done()) {

*         processRow(myRow);

*

*         try {

*           barrier.await();

*         } catch (InterruptedException ex) {

*           return;

*         } catch (BrokenBarrierException ex) {

*           return;

*         }

*       }

*     }

*   }

*

*   public Solver(float[][] matrix) {

*     data = matrix;

*     N = matrix.length;

*     Runnable barrierAction =

*       new Runnable() { public void run() { mergeRows(...); }};

*     barrier = new CyclicBarrier(N, barrierAction);

*

*     List<Thread> threads = new ArrayList<Thread>(N);

*     for (int i = 0; i < N; i++) {

*       Thread thread = new Thread(new Worker(i));

*       threads.add(thread);

*       thread.start();

*     }

*

*     // wait until done

*     for (Thread thread : threads)

*       thread.join();

*   }

* }}

 

9.Semaphone

10.Exchanger 用于两个线程之间进行数据交换

11 Future  FutureTask

12 并发容器  JUC  copyOnWrite

13 动态代理

14 反射  (1)获取对象属于哪个类  2)获取类的信息 3)构建对象 4)动态执行方法 Method method = clazz.getDeclaredMethod(“add”,int.class,int.class); method.invoke(this,1,1);

5)动态操作属性  Filed filed = clazz.getDeclaredFiled(“name”); filed.set(this,”test”);

字节码增强  javassist  cglib asm  bcel

15 网络通信  BIO NIO  AIO

16 服务框架原型

   1) 客户端逻辑  a 获取可用服务地址列表  b 确定要调用服务的目标机器 c 请求信息序列化 d. 发送请求 e 接收结果

   2)服务端逻辑  a.启动端口进行监听 b.接收请求并进行反序列化处理 c.定位到具体的service methodName和参数 d.通过反射方式进行执行业务逻辑 e.执行结果序列化为二进制写会给请求发送端

大概流程:   调用发起——》寻址路由——》协议适配/序列化 ——》网络传输——》反序列化/协议解析——》结果返回给调用方

  3)服务框架使用方式  a 三个基础属性:interfaceName  version group

  4) 调用者和提供者进行直连方式进行建立连接,通过引入注册中心进行服务注册与发现,出于效率考虑,调用者会进行本地地址缓存一份,发送变更后,注册中心进行列表最新信息推送,从而更新变化。集群的负责均衡:轮询 随机 权重

大型网站系统与java中间件实践-阅读笔记的更多相关文章

  1. 大型网站系统与Java中间件实践读书笔记

    转载:http://blog.csdn.net/ioscodelover/article/details/45047869 1.分布式系统相对集中式而言,是指多台计算机互相通过消息通信进行协作而对外提 ...

  2. 大型网站系统与Java中间件实践

    大型网站系统与Java中间件实践(贯通分布式高并发高数据高访问量网站架构与实现之权威著作,九大一线互联网公司CTO联合推荐) 曾宪杰 著   ISBN 978-7-121-22761-5 2014年4 ...

  3. 《大型网站系统与JAVA中间件实践》【PDF】下载

    <大型网站系统与JAVA中间件实践>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230062557 内容简介 到底是本什么书,拥有这样 ...

  4. 《大型网站系统与Java中间件》读书笔记 (中)

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 回顾上一篇: <大型网站系统与Java中间件& ...

  5. 《大型网站系统与Java中间件》读书笔记(上)

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 这本书买了一段时间了,之前在杭州没带过去,现在读完第 ...

  6. 《大型网站系统与JAVA中间件实践》读书笔记-大型网站架构演进

    大型网站架构演进 大型网站是一种很常见的分布式系统,除了海量数据和高并发的访问量,本身业务和系统也复杂. 大型网站的架构演进 我们现在常用的大型网站都是从小网站一步一步发展起来的,这个过程中会 有一些 ...

  7. 《大型网站系统与Java中间件实践》读书笔记

    分布式系统的基础知识 阿姆达尔定律 多线程交互模式 互不通信,没有交集,各自执行各自的任务和逻辑 基于共享容器(如队列)协同的多线程模式->生产者-消费者->队列 通过事件协同的多线程模式 ...

  8. 《大型网站系统与JAVA中间件实践》读书笔记-数据访问层

    数据访问层 5.1.2数据库垂直/水平拆分的困难 随着网站业务的快速发展,数据量和访问量不断上升,数据库的压力越来越大. 更换更好的硬件(Scale Up)是一种解决方案,而且在我们能付得起硬件费用并 ...

  9. 大型网站系统与 Java 中间件实践

    http://wanglizhi.github.io/2016/07/27/JavaWeb-And-MiddleWare/ 第一章 分布式系统介绍 分布式系统的定义:组件分布在网络计算机上,组件间仅仅 ...

随机推荐

  1. python中循环删除list和dict类型注意事项

    列表和字典在循环操作(增删)时,其长度会改变 # 删除 li = [11, 22, 33, 44, 'rock']中索引为单数的元素 # 方法一 del li[1::2] print(li) # [1 ...

  2. Chrome 声音自动播放抱错问题【play() failed】

    Chrome下调用play后抱错:DOMException: play() failed because the user didn't interact with the document firs ...

  3. mockito測試框架

    1. code package com.springinaction.knights; import static org.mockito.Mockito.*; import org.junit.Te ...

  4. C++类继承--基类析构函数加上Virtual

    下面的内容要说明两个问题:1. 基类的析构函数为什么要加上Virtual--防止内存泄露 1. 基类虚构函数无virtual,派生类无法析构,会导致内存泄露 #include <stdio.h& ...

  5. 基础JavaScript练习(一)

    任务目的 学习与实践JavaScript的基本语法.语言特性 初步了解JavaScript的事件是什么 初步了解JavaScript中的DOM是什么 任务描述 如图,模拟一个队列,队列的每个元素是一个 ...

  6. Android中如何在Eclipse中关联源代码?(图文)

    关联源代码 1.删除工程里面的Android Depandencies,删除后会报错,不要理会.看下面 2.添加libs目录下的Android-support-v4.jar包 选中-->右键-- ...

  7. C++数组怎么复制

    C++数组怎么复制: #include <string.h>main(){int a[10]={34,56,4,10,77,51,93,30,5,52};int b[10];memcpy( ...

  8. 查询SQL Server 版本信息

    select SERVERPROPERTY('ProductVersion') as ProductionVersion, SERVERPROPERTY('ProductLevel')as Produ ...

  9. linux下安装及配置jenkins

    jenkins常用的有两种安装方式: 1.直接下载war包jenkins.war,下载地址https://jenkins.io/download 直接下载 1.1.可以把war包直接部署到servle ...

  10. 配置spark集群

    配置spark集群 1.配置spark-env.sh [/soft/spark/conf/spark-env.sh] ... export JAVA_HOME=/soft/jdk 2.配置slaves ...