专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

中间件是什么意思(全网最全的数据库中间件详解)

来源:小易整编  作者:小易  发布时间:2020-04-05 10:57
摘要:三个领域的中间件: 远程过程调用和对象访问中间件:主要解决分布式环境下应用的互相访问问题。是支撑应用服务化的基础 消息中间件:解决应用之间的消息传递、解耦、异步的问题 数据访问中间件:解决应用访问数据库的共性问题 构建Java中间件的基础知识 JVM中堆分为三...

三个领域的中间件:

  • 远程过程调用和对象访问中间件:主要解决分布式环境下应用的互相访问问题。是支撑应用服务化的基础

  • 消息中间件:解决应用之间的消息传递、解耦、异步的问题

  • 数据访问中间件:解决应用访问数据库的共性问题

构建Java中间件的基础知识

JVM中堆分为三块:Young/Tenured/Perm,新生代/年老代/持久代

一般来说,新对象分配在新生代的Eden区,也可能直接分配在年老代,在进行新生代垃圾回收时,Eden区存活的对象被复制到空的Survivor区,在下次新生代回收时,Eden区存活的对象和这个Survivor存活的对象被复制到另外那个Survivor区,并且清空当前Survivor区,经过多次新生代垃圾回收,还存活的对象会被移动到年老代。

线程池

1

2

3

4

ThreadPoolExecutor tp = new ThreadPoolExecutor(1, 1, 60, TimeUnit, SECONDS, new LinkedBlockingQueue<Runnable>(count));

tp.execute(new Runnable(){

public void run(){}

});

使用线程池的方式是复用线程的,不用每次都创建线程。而创建线程的开销占比较大。

synchronized

synchronized修饰静态方法、对象方法、代码块

ReetrantLock

  • **提供tryLock方法,尝试调用,如果锁被其他线程持有,则tryLock立即返回

  • 可以实现公平锁

  • ReentrantReadWriteLock:读写锁,用于读多写少并且读不需要互斥的场景

  • 可以有多个Condition

volatile

可见性指一个线程修改变量值后,其他线程中能够看到这个值。volatile虽然解决了可见性问题,但是不能控制并发

Atomics

原子操作,如AtomicInteger内部通过JNI的方式使用了硬件支持的CAS指令

wait、notify和notifyAll

wait是等待线程,notify是唤醒一个等待线程(并不能指定,随机),notifyAll是唤醒所有的等待线程。

CountDownLatch

java.util.concurrent包中的一个类,主要提供的机制是当多个线程都到达了预期状态或完成预期工作时触发事件,其他线程可以等待这个事件来触发自己后续的工作。

CyclicBarrier

循环屏障,可以协同多个线程,让多个线程在这个屏障前等待,知道所有线程都到达了这个屏障时,再一起继续执行后面的动作。

Semaphore

Semaphore是用于管理信号量的,构造时传入可供管理的信号量的数值。如果信号量只有一个,就退化到互斥锁了,如果多于一个,则主要用于控制并发数。

Exchanger

用于两个线程之间进行数据交换,线程会阻塞在exchange方法上,知道另外一个线程也到了同一个Exchanger的exchange方法时,二者进行交换。

Future和FutureTask

Future是一个接口,FutureTask是一个具体实现类

1

2

3

4

5

6

7

8

9

10

11

Future<HashMap> future = getDataFromRemote2();

......

HashMap data = (HashMap) future.get();

public Future<HashMap> getDataFromRemote2(){

return threadPool.submit(new Callable<HashMap>(){

public HashMap call()throws Exception{

return getDataFromRemote();

}

});

}

getDataFromRemote2还是使用率getDataFromRemote完成操作,并且用到了线程池:把任务加入线程池中,把Future对象返回出去。

并发容器

  • CopyOnWrite:更改容器时,把容器复制一份进行修改,用于读多写少

  • Concurrent:尽量保证读不加锁,并且修改时不影响读,所以比读写锁更高的并发性能

动态代理

继承InvocationHandler

反射

Java反射机制是指在运行状态,对于任意一个类,都能知道这个类所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。

1

2

3

4

5

6

7

8

9

10

11

12

Class clazz = Object.getClass();

String className = clazz.getName();

Method[] methods = clazz.getDeclaredMethods();

Field[] fields = clazz.getDeclaredFields();

// 构建对象

Class.forName("ClassName").newInstance();

// 动态执行方法

Method method = clazz.getDeclaredMethod("add", int.class, int.class);

method.invoke(this, 1, 1);

// 动态操作方法

Field field = clazz.getDeclaredField("name");

field.set(this, "test");

网络通信的选择

BIO、NIO、AIO

第三方框架,MINA,Netty

第四章 服务框架

服务调用端的设计与实现

调用发起==>寻址路由==>协议适配和序列化==>网络传输

==>反序列化 协议解析==>得到结果返回给调用方

