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

news/2024/5/15 2:11:46/文章来源:https://blog.csdn.net/weixin_34327223/article/details/89587458

01 认识分布式
02 Java中间件
03 分布式框架

3 构建Java中间件

3.1 什么事中间件?

中间件不是最上层的应用也不是最底层的支撑系统,中间件在项目中起到桥梁作用,特定中间件是解决特定的场景问题的组件。让开发聚焦于自己的业务。

常用中间件的分类:

  1. 远程过程调用和对象访问中间件:主要解决分布式环境下应用的互相访问问题,
  2. 消息中间件:解决应用之间的消息传递,解耦,异步的问题。
  3. 数据访问中间件:主要解决应用访问数据库的共性问题的组件。

3.2 Java中间件的基础知识

3.2.1 JVM

Java源码通过编译器变成Java字节码

JVM加载Java字节码

3.2.2 垃圾回收与内存堆布局

Java通过虚拟机进行垃圾回收。

img_76d5b00c1a9539b5a672b4c4706a182e.png
Oracle Hotspot JVM堆

一般新的对象被分配在young的Eden区,也有可能直接分配在Tenured。

在进行垃圾回收的时候,Eden区中存活的对象会被复制到空的Survivor区,而下次新生代垃圾回收的时候,Eden区存活的对象和这个Survivor区中存活的对象会被复制到另外那个Survivor区域,并且清空当前的Survivor区域。经过多次新生代垃圾回收,还存活的对象被移动到年老代,而年老代的空间也会根据一定的条件进行垃圾回收。

新生代:

串行GC -- Serial Copying

并行GC -- ParNew

并行回收GC -- Parallel Scavenge

年老代:

串行GC -- Serial GC

并行MS -- Parallel MSC

并行Compacting GC -- Parallel Compacting GC

并发GC -- CMS

3.2.3 Java并发编程

  1. 线程池

  2. synchronized

任何两个线程之间调用互斥。 同步静态代码块。

同一对象之间的两个方法互斥。 同步代码块。

  1. ReentrantLock

tryLock:调用的时候,如果锁被其他线程占有返回false。

可以构造公平锁,公平锁的好处就是等待锁的线程不会饿死,但是整体效率低。

  1. volatile

可见性是指在一个线程中修改变量以后,在其他线程可以看得到这个数值。

volatile关键字保证了同一个变量在多线程中的可见性,所以它更是用于修饰作为开关状态的变量。

int  key1;
public int getKey1(){return key1;
}
对于调用getKey1获取当前线程中的副本,这个值不一定是最新的。
对于setKey1来说,操作的是当前线程中的副本,所以其他线程看不到最新的值。volatile int key2;
public int getKey2(){return key2;
}
对于调用getKey2来说,volatile修饰保证这个变量没有线程副本,只会放在主存,所以得到的值是最新的值。
对于setKey2来说,直接操作主存,其他线程肯定会看到新值。int key3;
public synchronized int getKey2(){return key3;
}同步关键字保证线程主存与本地副本的同步,所以得到的值是最新的值。
  1. Atomics

提供了原子操作,计数器操作。

  1. wait,notify和nitifyAll

notify唤醒一个线程,noitfyAll唤醒所有线程。

对wait,notify和notifyAll调用都必须是在对象的synchronized快中。

  1. CountDownLatch

线程都到达了预期状态活完成预期工作时触发事件。

统计数据:分布计算 latch.countDown(),然后合并数据latch.await();

  1. CyclicBarrier

循环屏障,协同多个线程,让多个线程在这个屏障前等待,直到所有线程都到达了这个屏障的时候,在一起执行后面的计算。

可以循环使用。

  1. Semaphore

信号量:

  1. Exchanger

用于两个线程交互数据

线程会阻塞在exchange方法上,直到另一个线程也到了同一个Exchanger的exchange方法。

  1. Future和FutureTask
// 远程调用回阻塞
1:HashMap<String,Object> map = rpc.getDataFromRemote();doOther();// 远程调用提交给线程池执行
2: Future<HahsMap<String,Object>> fuctur = rpc.getDataRemote();doOther();// 获取数据的时候阻塞
future.get();
  1. 并发容器

  2. 动态代理

控制在执行方法之前,方法之后能进行处理相关操作。

  1. 反射

常用操作库

Javassist

cglib

asm

bcel

  1. 网络通信实现

框架Mina,Netty

