首页 > 其他分享 >随手记

随手记

时间:2023-06-29 16:24:28浏览次数:22  
标签:dependencyManagement 服务 请求 代理 随手 Leader 客户端

本文记录一些概念的定义或解释,都是网上 copy 来的,作回顾之用。

Java 相关

NoSQL 是什么

NoSQL(Not only SQL)是对不同于传统的关系型数据库的统称,广义地说,所有非关系型数据库都可称为 NoSQL。比如 Redis、MongoDB。

ZooKeeper 是什么

开源的分布式应用协调服务器,其为分布式系统提供一致性服务。其主要功能包括:配置维护、域名服务、分布式同步、集群管理等。ZAB 协议是 Paxos 算法的工业实现算法。

ZooKeeper 的三类角色:

  • Leader:事务请求的唯一处理者,也可以处理读请求。
  • Follower:可以直接处理客户端的读请求,并向客户端响应;但不会处理事务请求,只会将请求转发给 Leader;对 Leader 发起的事务提案具有表决权;同步 Leader 中事务处理结果;Leader 选举过程的参与者,具有选举权与被选举权。
  • Observer:可以理解为不参与 Leader 选举的 Follower,在 Leader 选举过程中没有选举权与被选举权;同时,对于 Leader 的提案没有表决权。用于协助 Follower 处理更多的客户端读请求。Observer 的增加,会提高集群读请求处理的吞吐量,但不会增加事务请求的通过压力,不会增加选举的压力。

微服务组件包括哪些

一个完整的微服务包括的组件:注册中心,配置中心,熔断,限流,链路跟踪,路由
在微服务中,有些组件为必须组件(必须启动存在),客户端才能正常调用

  • 必须组件:注册中心,后台服务(Provider)
  • 非必须组件:配置中心,熔断,限流,链路跟踪,路由

什么是路由?路由是指根据请求 URL,将请求分配到对应的处理程序,它只是 API 网关的一个功能点。

什么是注册中心

注册中心可以说是微服务架构中的地址簿,它记录了服务和服务地址的映射关系,在分布式架构中,服务会注册到这里,当服务需要调用其他服务时,就在这里找到服务的地址,进行调用。

为什么需要注册中心

服务注册中心给客户端提供可供调用的服务列表,客户端在进行远程服务调用时,根据服务列表然后选择服务提供方的服务地址进行服务调用。服务注册中心在分布式系统中大量应用,是分布式系统中不可或缺的组件。
注册中心是整个服务调用的核心部分,如果服务不存在注册中心,那么通过网关会调用不到,导致失败。

什么是反向代理

理解代理:代理本质上是一个服务器,可以类比为一个中介,A 和 B 本来可以直连,中间插入一个 C,C 就是中介。

  • 正向代理:服务端不知道真实的客户端是谁,客户端请求的服务都由代理服务器代替来请求。如通过 VPN 访问谷歌,VPN 就是一个正向代理服务器。
  • 反向代理:反向代理是代理服务器将客户端请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给客户端。客户端不感知代理的存在。

反向代理的作用有:

  1. 提升服务器安全,如保护内网免受 web 攻击
  2. 实现负载均衡

区别:

两者的区别在于代理的对象不一样:正向代理代理的对象是客户端,反向代理代理的对象是服务端。

图中提及的 LAN 是 Local Area Network,中文名叫做局域网。

dependencyManagement 和 dependencies 的区别

dependencyManagement即依赖管理。它的作用是申明一些依赖,但不会实际引入这些依赖,真正会引入引入的依赖是 dependencies 中配置的。

dependencyManagement一般是在父工程的 pom.xml 中使用,dependencyManagement 申明当前工程可能会使用到的一些依赖,子模块需要用哪个就在自己的 pom.xml 中添加依赖,不过不需要加版本号了,会继承父工程 dependencyManagement 中申明的版本号。

这么做的目的:

  1. 在父模块中使用 dependencyManagement 声明依赖能够统一项目内依赖的版本,子模块无须声明版本,避免出现子模块中同一依赖项版本不一致的情况,降低依赖冲突的几率。
  2. dependencyManagement 申明了依赖,子模块需要什么依赖就自己引入,避免引入一些不必要的依赖。

另外,dependencyManagement 结合 import 标签,可以将目标 pom.xml 中的 dependencyManagement 配置导入合并到当前 pom.xml 的 dependencyManagement 中。

<dependencyManagement>
    <dependencies>
        <!--导入依赖管理配置-->
        <dependency>
            <groupId>xxx</groupId>
            <artifactId>xxx</artifactId>
            <version>1.0</version>
            <!--依赖范围为 import-->
            <scope>import</scope>
            <!--类型一般为pom-->
            <type>pom</type>
        </dependency>
    </dependencies>