1、确定服务框架的使用方式

2、服务调用者与服务提供者之间通信方式的选择

3、引入基于接口、方法、参数的路由

4、多机房场景,避免跨机房调用,一是在服务注册中心甄别,二是地址过滤

5、服务调用端的流控处理

6、序列化与反序列化处理,Java本身的序列化性能问题、跨语言问题、序列化后语言长度等

7、网络通信实现选择:BIO、NIO、AIO

8、支持多种异步服务调用方式:Oneway,Callback,Future,可靠异步

服务提供端的设计与实现

1、如何暴露远程服务

2、服务端对请求处理的流程

3、执行不同服务的线程池隔离

4、服务提供端的流控处理


本文地址:问答解惑频道 https://www.hkm168.com/live/142986.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


问答解惑
小编:小易整编
相关文章相关阅读
  • 祝福老师句子大全,教师节送礼必备(感恩教育恩人)

    祝福老师句子大全,教师节送礼必备(感恩教育恩人)

    祝福老师句子大全,教师节送礼必备(感恩教育恩人)教师节是每年的9月10日,这一天是我们向教育恩人表达感激之情和祝福的日子。在这个特殊的日子里,送上一句祝福老师的话语,表达我们对教育工作者的敬意和感激之情,成为了每位学生们献给老师的最好礼物。...

  • 贺知章名句赏析,诗人风采展示(品味优美诗歌)

    贺知章名句赏析,诗人风采展示(品味优美诗歌)

    贺知章名句赏析,诗人风采展示(品味优美诗歌)贺知章,唐代诗人,被誉为“豪放派”代表之一。他的诗歌生动有力,意境深远,语言通俗易懂,充满浓郁的民族气息。他留下了许多优美的诗句,让人感慨万千,不得不赞叹其诗才与风采。其中,著名的“海内存知己,天...

  • 纸飞机折法,制作简单易学(挑战手工艺术)

    纸飞机折法,制作简单易学(挑战手工艺术)

    纸飞机折法,制作简单易学(挑战手工艺术)纸飞机是一款低成本、简单易学的手工艺品,因其制作过程简单易懂,大家可以尝试在家,不需要太多专业工具。首先准备一张A4大小的白纸,将其折成一半,然后再打开,将两边的边角对齐,再次往中间折叠。在折叠的位置...

  • 中超赛程表,看球购票攻略(跟随绿茵场之旅)

     中超赛程表,看球购票攻略(跟随绿茵场之旅)

    中超赛程表,看球购票攻略(跟随绿茵场之旅)中超联赛一直以来都备受球迷关注,每个赛季都会有无数的球迷前往现场观看比赛。为了让广大球迷更好地安排自己的观赛计划,我们在这里为大家介绍一下中超赛程表和看球购票的攻略。中超赛程表中超联赛一般从3月份开...

  • 春节习俗大全,传统文化策源地(领略浓郁年味)

    春节习俗大全,传统文化策源地(领略浓郁年味)

    春节习俗大全,传统文化策源地(领略浓郁年味)春节是中国最重要的传统节日,也被称作“年节”、“新春节”等,是一个具有重大历史意义和文化内涵的节日。说到春节,就不得不提到具有浓郁地域特色和文化内涵的习俗,这些习俗既体现了中华民族的优秀文化传统,...

  • “水”字旁常用字,快速记忆方法(提高汉字识别能力)

    “水”字旁常用字,快速记忆方法(提高汉字识别能力)

    “水”字旁常用字,快速记忆方法(提高汉字识别能力)汉字是中国文化的重要组成部分,对于中文学习者而言,汉字的认识和记忆是非常重要的。其中“水”字是汉字中的一个旁常用字。在学习这个字时,我们可以采用一些快速记忆方法,提高汉字识别能力。首先,我们...

  • 做梦梦见很多蛇,分析梦境内涵(看懂心理暗示)

    做梦梦见很多蛇,分析梦境内涵(看懂心理暗示)

    做梦梦见很多蛇,分析梦境内涵(看懂心理暗示)做梦时梦见很多蛇是一种比较常见的梦境,对于这种梦境的解释和分析是非常重要的。从心理学的角度来看,这种梦境不仅反映了我们潜意识中的想法和情感,也可以为我们指引未来的行动。首先,梦见很多蛇可能说明我们...

  • 制作铃声详解,打造个性化手机(表现自我风格)

    制作铃声详解,打造个性化手机(表现自我风格)

    制作铃声详解,打造个性化手机(表现自我风格)随着移动设备的普及,手机不仅是通信工具,也成为了一种个性化的表现方式。而铃声则是手机个性化中最直接的表现形式之一。制作一个个性化的铃声,不仅可以让你的手机更具有个性化的特色,同时还可以让你展现出自...

  • 周排行
  • 月排行
  • 年排行

精彩推荐