3.3 分布式系统与Java中间件

img_8648fea1cdb6a376427a56ff029c0a72.png
系统中的中间件

WebApp和Service中间引入服务框架,解决了集群之间的通信问题。

在应用和数据库之间,引入分布式数据层可以方便我们操作已被分库分表的数据库节点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_769110.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用hexo做博客网站

2019独角兽企业重金招聘Python工程师标准>>> hexo有什么用&#xff1f; hexo 可以把md文件生成html静态网页。 hexo官网&#xff1a;https://hexo.io/zh-cn/ 本地安装hexo。 npm install -g hexo-cli #生成blog&#xff08;名字任意&#xff09;文件夹&#xff0c;并…

网市场云建站 v4.8 增加私有模版库,开放 Mysql 配置、在线客服源码

网市场云建站系统&#xff0c;结合各种产品&#xff0c;将一个网站的服务器成本降低到0.1元&#xff01;打破传统建站的高成本&#xff0c;让价格不再是阻碍的门槛&#xff0c;让每个人都能有自己的网站&#xff01; 延续了帝国CMS、织梦CMS优秀的模板流程&#xff0c;模板页面…

python大佬常去网站

常用网站&#xff1a; 1.StackOverflow &#xff08;https://stackoverflow.com/&#xff09; 2.github &#xff08;https://github.com/&#xff09; 3.Awesome Python &#xff08;https://github.com/&#xff09; 4.python中文学习大本营 &#xff08;http://www.pythondo…

前嗅ForeSpider教程:网站登录配置

当我们在采集中碰到&#xff1a;所采集的网站数据需要登录&#xff0c;才可以看到所需信息时&#xff0c;则需要在软件中模拟登陆环境&#xff0c;采集数据&#xff0c;此时需要配置登录信息。今天小编就教大家&#xff1a;如何进行网站登录配置&#xff0c;具体步骤如下&#…

HBaseOnOSS冷数据存储

本期直播Topic:HBaseOnOSS冷数据存储 讲师&#xff1a;陆豪——阿里多模型数据库专家 视频回看地址&#xff1a;https://yq.aliyun.com/live/709/ PPT下载地址&#xff1a;https://yq.aliyun.com/download/3137 往期直播资料&#xff1a; 第四期&#xff1a;hbase 备份恢复资料…

阿里云ECS建站超详细全套完整图文教程

第一步&#xff1a;如何以最低价格快速买到阿里云服务器&#xff1f; 1.1 如果我是学生&#xff0c;我如何通过&#xffe5;9.9买到价值&#xffe5;117的服务&#xff1f; 答&#xff1a;用&#xffe5;9.9购买云服务器ECS是阿里云学生专属活动。首先&#xff0c;你需要在阿里…

网站502与504错误分析

为什么80%的码农都做不了架构师&#xff1f;>>> 一. 戏说 不管你是做运维还是做开发&#xff0c;哪怕你是游客&#xff0c;时不时会遇到502 Bad Gateway或504 Gateway Time-out。出现这页面&#xff0c;把服务重启下&#xff0c;再实在不行重启下服务器&#xff0c…

360WiFi的服务器网站,360随身无线wifi怎么搭建web认证网页

如果只有360随身无线wifi&#xff0c;那你知道怎么使用360无线wifi来免费搭建web认证网页吗?下面是学习啦小编给大家整理的一些有关360随身无线wifi搭建web认证网页的方法&#xff0c;希望对大家有帮助!360随身无线wifi搭建web认证网页的方法首先&#xff0c;打开360随身wifi官…

python抓取网站图片_python爬虫基础教程:手把手教你网页图片的抓取方法

原标题&#xff1a;python爬虫基础教程&#xff1a;手把手教你网页图片的抓取方法 今天小编给大家分享基于python写的一个爬虫程序&#xff0c;能实现简单的网页图片下载&#xff0c;具体实例代码大家参考下本文 学习python、python爬虫过程中有不懂的可以加入我的python零基础…

json格式生成器_VuePress - Vue驱动的静态网站生成器

还在烦恼怎么做一个简单又美观的文档或博客网站吗&#xff1f;VuePress&#xff0c;让你十分钟就能搭建一个静态网站&#xff01;Vue.js简介VuePress&#xff0c;是 vuejs 在 Github 上开源的静态网站生成器&#xff0c;项目仓库位于 https://github.com/vuejs/vuepress&#x…

