MQ--6 Message queuing)>>>>微服务与dubbo以及Nexus

2023-11-14

MQ–1( Message queuing)>>>>RabbitMQ
MQ–2 Message queuing)>>>>ZooKeeper
MQ–3 Message queuing)>>>>kafka
MQ–4-5 Message queuing)>>>>ActiveMQ、Rocket MQ

六.微服务与 dubbo

http://dubbo.apache.org/zh-cn/ ##dubbo 官网

http://dubbo.apache.org/zh-cn/docs/user/preface/architecture.html # dubbo 架构

在这里插入图片描述
在这里插入图片描述
调用关系说明
0.服务容器负责启动,加载,运行服务提供者。
1.服务提供者在启动时,向注册中心注册自己提供的服务。
2.服务消费者在启动时,向注册中心订阅自己所需的服务。
3.注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4.服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
5.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

连通性
注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小
监控中心负责统计各服务调用次数,调用时间等,统计先在内存汇总后每分钟一次发送到监控中心服务器,并以报表展示
服务提供者向注册中心注册其提供的服务,并汇报调用时间到监控中心,此时间不包含网络开销
服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,同时汇报调用时间到监控中心,此时间包含网络开销
注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外
注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者
注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表
注册中心和监控中心都是可选的,服务消费者可以直连服务提供者

健壮性
监控中心宕掉不影响使用,只是丢失部分采样数据
数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务
注册中心对等集群,任意一台宕掉后,将自动切换到另一台
注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯
服务提供者无状态,任意一台宕掉后,不影响使用
服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复

伸缩性
注册中心为对等集群,可动态增加机器部署实例,所有客户端将自动发现新的注册中心
服务提供者无状态,可动态增加机器部署实例,注册中心将推送新的服务提供者信息给消费者

升级性
当服务集群规模进一步扩大,带动IT治理结构进一步升级,需要实现动态部署,进行流动计算,现有分布式服务架构不会带来阻力。下图是未来可能的一种架构:

在这里插入图片描述
在这里插入图片描述

6.1:生产者 示例

http://dubbo.apache.org/zh-cn/docs/user/references/registry/zookeeper.html # ZK配置

root@ZK-server1:~# /usr/local/zookeeper/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
root@ZK-server1:~# /usr/local/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower
root@ZK-server2:~# /usr/local/zookeeper/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
root@ZK-server2:~#  /usr/local/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
root@ZK-server3:~# /usr/local/zookeeper/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
root@ZK-server3:~#  /usr/local/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower

window安装JAVA环境之后运行zookeeper的客户端工具
https://blog.csdn.net/LEON1741/article/details/90258255#如何安装window安装JAVA
在这里插入图片描述

6.1.1启动 provider

机器:172.20.10.200

http://dubbo.apache.org/zh-cn/docs/user/references/registry/zookeeper.html #zookeeper 注册中心

# pwd
/usr/local/src
# tar xf dubbo-demo-provider-2.1.5-assembly.tar.gz
# cd dubbo-demo-provider 2.1.5

# vim conf/dubbo.properties

注释前面的dubbo.registry.address=multicast://224.5.6.7:1234

dubbo.registry.address=zookeeper://172.20.10.100:2181 | zookeeper://172.20.10.101:2181 | zookeeper://172.20.10.102:2181 #zk 集群配置

###################################
dubbo.registry.address=zookeeper://172.18.0.101:2181 #单 zk 节点配置

实验:

