java分布式入门

article/2025/10/22 13:43:59

分布式入门:

先理解为什么需要分布式,因为服务器处理的能力需要提升,这里有两个方面,第一是纵向 也就是增加cpu的能力,或者加内存;另一个方向就是 横向 ,就是分布式。将本来一台计算机的压力分给多太计算机,从而可以平均分布io,同时提升响应速度。
建议先从分布式 数据库看起,之后你可以用 虚拟机,和 本机进行测试 分布式数据库。
之后你可以使用 java操作这种分布式 数据库。
从而 依旧用虚拟机练习web项目,将原来的项目改为分布的,练练tomcat集群。
最好的学习方式就是项目驱动,做几个分布式的项目就差不多了。 从项目中逐渐找自己不会的知识点去学习是最快的。

so~,大二暑假的学习路线也是围绕一个分布式项目展开,通过博客留痕🦄。
先来了解一下java分布式相关知识点:

网关层:微服务,分布式,负载均衡等我们经常提到的这些名词都是这些技术在场景背后支撑。单机顶不住,我们就多找点服务器,但是怎么将流量均匀的打到这些服务器上呢?盗张图:
在这里插入图片描述
服务层:
整个框架的核心,技术生涯大部分时间都在跟这一层的技术栈打交道,各种琳琅满目的中间件,计算机基础知识,Linux操作,算法数据结构,架构框架,研发工具等等。
在这里插入图片描述
数据层:
在这里插入图片描述

大型分布式应用架构基础

1.单体架构

在java领域可以理解为一个javaweb应用。

2.分布式架构

什么是传统的分布式架构?简单来说,按照业务垂直切分,每个应用都是单体架构,通过API相互调用。

3.面向服务的SOA架构

实际上SOA只是一种架构设计模式,而SOAP、REST、RPC就是根据这种设计模式构建出来的规范,其中SOAP通俗理解就是http+xml的形式,REST就是http+json的形式,RPC是基于socket的形式。CXF就是典型的SOAP/REST框架,dubbo就是典型的RPC框架,而SpringCloud就是遵守REST规范的生态系统。

4.微服务架构

微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。
优点:上面的单体系统全部运行于一个进程之内,资源相互影响,添加功能可能会影响其它功能,导致维护麻烦。 而微服务一切分为不同的模块,运行于自身进程内,而且不同的服务可以使用不同的语言充分发挥优势。

缺点:引入了分布式的复杂性,如接口一致性。 不过很多问题强大的Spring Cloud都已经提供了解决方案!

微服务架构 = 80%的SOA服务架构思想 + 100%的组件化架构思想 + 80%的领域建模思想

  • 微服务架构是基于SOA架构模式演变而来,继承了SOA架构的优点,在微服务架构中去除SOA架构中的SOAP协议和ESB企业服务总线,改为了http+json形式传输接口。
  • ESB主要解决跨语言时的数据协议转换,提供可靠的消息传输,而http+json已经实现了跨平台,所以不需要专门的ESB了。
  • 微服务架构比SOA架构粒度会更加精细,让专业的人去做专业的事情(专注),每个服务之间互不影响,而且拥有独立的数据库、redis、MQ等,实现独立部署,整个服务架构更加轻巧、轻量级。

将单一程序开发成一个微服务,每个微服务运行在自己的进程中,并使用轻量级机制通信,通常采用HTTP RestFul API.这些服务围绕业务能力来划分构建的,并通过全完自动化部署机制来独立部署。这些服务可以使用不同的编程需要,以及不同数据存储技术,以保证最低限度的集中式管理。

微服务架构有以下6种:1. Dubbo;2. Motan;3. Tars;4. Spring Cloud;5. gRPC;6. Thrift。
在这里插入图片描述
相关概念:
在这里插入图片描述

集群

集群可以说是个物理形态,而分布式是个工作方式。

简单理解:

分布式:一个业务分拆多个子业务,部署在不同的服务器上

集群:同一个业务,部署在多个服务器上

一句话,就是:“分头做事”与“一堆人”的区别

中间件

一、什么是java中间件?

随着Javaweb开发的演进和进化,在面对消息系统、数据库、服务化接口的抽象等等涉及数据分离的过程当中,在分离过程当中,会涉及到分离之后,系统间、数据库间的交互。

java中间件就是处理数据交互、连接数据分离之后两个系统间的通信。

中间件不允许任何一个开发项目。也就是让我们对应系统间或者是数据库间数据流通没有感知。有点像Linux下的管道。

二、java常用中间件

在Java web开发中适用的范围主要应该是下面的3个领域。