sqlmap自动扫描注入点_sqlmap,扫描网站数据库并得到用户名及密码!

接着上篇文章&#xff0c;你已经对sqlmap有了了解。那么我们今天就进一步了解sqlmap&#xff0c;使用sqlmap对一个网站解剖分析&#xff01;SqlMap的程序允许检查网站的SQL注入漏洞&#xff0c;XSS漏洞的存在&#xff0c;并且可以还利用SQL注入。支持多种SQL注入类型和多种数据…

论坛隐藏链接获取_同业竞争网站论坛发外链

写在前边得话&#xff1a;建立网站必须顽强的团队执行力&#xff0c;特别是在是站长&#xff0c;由于站长沒有强劲的营销团队&#xff0c;沒有深厚的资产&#xff0c;都没有人脉关系。站长中又也有业余组网站站长和岗位网站站长&#xff0c;业余组网站站长更不幸&#xff0c;由…

linux drupal 7安装教程,drupal7|drupal 7(建站开发工具)下载附安装教程 - 欧普软件下载...

​drupal7是一款非常好用的建站开发工具&#xff0c;采用PHP语言编写的开源内容管理框架&#xff0c;由内容管理系统(CMS)和PHP开发框架(Framework)共同构建&#xff0c;集内核、模块、主题三大功能于一体&#xff0c;可以制作不同类型的网站&#xff0c;小编还提供了drupal7安…

php mysql购物网站作业_购物网站的设计与实现(PHP,MySQL)(含录像)

购物网站的设计与实现(PHP,MySQL)(含录像)(毕业论文10000字,程序代码,MySQL数据库)本项目是通过B/S框架技术来进行设计和实现的。项目主要用到的技术有php&#xff0c;PHPscript&#xff0c;html/css等。数据库使用的是MySQL。购物网站共分为两个部分&#xff0c;一部分是面向用…

apache的网站配置目录_Apache监控与调优(一)目录结构

Apache安装好后&#xff0c;主要包含的目录文件有&#xff1a;bin、build、cgi-bin、conf、error、htdocs、icons、include、lib、logs、man、manual和modules。这些目录文件主要的作用如下&#xff1a;1) bin目录主要是存放一些命令文件&#xff0c;最常用的是apache启动、关闭…

flask+echarts+mysql_实战|Python爬虫并用Flask框架搭建可视化网站

大家好&#xff0c;我是J哥&#xff0c;也可以叫我菜J&#xff0c;专注原创&#xff0c;致力于用浅显易懂的语言分享网络爬虫、数据分析、可视化等干货&#xff0c;希望人人都能学到新知识。项目背景事情是这样的&#xff0c;最近呢&#xff0c;一直有朋友问我有没有什么办法将…

服务器管理器建网站,搭建web服务器

打开一台windows 2008服务器(并保证已安装DNS服务器&#xff0c;Ip地址是192.168.6.1DNS指向自已)计算机右击管理打开服务器管理器点击角色选择添加角色&#xff0c;开始配置安装 &#xff0c;单击“下一步”选择web(iis)在弹出的对话框中单击添加必须的功能&#xff0c;单击“…

上传图片配置控制大小_网站限制图片上传大小怎么办?巧用这个神器,瞬间突破限制...

现在很多网站都会限制图片的上传大小&#xff0c;怎么办呢&#xff1f;通常的做法是将图片压缩&#xff0c;那么问题又来了&#xff1a;压缩图片的同时&#xff0c;怎么保证图片的清晰度呢&#xff1f;这就要看你是怎么压缩图片大小的啦&#xff01;接下来就向大家推荐一些不错…

域名服务器虚拟主机购买,如何注册网站域名和购买虚拟主机

如何注册网站1、注册网站会员进入2、如何注册网站域名首先&#xff0c;进到西部数码的域名注册页面&#xff0c;在搜索框中&#xff0c;输入想注册的域名名称&#xff0c;检测是否可以注册我们拿网站域名注册来测试下&#xff1a;wangzhanyumingzhuce&#xff0c;点击“查域名”…

工作四年,分享一些实用工具和网站

前言 今天来跟大家分享下常用的学习网站 & 各种小工具&#xff01; 本文主要是针对那些学生党&#xff0c;相信有工作经验的大部分你应该都用过。 工欲善其事必先利其器&#xff0c;如果能帮到你&#xff0c;记得点赞、关注&#xff0c;谢谢&#xff01; B 站 去哪里学…