线程池  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. cookie实现记住登录名和密码

    在最近学习的session作用域中,顺便了解了一下cookie, session是存放在服务器中,而cookie是存放在客户端中. 本篇文章主要是使用cookie来实现记住密码的功能. 简单的logi ...

  2. csharp: datagridview Convert csv file

    /// <summary> /// 保存文件 /// 涂聚文 /// 2014-08-29 /// Geovin Du /// </summary> /// <param ...

  3. v-model的双向数据绑定(表单)

    可以用 v-model 指令在表单 <input>.<textarea> 及 <select> 元素上创建双向数据绑定.它会根据控件类型自动选取正确的方法来更新元素 ...

  4. Scarpy+selenium 结合使用

    首先要先在spider对象实例化时,同时实例化一个浏览器对象 # -*- coding: utf-8 -*- import scrapy from selenium import webdriver ...

  5. css3 animation运用

    animation:mymove 5s infinite; @keyframes mymove { from {left:0px;} to {left:200px;} } @-webkit-keyfr ...

  6. Java的Final和C#的Const,Readonly比较分析(转载)

    Java里面没有readonly关键字,预留了const的关键字,目前还没有实际用途,在Java中,跟这两个关键字比较接近的是final; C#中,两者都存在并可用.两者修饰的全局变量或局部变量都不能 ...

  7. 分分钟搞懂 HD 钱包

    转自:http://blog.sina.com.cn/s/blog_12ce70a430102v8c7.html 第一次看到 HD 这个词被用在比特币钱包中时,很容易就把它理解成硬件(Hardware ...

  8. PHP | 别家网站都有的登录功能,你的网站也可以有!

    如果说一个网站是一个独立的王国,那登录功能就相当于这个[王国]的大门.进出往来的人必须要通过这道[门]才能进出这个[王国],这样才能有效的达到对人流量和用户的有效监管,也可以进一步了解每个用户的喜好, ...

  9. MySQL存储过程和临时表

    MySQL创建存储过程 MySQL中,创建存储过程的基本形式如下: CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...

  10. 用CIFilter生成QRCode二维码图片

    用CIFilter生成QRCode二维码图片 CIFilter不仅仅可以用来做滤镜,它还可以用来生成二维码. CIFilterEffect.h + CIFilterEffect.m // // CIF ...