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 的打包命令
-
进入到包含有“ pom.xml ”的路径,执行
mvn clean install package
-
有的时候受到测试的干扰,导致无法正在进行 编译,这时候可以选择跳过测
试:
mvn clean install package Dmaven.test.skip=true
" Dmaven.test.skip=true" true":跳过测试,并且不编译测试下的源代码
DskipTests"DskipTests":不执行测试,但是会进行测试代码的编译
-
如果需要编译的代码异常庞大,需要考虑对编译环境做一些处理,提成编译
效率:
启动多线程编译: 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
-
所有的 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 验证备份数据
备份二:
整个安装目录以及数据目录都给打包
数据目录:
安装目录全部打包拷贝走