1、远程过程调用和对象访问中间件

这个主要的是解决分布式环境下应用的互相访问问题。

同时,这个也是支撑应用服务化功能的基础。

就国内来说,当前远程服务框架中间件较多应用的是阿里巴巴的开源分布式服务框架Dubbo。

2、消息队列中间件

这个主要解决的是应用之间的消息传递、解耦、异步的问题。

它是一种EDA架构。

也就是通过在低耦合的模块之间传输事件消息来完成模块之间的合作。

在很多大型的网站当中,消息队列采用发布和订阅模式。

当前,比较常用的消息队列产品有RabbitMQ、Kafka、Apache的ActiveMQ、RocketMQ等等。

分布式服务框架和分布式消息队列是系统模块化之后主要的两种聚合方式。

3、数据访问中间件

它主要解决的是应用访问数据库的共性问题的组件 。


http://chatgpt.dhexx.cn/article/OouL26b8.shtml

相关文章

网站开发进阶(六十七)浅谈css中hsl()和hsla()设置颜色值的方法与应用

前言 HSL 是CSS3引进的一种将 RGB 色彩模型中的点在坐标系中的表示法。这两种表示法试图做到比基于笛卡尔坐标系的几何结构 RGB 更加直观。 定义与用法 hsl() 函数使用色相、饱和度、亮度来定义颜色。 HSL 即色相、饱和度、亮度(英语:Hue, Saturati…

CSS第二章:3.颜色单位(HSL值、HSLA值)

总览 1.HSL值 H - 色相,S - 饱和度,L - 亮度 2.HSLA值 A - 透明度 一、色相 - H 1.取值范围:0~360 二、饱和度 - S 1.取值范围:0~100% 三、亮度 - L 1.取值范围:0~100% 四、HSL值 实操 1.HTML代码&#xff…

CSS 的 hsl() 和 hsla() 函数(设置颜色的方式之一)

一:CSS中的 hsl()函数: 1、定义与用法:hsl() 函数使用色相、饱和度、亮度来定义颜色。 HSL 即:色相(Hue)、饱和度(Saturation)、亮度(Lightness)。 色相&a…

css rgba/hsla知识点讲解及半透明边框

一、RGBA(R,G,B,A) 参数: R:红色值。正整数 | |百分数 G:绿色值。正整数 | |百分数 B:蓝色值。正整数 | |百分数 A:Alpha透明度。取值0~1之间。 说明:此色彩模式与RGB相同,只是在RGB模式上新增了Alpha透明…

HSLA制作配色表

<!doctype html> <html lang"en"><head><meta charset"UTF-8"><title>HSLA制作配色表</title><style>.table-wrap {width: 400px;margin: 10px;float: left;}table {width: 400px;border: 1px solid #756c6c;bo…

css中hsla代表_hsla()函数以及CSS中的示例

css中hsla代表 Introduction: 介绍&#xff1a; The use of functions is very beneficial for web development and one must learn as many functions as they can, therefore keep learning functions for improving your knowledge and coding skills. Besides, you shoul…

rgba和hsla

在css3中可以用RGBA和HSLA,都可以用来在设置颜色的同时也可以设置它的透明度。RGBA指的是“红色、绿色、蓝色和Alpha透明度”&#xff08;Red-Green-Blue-Alpha&#xff09;&#xff0c;而HSLA则代表“色调、饱和度、亮度和Alpha透明度”&#xff08;Hue-Saturation-Lightness-…

CSS hsla函数

和ARGB一样&#xff0c;都是用来表示颜色的。表示的效果都是一样的&#xff0c;只是形式不同。 一般情况下&#xff0c;你是用不上的&#xff0c;因为一般用ARGB比较多&#xff0c;也更熟悉。但是有些书籍喜欢用这种形式&#xff0c;还是要了解一下的。 定义 hsla() 函数使用…

HSL值,HSLA,文档流,盒子模型等问题。

HSL和HSLA值 和上一篇文章中的rgb语法使用方法基本一样 H:色相&#xff0c;调节范围为0-360度&#xff0c;其实就是一个环&#xff0c;零度等于360度是红色&#xff0c;调节颜色。S&#xff1a;饱和度&#xff0c;调节颜色浓度&#xff0c;调节范围&#xff08;0%-100%&#x…

CSS中hsla的用法

hsla是css3引入的一个颜色表达方式&#xff0c;今天就来学习一下它的用法。 文章目录 1.什么是HSLA2.怎么去使用HSLA3.什么时候使用HSLA4.注意事项 1.什么是HSLA HSLA(H,S,L,A) H&#xff1a;Hue(色调)。0(或360)表示红色&#xff0c;120表示绿色&#xff0c;240表示蓝色&…

Gabor滤波器 pytorch实现

Gabor函数与人眼的生物作用相仿&#xff0c;尤其对于图片的方向和尺度特征可以很好的捕捉。所以&#xff0c;经常用于纹理、物体识别。对于Gabor的原理、公式不再赘述。 下面对Gabor滤波器用pytorch实现&#xff0c;并进行可视化&#xff1a; import math import torch import…

【youcans 的 OpenCV 例程200篇】193.基于Gabor 滤波器的特征提取

OpenCV 例程200篇 总目录-202205更新 【youcans 的 OpenCV 例程200篇】193.基于Gabor 滤波器的特征提取 6.5 Gabor 滤波器 Gabor 变换是一种加窗短时傅里叶变换&#xff0c;以高斯函数作为短时傅里叶变换的窗函数&#xff0c;因此可以在频域不同尺度、不同方向上提取特征。 G…

Python OpenCV实现Log Gabor滤波器(由LGHD描述符扩展)

引言 笔者在研究红外图像与可见光图像配准时接触到了很多描述符&#xff0c;其中关于LGHD描述符的Log Gabor滤波器很有意思&#xff0c;与大家分享 LGHD&#xff08;Log-Gabor Histogram Descriptor&#xff09; 描述符的思想是基于高频分量分布的描述符对于不同的非线性强度…

python实现Gabor滤波器-skimage(一)

什么是Gabor滤波器&#xff1f; Gabor滤波器是一种由正弦波调制的高斯核线性滤波器。Gabor滤波器的频率和方向表示与人类视觉系统相似。Gabor滤波器组通常用于计算机视觉和图像处理。特别适用于边缘检测和纹理分类。一个二维Gabor滤波器是一个由正弦平面波调制的高斯核函数。好…

二维gabor滤波器matlab,在matlab中使用可分离的Gabor滤波器

如果过滤器g可以表示为两个向量grow和gcol的乘法&#xff0c;则称为可分离过滤器。使用一维滤波器将二维滤波器的计算复杂度从O(M^2 N^2)降低到O(2M N^2)&#xff0c;其中M和N分别是滤波器掩码和图像的宽度(和高度)。 在this stackoverflow link中&#xff0c;我在空间域中编写…

gabor滤波器简要介绍

在经过一天的浏览csdn&#xff0c;博客园后&#xff0c;总算是对gabor滤波器有了一个大概的了解&#xff0c;所以趁还热着&#xff0c;赶紧记录一下。 写的话&#xff0c;先给自己梳理下要写什么吧&#xff1a; 1. 什么是gabor滤波器&#xff0c;公式定义 2. gabor滤波器的代码…

MATLAB---一维Gabor滤波器、gabor滤波器的实部与虚部图像、Gabor滤波器

%% 一维Gabor滤波器 clc,clear,close all % 清理命令区、清理工作区、关闭显示图形 warning off % 消除警告 feature jit off % 加速代码运行 x-4:0.01:4; t1; y1*exp(-(x.^2)./(sqrt(2*pi)*t^2)); plot(x,y,b,linewidth,2); hold on x1-4:0.01:4; y11*sin(9*x1pi…

有关Gabor滤波器

有关Gabor Gabor特征是一种可以用来描述图像纹理信息的特征。此外,Gabor小波对于图像的边缘敏感,\能够提供良好的方向选择和尺度选择特性,可以在频域不同尺度、不同方向上提取相关的特征。Gabor滤波器可以提取不同方向上的纹理信息。Gabor滤波器对于光照变化不敏感,能够提供…

基于Gabor滤波器的图像边缘检测实验

1 Gabor滤波算法原理 Gabor核函数定义&#xff1a; 式中&#xff1a;依次作为主轴方向上的高斯尺度、主轴方向正交的高斯尺度&#xff0c; 是滤波器的中心频率&#xff1b;是调制平面波以及高斯主轴旋转的角度&#xff0c;它沿着逆时针方向&#xff0c;和是常数。Gabor滤波器…

版本管理工具git常用命令

一、git是什么&#xff0c;⽤来做什么 git是分布式版本控制系统&#xff0c;⽤来进⾏版本管理 ⼆、git有什么特点 git VS svn git是分布式&#xff0c;svn是集中式。分布式版本系统的最⼤好处之⼀是在本地⼯作完全不需要考 虑远程库的存在&#xff0c;也就是有没有联⽹都可以…