```bash
root@server1:/usr/local/src/dubbo-demo-provider-2.1.5# vim conf/dubbo.properties 

root@Activemq-server1:/usr/local/src/dubbo-demo-provider-2.1.5# cat conf/dubbo.properties |grep ^[a-Z]
dubbo.container=log4j,spring
dubbo.application.name=demo-provider
dubbo.application.owner=
dubbo.registry.address=zookeeper://172.20.10.100:2181 | zookeeper://172.20.10.101:2181 | zookeeper://172.20.10.102:2181
dubbo.monitor.protocol=registry
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.log4j.file=logs/dubbo-demo-provider.log
dubbo.log4j.level=WARN
# ./bin/start.sh   #启动 provider
Starting the demo provider ....
root@server1:/usr/local/src/dubbo-demo-provider-2.1.5# tail -f logs/stdout.log
OpenJDK 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
log4j:WARN No appenders could be found for logger (com.alibaba.dubbo.common.logger.LoggerFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
[2020-03-26 10:29:26] Dubbo service server started!

6.1.2zookeeper 验证 provider 注册

在这里插入图片描述
在这里插入图片描述

6.2消费者 示例

6.2.1部署 consumer

机器:172.20.10.201

# tar xvf dubbo-demo-consumer-2.1.5-assembly.tar.gz
# cd dubbo-demo-consumer-2.1.5/

# vim conf/dubbo.properties #和前面生产者的配置一样
#dubbo.registry.address=multicast://224.5.6.7:1234
dubbo.registry.address=zookeeper://172.20.10.100:2181 | zookeeper://172.20.10.101:2181 | zookeeper://172.20.10.102:2181


# ./bin/start.sh
root@server2:/usr/local/src/dubbo-demo-consumer-2.1.5# ./bin/start.sh
Starting the demo-consumer ....OK!
PID: 2295
STDOUT: logs/stdout.log

6.2.2zookeeper 验证 consumer 注册

在这里插入图片描述

6.2.3验证 consumer 日志:

在消费者日志中可以看到在调用消耗

root@server2:/usr/local/src/dubbo-demo-consumer-2.1.5# tail -f logs/stdout.log 
[10:38:57] Hello world74, response form provider: 172.20.10.200:20880
[10:38:59] Hello world75, response form provider: 172.20.10.200:20880
[10:39:01] Hello world76, response form provider: 172.20.10.200:20880
[10:39:03] Hello world77, response form provider: 172.20.10.200:20880
[10:39:05] Hello world78, response form provider: 172.20.10.200:20880
[10:39:07] Hello world79, response form provider: 172.20.10.200:20880
[10:39:09] Hello world80, response form provider: 172.20.10.200:20880

6.2.4验证 provider 日志

在消生产者日志中可以看到在不断生产

root@server1:/usr/local/src/dubbo-demo-provider-2.1.5# tail -f logs/stdout.log
[10:38:41] Hello world66, request from consumer: /172.20.10.201:56274
[10:38:43] Hello world67, request from consumer: /172.20.10.201:56274
[10:38:45] Hello world68, request from consumer: /172.20.10.201:56274
[10:38:47] Hello world69, request from consumer: /172.20.10.201:56274
[10:38:49] Hello world70, request from consumer: /172.20.10.201:56274
[10:38:51] Hello world71, request from consumer: /172.20.10.201:56274
[10:38:53] Hello world72, request from consumer: /172.20.10.201:56274
[10:38:55] Hello world73, request from consumer: /172.20.10.201:56274

如果有多个消费者同时消费生产的消息队列,则多个消费者会轮询调用

6.3dubbo admin

基于zookeeper 发现并管理 provider 和 consumer 。

6.3.1部署 dubbo admin

一般会用tomcat来跑这个客户端软件

# mkdir /apps 运行 APP 目录
# mkdir  /data/tomcat/webapps/ -p
# cd /apps
# tar xvf apache-tomcat-8.5.46.tar.gz  #上传并解压 tomcat
# apps/apache-tomcat-8.5.46
root@Activemq-server1:~/apps/apache-tomcat-8.5.46# vim conf/server.xml
148       <Host name="localhost"  appBase="/data/tomcat/webapps"

# cd /data/tomcat/webapps/
# root@server1:/data/tomcat/webapps# unzip dubboadmin.war   #上传 dubbo admin 程序 压缩文件  


# vim ./dubboadmin/WEB-INF/dubbo.properties  #编辑 配置文件, 修改zookeeper连接地址
dubbo.registry.address=zookeeper://172.20.10.100:2181 | zookeeper://172.20.10.101:2181 | zookeeper://172.20.10.102:2181 #和之前的生产者和消费者一样的地址和端口
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest


root@server1:~/apps/apache-tomcat-8.5.46# ./bin/catalina.sh start
Using CATALINA_BASE:   /root/apps/apache-tomcat-8.5.46
Using CATALINA_HOME:   /root/apps/apache-tomcat-8.5.46
Using CATALINA_TMPDIR: /root/apps/apache-tomcat-8.5.46/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /root/apps/apache-tomcat-8.5.46/bin/bootstrap.jar:/root/apps/apache-tomcat-8.5.46/bin/tomcat-juli.jar
Tomcat started.

6.3.2验证 tomcat 日志:

root@Activemq:~/apps/apache-tomcat-8.5.46# tail -n5 logs/catalina.out 

 INFO servlet.SetLoggingContextFilter - SetLoggingContextFilter - mdc: initialization completed
26-Mar-2020 11:53:17.952 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploymnt of web application directory [/data/tomcat/webapps/dubboadmin] has finished in [16,950] ms
26-Mar-2020 11:53:17.954 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-800"]
26-Mar-2020 11:53:17.986 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-800"]
26-Mar-2020 11:53:18.006 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 17059 ms

6.3.3验证 dubbo admin 界面

http://172.18.0.103:8080/dubboadmin
在这里插入图片描述
应用界面:
在这里插入图片描述
服务:
在这里插入图片描述
注册中心:
在这里插入图片描述
系统环境:
在这里插入图片描述

6.4微服务编译:

http://dubbo.apache.org/zh-cn/docs/dev/build.html

6.4.1代码克隆与 编译

机器:172.20.10.202 内存设置为4G 因为这个机器需要编译工作

以github 上 java 开源项目 dubbo-admin 为例

https://github.com/apache/dubbo-admin/blob/develop/README_ZH.md #Github 地址

cd /usr/local/src/c'd
# git clone https://github.com/apache/dubbo-admin.git
Cloning into 'dubbo admin'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (3/3), d one.
remote: Total 7664 (delta 0), reused 0 (delta 0), pack reused 7661
Receiving objects: 100% (7664/7664), 12.85 MiB | 722.00 KiB/s, done.
Resolving deltas: 100% (4164/4164), done.

6.4.2maven 部署 准备:

Maven翻译为 专家 、 内行 “”,是 Apache 下的一个纯 Java 开发的开源项目
Maven 是一个 项目管理工具,可以对 Java 项目进行构建、 解决打包依赖等 。

POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个 XML 文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖等,在执行任务或目标时, Maven 会在当前目录中查找 pom 文件,通过读取
pom 文件获取所需的配置信息,然后执行目标。

Pom 文件 中可以指定以下配置:

项目依赖
插件
执行目标
项目构建 profile
项目版本
项目开发者列表
相关邮件列表信息

http://maven.apache.org/install.html #maven官方网址

https://mirrors.tuna.tsinghua.edu.cn/apache/maven/ #清华镜像源

https://archive.apache.org/dist/maven/maven-3/ #官方各版本下载地址 ,推荐 使用次新版本

java环境:
Maven是一个基于 Java 的工具所以服务器要 安装 jdk 环境,版本要求如下:

Maven 3.3 要求 JDK 1.7 或以上
Maven 3.2 要求 JDK 1.6 或以上
Maven 3.0/3.1 要求 JDK1.5 或以上

# apt install openjdk-8-jdk -y

Maven部署:

# cd /usr/local/
# wget /maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
# tar xvf apache-maven-3.6.3-bin.tar.gz

#/etc/profile  
export PATH=/usr/local/src/apache-maven-3.6.3/bin/:$PATH
#source /etc/profile

# mvn -version #查看是否mvn可以用
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/src/apache-maven-3.6.3
Java version: 1.8.0_242, vendor: Private Build, runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-29-generic", arch: "amd64", family: "unix"

6.4.3执行 java 代码编译:

Maven 的打包命令

  1. 进入到包含有“ pom.xml ”的路径,执行
    mvn clean install package

  2. 有的时候受到测试的干扰,导致无法正在进行 编译,这时候可以选择跳过测
    试:
    mvn clean install package Dmaven.test.skip=true

     " Dmaven.test.skip=true" true":跳过测试,并且不编译测试下的源代码
     	DskipTests"DskipTests":不执行测试,但是会进行测试代码的编译
    
  3. 如果需要编译的代码异常庞大,需要考虑对编译环境做一些处理,提成编译
    效率:
    启动多线程编译: mvn -T 4 clean install package -Dmaven.test.skip=true
    分配编译的 CPU 个数: mvn T 2C clean install package Dmaven.test.skip=true
    启用多线程编译: mvn clean install package Dmaven.test.skip=true-Dmaven.compile.fork=true

  4. 所有的 Maven 都是建立在 JVM 上的,所以进行编译的时候还需要考虑 JVM 参数优化:
    如果是 windows 找到“ maven/bin/mvn.cmd ”,如果 linux 找到“maven/bin/mvn ”,配 置参数是:“ MAVEN_OPTS
    打开属性配置文件: vim /etc/profile
    追加一个配置项: export MAVEN_OPTS=" -Xmx6g -Xms6g" #开发会在windons设置 一般可设置可不设置
    使配置立即生效: source /etc/profile

# echo $MAVEN_OPTS
-Xmx4g -Xms4g
6.4.3.1执行源码编译
# cd /usr/local/src/dubbo-admin 进入到源码目录
# vim dubbo admin-server/src/main/resources/application.properties 修改zookeeper 地址为实际 IP

# centers in dubbo2.7  #这里写一个也可以  为了HA也可以写zookeeper集群
admin.registry.address=zookeeper://172.20.10.100:2181 | zookeeper://172.20.10.101:2181 | zookeeper://172.20.10.102:2181

admin.config-center=zookeeper://172.20.10.100:2181 | zookeeper://172.20.10.101:2181 | zookeeper://172.20.10.102:2181

admin.metadata-report.address=zookeeper://172.20.10.100:2181 | zookeeper://172.20.10.101:2181 | zookeeper://172.20.10.102:2181


# mvn clean package 官方执行 java 编译
# mvn clean install package Dmaven.test.skip=true 执行 java 源码编译 并跳过测

报错
[ERROR] Killed
[ERROR] npm ERR! code ELIFECYCLE
[ERROR] npm ERR! errno 137
[ERROR] npm ERR! dubbo[ERROR] npm ERR! dubbo--adminadmin--ui@1.0.0 build: `node build/build.js`ui@1.0.0 build: `node build/build.js` [ERROR] npm [ERROR] npm ERR! Exit status 137ERR! Exit status 137 [ERROR] npm ERR! [ERROR] npm ERR! [ERROR] npm ERR! Failed at the dubbo[ERROR] npm ERR! Failed at the dubbo--adminadmin--ui@1.0.0 build script.ui@1.0.0 build script.

解决办法
1
服务器增加内存 推荐 4G 或以上 避免被 内核 OOM
2
服务器修改 node js 源为淘宝源 ,加速资源下载

root@web2:/opt/dubbo admin# npm config get registry https://registry.npmjs.org/

root@web2: web2:/opt/dubbo admin# npm config set registry https://registry.npm.taobao.org

root@web2:/opt/dubbo admin# npm config get registry
6.4.3.2 编译过程中

在这里插入图片描述

6.4.3.:3 编译 完成

在这里插入图片描述
编译总结命令:

root@dubbo-admin:/usr/local/src/dubbo-admin# mvn -T 4 clean install package  -Dmaven.test.skip=true

root@dubbo-admin:/usr/local/src/dubbo-admin# npm config get registry
https://registry.npm.taobao.org/

root@dubbo-admin:/usr/local/src/dubbo-admin# mvn -T 2 install package  -Dmaven.test.skip=true

编译完成,在dubbo-admin-distribution/target目录里面

root@dubbo-admin:/usr/local/src/dubbo-admin/dubbo-admin-server/target# ll
total 67844
drwxr-xr-x 10 root root     4096 Mar 26 23:54 ./
drwxr-xr-x  4 root root     4096 Mar 26 23:48 ../
drwxr-xr-x  2 root root     4096 Mar 26 23:54 antrun/
drwxr-xr-x  5 root root     4096 Mar 26 23:48 classes/
-rw-r--r--  1 root root 63176506 Mar 26 23:54 dubbo-admin-server-0.1.jar   #可以直接运行的jar包
-rw-r--r--  1 root root  6247851 Mar 26 23:54 dubbo-admin-server-0.1.jar.original
drwxr-xr-x  3 root root     4096 Mar 26 23:48 generated-sources/
drwxr-xr-x  3 root root     4096 Mar 26 23:48 generated-test-sources/
drwxr-xr-x  2 root root     4096 Mar 26 23:48 maven-archiver/
drwxr-xr-x  3 root root     4096 Mar 26 23:48 maven-shared-archive-resources/
drwxr-xr-x  3 root root     4096 Mar 26 23:48 maven-status/
-rw-r--r--  1 root root       30 Mar 26 23:54 .plxarc
drwxr-xr-x  3 root root     4096 Mar 26 23:48 test-classes/
6.4.3. 4 :验证 java 包
root@dubbo-admin:/usr/local/src/dubbo-admin/dubbo-admin-server/target# ll ./dubbo-admin-server-0.1.jar
-rw-r--r-- 1 root root 63173008 Mar 27 00:22 ./dubbo-admin-server-0.1.jar
6.4.3.5 :启动服务测试
root@dubbo-admin:/usr/local/src/dubbo-admin/dubbo-admin-server/target# java -jar dubbo-admin-server-0.1.jar 

在这里插入图片描述

dubbo-admin-0.1.jar的zookeeper文件修改
# sz dubbo-admin-0.1.jar #传输到桌面

在这里插入图片描述
在这里插入图片描述
重新拉进到ubantu中运行即可

# java -jar dubbo-admin-server-0.1.jar
6.4.3.6 web 界面验证

在这里插入图片描述

七.Nexus

Nexus 是一个强大的 Maven 仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。

http://blogs.studylinux.net/?p=4515 #搭建内网yum源

http://repo.maven.apache.org #maven 官方仓库:

https://help.sonatype.com/repomanager3/download #下载

7.1 部署 nexus

内存推荐4 G 或以上 太小会导致无法启动 例如

root@nexus server:/usr/local/nexus# ./bin/n exus run
WARNING: ************************************************************
WARNING: Detected execution as "root" user. This is NOT recommended!
WARNING: ************************************************************
Java HotSpot(TM) 64 Bit Server VM wa rning: INFO:
os::commit_memory(0x0000000717000000, 1890582528, 0) failed; error='Cannot
allocate memory' (errno=12)

7.1.1 启动 nexus

nexus也是依赖java环境

root@Nexus-server1:~# apt install openjdk-8-jdk -y
root@Nexus-server1:~# java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-8u242-b08-0ubuntu3~18.04-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
root@nexus server:/usr/local/src# tar xf nexus-3.20.1-01-unix.tar.gz
root@nexus server:/usr/local/src# ln -sv /usr/local/src/nexus-3.20.1-01 /usr/local/nexus
'/usr/local/nexus' --> '/usr/local/src/nexus 3.20.1 01'
root@nexus server:/usr/local/src# cd /usr/local/nexus

root@Nexus-server1:/usr/local/nexus# ll
total 104
drwxr-xr-x  9 root root  4096 Mar 26 15:59 ./
drwxr-xr-x  5 root root  4096 Mar 26 15:59 ../
drwxr-xr-x  3 root root  4096 Mar 26 15:59 bin/
drwxr-xr-x  2 root root  4096 Mar 26 15:59 deploy/
drwxr-xr-x  7 root root  4096 Mar 26 15:59 etc/
drwxr-xr-x  2 root root  4096 Mar 26 15:59 .install4j/
drwxr-xr-x  5 root root  4096 Mar 26 15:59 lib/
-rw-r--r--  1 root root   395 Mar 19 05:48 NOTICE.txt
-rw-r--r--  1 root root 17321 Mar 19 05:48 OSS-LICENSE.txt
-rw-r--r--  1 root root 41954 Mar 19 05:48 PRO-LICENSE.txt
drwxr-xr-x  3 root root  4096 Mar 26 15:59 public/
drwxr-xr-x 21 root root  4096 Mar 26 15:59 system/


# ./bin/nexus help
# ./bin/nexus run
# ./bin/nexus start

root@Nexus-server1:/usr/local/nexus# ./bin/nexus start
WARNING: ************************************************************
WARNING: Detected execution as "root" user.  This is NOT recommended!
WARNING: ************************************************************
Starting nexus

在这里插入图片描述
查看端口

在这里插入图片描述

7.1.2 登录 web 界面

访问界面:
在这里插入图片描述

root@Nexus-server1:/usr/local/nexus# grep 8081 ./* -R
./etc/nexus-default.properties:application-port=8081
Binary file ./system/com/sun/mail/javax.mail/1.6.1/javax.mail-1.6.1.jar matches

root@Nexus-server1:/usr/local/nexus# vim ./etc/nexus-default.properties  #配置文件的修改路径

有个文件中的一个随机密码:

root@Nexus-server1:/usr/local/nexus# cat /usr/local/src/sonatype-work/nexus3/admin.password
7bf94daf-029e-4e8c-967a-48137da23f8a

在这里插入图片描述

71 .3 设置向导

设置一些初始化设置
在这里插入图片描述
设置密码

在这里插入图片描述

匿名下载:
启用匿名访问将默认允许未经授权的下载,浏览和搜索存 储库内容, 可以通过编辑分配给匿名用户的角色来更改未经身份验证的用户的权限。

在这里插入图片描述
在这里插入图片描述

7.1.4 验证默认仓库

Hosted :本地仓库,通常我们会部署自己的构件到这一类型的仓库,比如公司的第三方库。

Proxy :代理仓库,它们被用来代理远程的公共仓库,如 maven 中央仓库。

Group :仓库组,用来合并多个 hosted/proxy 仓库,当你的项目希望在多个repository 使用资源时就不需要多次引用了,只需要引用一个 group 即可。

Hosted :宿主型的,由 nexus 给管理的仓库。

在这里插入图片描述

https://github.com/pdurbin/maven-hello-world.git

7.2 :使用 nexus 示例

在这里插入图片描述
在这里插入图片描述

7.2.1 :内网 yum 源示例

通过 nexus 作为公司内网 yum 仓库 通过阿里云镜像安装包
https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/
#阿里云镜像地址

Create repository-yum(proxy)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
访问复制出来的URL :
http://172.20.10.201:8081/repository/likai/

在这里插入图片描述

7.2.2 centos 7.x 配置 yum 仓库

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@localhost ~]# cat /etc/yum.repos.d/zabbix.repo
[zabbix-nexus]
name=zabbix
baseurl=http://172.20.10.201:8081/repository/likai/  #复制出来的url
enabled=1
gpgcheck=0

yum list zabbix*
在这里插入图片描述

自动同步下来:
在这里插入图片描述

7.2.3 centos7.x 安装 zabbix 测试

# yum install zabbix-agent -y

在这里插入图片描述
在这里插入图片描述

7.2.4 :验证 nexus 数据:

在这里插入图片描述
数据自动创建

root@Nexus-server1:/usr/local/nexus# ll /data/nxnus-data/
total 24
drwxr-xr-x 3 root root 4096 Mar 26 18:06 ./
drwxr-xr-x 4 root root 4096 Mar 26 17:22 ../
-rw-r--r-- 1 root root 4096 Mar 26 17:22 A8A88FE9-6AFD832C-5E2434BF-25656A1A-7E2ECAF7-deletions.index
-rw-r--r-- 1 root root   89 Mar 26 18:06 A8A88FE9-6AFD832C-5E2434BF-25656A1A-7E2ECAF7-metrics.properties
drwxr-xr-x 6 root root 4096 Mar 26 18:06 content/     #数据存放文件
-rw-r--r-- 1 root root   72 Mar 26 17:22 metadata.properties

fping命令可以查看文件定位

root@Nexus-server1:/data/nxnus-data/content# pwd
/data/nxnus-data/content
root@Nexus-server1:/data/nxnus-data/content# ll
total 24
drwxr-xr-x 6 root root 4096 Mar 26 18:06 ./
drwxr-xr-x 3 root root 4096 Mar 26 18:06 ../
drwxr-xr-x 2 root root 4096 Mar 26 18:06 tmp/
drwxr-xr-x 3 root root 4096 Mar 26 18:02 vol-31/
drwxr-xr-x 3 root root 4096 Mar 26 18:06 vol-34/
drwxr-xr-x 3 root root 4096 Mar 26 18:02 vol-39/
root@Nexus-server1:/data/nxnus-data/content# 

7.3修改 nexus 数据目录

将nexus 的数据目录修改为 /data

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.3 .2 nexus 服务器产生数据

在这里插入图片描述

7.3 .3 验证 nexus 数据目录

root@Nexus-server1:/data/nxnus-data# pwd
/data/nxnus-data

root@Nexus-server1:/data/nxnus-data# ll
total 24
drwxr-xr-x 3 root root 4096 Mar 26 18:06 ./
drwxr-xr-x 4 root root 4096 Mar 26 17:22 ../
-rw-r--r-- 1 root root 4096 Mar 26 17:22 A8A88FE9-6AFD832C-5E2434BF-25656A1A-7E2ECAF7-deletions.index
-rw-r--r-- 1 root root   89 Mar 26 18:06 A8A88FE9-6AFD832C-5E2434BF-25656A1A-7E2ECAF7-metrics.properties
drwxr-xr-x 6 root root 4096 Mar 26 18:06 content/
-rw-r--r-- 1 root root   72 Mar 26 17:22 metadata.properties

7.4 nexus 数据备份

Nexus
中普通数据信息和元数据(包的属性信息)是分开存储的,普通数据是保存在 blob 中,而元数据保存在数据库中,所以在备份的时候必须同时进行备份普通数据和元数据,才能在后期恢复数据的时候保证数据的最终完整性。

blob 数据
普通数据信息在 Nexus 中是保存在 blob 中的,所以此部分数据必须进行备份,blob 的典型配置中,此目录对应着 Nexus 的数据目录的 blobs 子目录。

元数据
元数据在 Nexus 中是在数据库中进行保存的,为了保证数据的完整性, Nexus需要同时将数据库中的数据进行导出和备份

7.4 1 nexus 备份配置

7.4.1.1 添加存储用于保存备份数据

在这里插入图片描述
在这里插入图片描述
创建新的目录用于备份

7.4.1.2 nexus blob 备份计划任务选择

创建任务
在这里插入图片描述

在这里插入图片描述
选择blob 数据备份:
在这里插入图片描述
配置数据目录和备份时间:
在这里插入图片描述
会自动创建nexus-backup
01:00 凌晨1点开始备份

7.4.1.4 nexus 元数据备份计划任务

在这里插入图片描述
任务配置:
在这里插入图片描述
时间周期尽量保持一致

验证计划任务:
在这里插入图片描述

7.4.1.5 测试备份

#####7.4.1.5.1 立即备份普通数据 :

进入到普通数据备份任务计划
在这里插入图片描述
立即备份:
在这里插入图片描述
备份结果:
在这里插入图片描述
OK 表示备份是成功的

7.4.1.5.1 立即备份元数据:

在这里插入图片描述
执行备份:
在这里插入图片描述
备份结果:

在这里插入图片描述

7.4.1.6 验证备份数据

在这里插入图片描述

备份二:
整个安装目录以及数据目录都给打包

数据目录:
在这里插入图片描述

安装目录全部打包拷贝走
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MQ--6 Message queuing)>>>>微服务与dubbo以及Nexus 的相关文章

随机推荐

  • mysql 集群 一主两从环境测试,MHA主备切换

    目录 前言 1 相关安装文件 2 虚拟机 mysql数据库安装 2 1 安装VMware 15 以及 linux 操作系统 2 2 安装mysql数据库 2 2 1安装环境准备 2 2 2 mysql 数据库安装 2 3 克隆centos虚
  • Cmake零基础教程——常用语法命令

    编译选项 在cmake脚本中 设置编译选项有两种方式 1 可以通过add compile options命令 2 也可以通过set命令修改CMAKE CXX FLAGS或CMAKE C FLAGS 存在即合理 那么使用这两种方式存在怎样的区
  • ssh和ftp登录的几种方式

    ssh登录的几种方式 本文为https www bilibili com video av755468030 笔记 1 密码账号登录 ssh p 1234 name 目标ip p 为指定端口 name为用户名 2 使用公钥私钥登录 获取指定
  • IDEA中javaweb项目导入外部jar包

    IDEA中javaweb项目导入外部jar包 打开Project Structure 选中Modules 选择Dependencies 点击 选择要导入的jar包或jar包文件夹 选中要使用的jar包或jar包文件夹 点击ok 如果只是按照
  • excel导出功能

    安装excel所需依赖和按需加载 由于 Export2Excel不仅依赖js xlsx还依赖file saver和script loader 所以你先需要安装如下命令 npm install xlsx file saver S npm in
  • React传参和定义变量

    react 声明变量 react传参
  • 学习linux内核的经典书籍介绍

    有关内核的书籍可以用汗牛充栋来形容 不过只有一些经典的神作经住了考验 首先是5本久经考验的神作 个人概括为 2 1 2 第一个2是指2本全面讲解内核的书 中间的1指1本讲解驱动开发的书 后面的2则指2本有关内核具体子系统的书 你是否想到了某
  • vscode 静态语法检测插件C/C++ Advanced Lint,ubuntu20.04安装clang、cppcheck

    远程环境 ubuntu20 04 本地开发环境 windows 11 开发IDE vscode 一 ubuntu20 04安装clang 安装llvm apt get install llvm 2 安装clang apt get insta
  • 11-数据结构-双链表的创建-输出-初始化-插入-删除

    问题 双链表的创建 输出 初始化 插入 删除 思路 搞清楚双链表是怎么样的 多了一个前指针 此外每次链接的时候 都是先连接好后面的再连接前面的 直接看代码吧 代码如下 include
  • 思科实验 voip通信的配置(内附命令超详细)

    作者 小刘在C站 个人主页 小刘主页 每天分享云计算网络运维课堂笔记 努力不一定有回报 但一定会有收获加油 一起努力 共赴美好人生 夕阳下 是最美的绽放 树高千尺 落叶归根人生不易 人间真情 目录 一 实验目的和要求 二 实验设备
  • Python疫情数据爬取与可视化

    使用Python爬取腾讯新闻疫情数据 并使用pyecharts可视化 绘制增长人数地图 柱状图 折线图 文章目录 1 分析网页 2 导入模块 3 抓取数据 4 提取数据并写入Excel 5 国内各地区现有确诊人数地图 6 国内各地区现有确诊
  • 秒懂边缘云

    作者 辰舒 章节内容 如何配置解析记录 已有CNAME A记录时如何配置 如何检查解析配置是否生效 解析基本原理 前言 上个章节中我们学习了如何根据业务情况添加CDN域名并配置源站 但在添加完成后 域名尚未真正接入CDN服务 我们需要将域名
  • Kafka

    1 概述 1 1 定义 Kafka是一个分布式的基于发布 订阅模式的消息队列 主要应用于大数据实时处理领域 优势 kafka可以做到 使用非常普通的硬件 也可以支持每秒数百万的消息读写 MQ 代表消息队列 kafka只是众多mq中一款产品
  • Shell脚本编程入门--Day2

    文章目录 几个简单内置shell命令 shell字串的语法 计算变量长度的各种玩法 批量修改文件名 特殊shell扩展变量 实际应用 父子shell 创建进程列表 创建子shell 几个简单内置shell命令 echo n 不换行输出 e
  • 牛客面试高频算法题js(最长无重复子数组、删除链表的倒数第n个节点、大数加法、按之字形顺序打印二叉树、链表相加(二))

    最长无重复子数组 描述 给定一个长度为n的数组arr 返回arr的最长无重复元素子数组的长度 无重复指的是所有数字都不相同 子数组是连续的 比如 1 3 5 7 9 的子数组有 1 3 3 5 7 等等 但是 1 3 7 不是子数组 数据范
  • Java并发基础:变量的线程安全

    一 变量的线程安全分析 成员变量和静态变量是否线程安全 如果它们没有共享 则线程安全 如果它们被共享了 根据它们的状态是否能够改变 又分两种情况 如果只有读操作 则线程安全 如果有读写操作 则这段代码是临界区 需要考虑线程安全 局部变量是否
  • 解决Windows Server 2012 R2无法远程桌面

    通常使用Windows Server 的远程桌面 我们自然是在配置中启用远程桌面 系统会默认将所需要的防火墙对应的入站协议启用 这样我们就可使用远程桌面了 但是如果您尝试了Windows Server 2012 R2后 或许会碰到和我一样的
  • range遍历 channel 的小坑

    package main import fmt sync var wg sync WaitGroup func main c make chan int 无缓冲 wg Add 1 go send c for i range c send 协
  • 第六篇 在ROS工程中使用QT开发界面笔记之--混用线程和信号槽机制

    有个新任务 需要显示sub到的数据内容 看起来挺简单的 毕竟原来那个工程采用zmq数据流的发送与接收时用到了启动新线程接收数据的方法 照搬肯定不行 因为有区别 原来工程直接在新线程里面持续接收数据 与界面的主线程没有关系 现在这种要用界面s
  • MQ--6 Message queuing)>>>>微服务与dubbo以及Nexus

    MQ 1 Message queuing gt gt gt gt RabbitMQ MQ 2 Message queuing gt gt gt gt ZooKeeper MQ 3 Message queuing gt gt gt gt ka