</dependencyManagement>

集群与分布式的区别

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

分布式是将一个系统分成不同的服务,部署在不同的服务器,每个节点独立工作,多个节点对外完成系统整体功能。

集群是将一个系统部署到几台服务器上,实现同一业务。集群强调组织性与关联性,多台机器统一管理,最终目的是高可用。

分布式的每一个节点,都可以做集群,而集群并不一定就是分布式的。

这两者是相辅相成的。

MySQL

标签:dependencyManagement,服务,请求,代理,随手,Leader,客户端
From: https://www.cnblogs.com/cloudrich/p/17486218.html

相关文章

  • java8随手记(包含idea连接远程分支出现Nothing to update问题)
    Steam流一、映射1.map()和.flatMap()map将数据放入集合中,返回Steam流中。例如:map集合{1,2,3},返回Steam流[a,b,c,{1,2,3}]flatMap将将集合中的数据,返回Steam流中.例如:flatMap集合{1,2,3},返回Steam流中[a,b,c,1,2,3]注意:add与addAll有同样的效果。   ......
  • 随手买web端使用说明
    项目背景:当今出行方案中,乘坐出租车以及网约车已成为一种主流,尤其是网约车,近几年随着规范化的网约车制度建立,网约车已成为正式的职业,按照最新的出行数据统计我国共有17家网约车平台订单量在30万单以上,这些出行订单均代表着一位乘车出行的乘客。这种出行方式,方便快捷,有很高的可定制......
  • 随手买车主端APP使用说明
    项目背景:当今出行方案中,乘坐出租车以及网约车已成为一种主流,尤其是网约车,近几年随着规范化的网约车制度建立,网约车已成为正式的职业,按照最新的出行数据统计我国共有17家网约车平台订单量在30万单以上,这些出行订单均代表着一位乘车出行的乘客。这种出行方式,方便快捷,有很高的可定制......
  • 【随手记录】关于Java字符串长度
    在java当中,在运行期间,字符串的长度是有最大限制的:21亿,也就是4GB;在编译期间,字符串的长度最大为:65534。字符串的内容是由一个字符数组char[]来存储的,由于数组的长度及索引是整数,Integer的最大范围是2^31-1,所以数组的最大长度可以使【0~2^31-1】通过计算是大概4GB=(2*2^31-......
  • 【随手买】团队博客总结
    设想和目标1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?我们的软件主要做的是车载随手买,我们之前有录制视频进行分析,有较为清晰地描述。2.是否有充足的时间来做计划?只有十天工程时间,计划时间是比较短的。再加上我们团队只有两个人,团队......
  • 【随手记录】Unable to create requested service [org.hibernate.engine.jdbc.env.sp
    链接数据库报错 Unabletocreaterequestedservice[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]出现这个问题基本是数据库的方言dialect或者驱动driver_class有问题,可以确认下dialect或者driver_class的配置和自己要链接的库、库版本是否一致,比如:spring.jpa......
  • 【笔记】杂项问题随手记
    C语言中<stdio.h>与“stdio.h“的区别:<stdio.h>表示在包含文件目录中去查找(包含文件目录是由用户在设置环境时设置的),而不再源文件目录中查找。"stdio.h"表示首先在当前的源文件目录中查找,若未找到才到包含目录中去查找。<stdio.h>用于引入标准库函数头文件,它是一个标准头文件,通常......
  • Spring Boot 我随手封装了一个万能的 Excel 导出工具,传什么都能导出!
    前言如题,这个小玩意,就是不限制你查的是哪张表,用的是什么类。我直接一把梭,嘎嘎给你一顿导出。我知道,这是很多人都想过的,至少我就收到很多人问过我这个类似的问题。我也跟他们说了,但是他们就是不动手,其实真的很简单。不动手怎么办?我出手呗。不多说开搞。正文玩法很简单。......
  • 锐浪报表随手记
    //用代码设置参数的数据:Report.ParameterByName("Parameter1").AsString="...";Report.ParameterByName("Parameter1").AsBoolean=true;Report.ParameterByName("Parameter1").AsDateTime=...;Report.ParameterByName("Parameter1&......
  • 【随手记】解决mybatis返回List<map>类型的数据时 无序 并且 不能返回空值
    返回结果无序希望表格的列能根据数据库查出来的数据保持一致,但是返回页面的结果集是无序在mybatis中使用List<Map>结构接收数据,发现输入的sql语句结果并不是按照输入的字段名顺序返回的。例如输入selectcol1,col2,col3fromtable却返回col2col3col1***......