微服务dubbo和nexus

微服务是一种软件开发架构风格,它将一个应用程序拆分成一组小型、独立的服务,每个服务都可以独立部署、管理和扩展。每个服务都可以通过轻量级的通信机制(通常是 HTTP/REST 或消息队列)相互通信。微服务架构追求高内聚、低耦合,使开发团队能够更加灵活地开发、测试和部署独立的功能模块。

服务治理是指在微服务架构中,对服务的管理、监控、调度和协调的一系列实践和工具。它包括服务注册与发现、负载均衡、故障转移、容错处理等,以确保微服务架构能够弹性扩展、容错恢复、高可用性。服务治理可以通过使用服务注册中心、负载均衡器、断路器等技术来实现。它提供了一种集中管理和控制微服务的方式,使整个系统具备更好的弹性和高可用性。

环境
zk是之前的环境
192.168.74.70 zk
192.168.74.71 zk
192.168.74.72 zk
192.168.74.67 provider
192.168.74.66 consumer
安装java环境
apt install openjdk-11-jdk -y

先启动生产者

上传dubbo-demo-provider-2.1.5-assembly.tar.gz
解压移动
mv dubbo-demo-provider-2.1.5 /usr/local/dubbo-demo-provider

修改配置,添加zookeeper配置,注释multicast

/usr/local/dubbo-demo-provider-2.1.5/conf# vi dubbo.properties 
dubbo.container=log4j,spring
dubbo.application.name=demo-provider
dubbo.application.owner=
dubbo.registry.address=multicast://224.5.6.7:1234
dubbo.registry.address=zookeeper://192.168.74.70:2181 | zookeeper://192.168.74.71:2181 zookeeper://192.168.74.72:2181 
#dubbo.registry.address=redis://127.0.0.1:6379
#dubbo.registry.address=dubbo://127.0.0.1:9090
dubbo.monitor.protocol=registry
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.log4j.file=logs/dubbo-demo-provider.log 
dubbo.log4j.level=WARN                                          

启动
root@node4:/usr/local/dubbo-demo-provider-2.1.5# ./bin/start.sh
查看日志

 cat logs/stdout.log [1.480s][warning][exceptions] Class com.alibaba.dubbo.common.URL in throws clause of method com.alibaba.dubbo.remoting.Server com.alibaba.dubbo.remoting.Transporter_Adpative.bind(com.alibaba.dubbo.common.URL, com.alibaba.dubbo.remoting.ChannelHandler) is not a subtype of class java.lang.Throwable
[2023-08-27 23:15:15] Dubbo service server started!

zk工具查看已经注册成功
在这里插入图片描述
zk就有了生产者地址

配置消费者

安装jdk
apt install openjdk-11-jdk
上传包并解压
tar -xf dubbo-demo-consumer-2.1.5-assembly.tar.gz -C /usr/local/

配置zookeeper地址

root@node3:~# vim /usr/local/dubbo-demo-provider/conf/dubbo.propertiesdubbo.container=log4j,spring
dubbo.application.name=demo-consumer
dubbo.application.owner=
#dubbo.registry.address=multicast://224.5.6.7:1234
dubbo.registry.address=zookeeper://192.168.74.70:2181 | zookeeper://192.168.74.71:2181 | zookeeper://192.168.74.72:2181
#dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo.registry.address=redis://127.0.0.1:6379
#dubbo.registry.address=dubbo://127.0.0.1:9090
dubbo.monitor.protocol=registry
dubbo.log4j.file=logs/dubbo-demo-consumer.log
dubbo.log4j.level=WARN

启动
root@node3:~/dubbo-demo-consumer-2.1.5# ./bin/start.sh

在这里插入图片描述

消费者启动不了

Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.alibaba.dubbo.demo.DemoService. No provider available for the service com.alibaba.dubbo.demo.DemoService from the url registry://192.168.74.72:2181/com.alibaba.dubbo.registry.RegistryService?application=demo-consumer&cluster=available&dubbo=2.1.5&pid=3467&refer=application%3Ddemo-consumer%26dubbo%3D2.1.5%26interface%3Dcom.alibaba.dubbo.demo.DemoService%26methods%3DsayHello%26monitor%3Ddubbo%253A%252F%252F192.168.74.72%253A2181%252Fcom.alibaba.dubbo.registry.RegistryService%253Fapplication%253Ddemo-consumer%2526dubbo%253D2.1.5%2526pid%253D3467%2526protocol%253Dregistry%2526refer%253Ddubbo%25253D2.1.5%252526interface%25253Dcom.alibaba.dubbo.monitor.MonitorService%252526pid%25253D3467%252526timestamp%25253D1693150000307%2526registry%253Dzookeeper%2526timestamp%253D1693150000302%26pid%3D3467%26revision%3D2.1.5%26timestamp%3D1693149990218&registry=zookeeper&timestamp=1693150000302 to the consumer 192.168.1.220 use dubbo version 2.1.
.2023-08-27 23:42:02,889 [main] ERROR com.alibaba.dubbo.remoting.transport.AbstractClient (AbstractClient.java:111) -  [DUBBO] Failed to start NettyClient node3/192.168.74.66 connect to the server /192.168.1.220:20880 (check == false, ignore and retry later!), cause: client(url: dubbo://192.168.1.220:20880/com.alibaba.dubbo.demo.DemoService?anyhost=true&application=demo-consumer&check=false&codec=dubbo&dubbo=2.1.5&heartbeat=60000&interface=com.alibaba.dubbo.demo.DemoService&loadbalance=roundrobin&methods=sayHello&monitor=dubbo%3A%2F%2F192.168.74.70%3A2181%2Fcom.alibaba.dubbo.registry.RegistryService%3Fapplication%3Ddemo-consumer%26dubbo%3D2.1.5%26pid%3D4732%26protocol%3Dregistry%26refer%3Ddubbo%253D2.1.5%2526interface%253Dcom.alibaba.dubbo.monitor.MonitorService%2526pid%253D4732%2526timestamp%253D1693150921489%26registry%3Dzookeeper%26timestamp%3D1693150921477&pid=4732&revision=2.1.5&timestamp=1693150921416) failed to connect to server /192.168.1.220:20880, error message is:connection timed out, dubbo version: 2.1.5, current host: 192.168.74.66

查看日志连不不上zk
首先telnet zk 地址发现能通
再次查看日志说在连接192.168.1.220 erro
因为配置了二个网卡 eth0 为192.168.1.0/24
eth1为192.168.74.0/24,zk和生产者都是74网段,但却走了eth0网卡,在消费者和生产者禁用eth0网卡后重启正常
在这里插入图片描述

chatgpt 方法
根据错误信息,导致这个异常的原因是服务中心中没有可用的提供者(provider)来提供名为 "com.alibaba.dubbo.demo.DemoService" 的服务。下面是一些可能的原因:1. 服务提供者没有正确启动或注册到服务中心。
2. 服务中心(zookeeper)的地址或配置不正确,导致注册失败。
3. 消费者端的网络连接问题,无法和服务中心进行通信。
4. 消费者端的版本不匹配,可能与服务端版本不兼容。要解决这个问题,你可以尝试以下步骤:1. 检查服务提供者是否已经正确启动,并确保它已经成功注册到服务中心。
2. 检查服务中心的地址和配置是否正确,确保消费者能够正确连接到服务中心。
3. 检查网络连接是否正常,确保消费者和服务中心之间能够相互通信。
4. 确保消费者端使用的 Dubbo 版本与提供者端一致,或者尝试更新消费者端的版本以解决兼容性问题。如果问题仍然存在,请根据具体情况进行进一步的调试和排查。

再启动一个生产者

消费者会轮询调用生产者,
生产者挂了,会取消调用挂了的生产者

dubboadmin

机器 192.168.74.68

下载上传tomcat
root@ubuntu20:/apps# tar -xf apache-tomcat-9.0.59.tar.gz 
root@ubuntu20:/apps# ls
进入webapps目录
root@ubuntu20:/apps/apache-tomcat-9.0.59/webapps# 
上传dubboadmin.war解压
mv /apps/dubboadmin.war  .root@ubuntu20:/apps/apache-tomcat-9.0.59/webapps# unzip dubboadmin.war 修改配置添加zk集群地址
cat /apps/apache-tomcat-9.0.59/webapps/dubboadmin/WEB-INF/dubbo.properties 
dubbo.registry.address=zookeeper://192.168.74.70:2181| zookeeper://192.168.74.71:2181 | zookeeper://192.168.74.72:2181
dubbo.admin.root.password=root  #登录用户和密码均为root
dubbo.admin.guest.password=guest

启动
root@node4:/apps/apache-tomcat-9.0.59# ./bin/catalina.sh start

在这里插入图片描述

java
专栏收录该内容
18 篇文章0 订阅
订阅专栏
dubbo-admin访问报404的错误主要有三方面:

1、zookeeper,没有提前启动;

2、防火墙没有关闭;

3、jdk版本过高,dubbo-admin不匹配;

这里主要针对第三个(版本不匹配进行讲解)进行讲解:

前提条件:1、zookeeper安装完毕;2、jdk8安装完毕;3、Tomcat安装完毕;4、maven安装完毕;参考: https://blog.csdn.net/weixin_38313970/article/details/89814286/

我这里dubbo版本2.1.5,排查后是jdk版本过高,
apt autoremove openjdk-11-jdk
apt install openjdk-8-jdk

在这里插入图片描述
路径问题,加dubboadmin
在这里插入图片描述

微服务编译

机器 192.168.74.69

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

如果遇到了网络问题,可以设置npm代理镜像来加速npm install的过程:
在~/.npmrc中增加 registry=https://registry.npmmirror.com
root@node6:~# cat .npmrc
registry=https://registry.npmmirror.com

下载代码
root@node6:~# apt install git

git clone https://github.com/apache/dubbo-admin.git

  1. 在 dubbo-admin-server/src/main/resources/application.properties中指定注册中心地址,我这里写一个地址
    root@node6:~/dubbo-admin# vim dubbo-admin-server/src/main/resources/application.properties
    admin.registry.address=zookeeper://192.168.71.70:2181
    admin.config-center=zookeeper://192.168.74.71:2181
    admin.metadata-report.address=zookeeper://192.168.74.71:2181

3.安装maven 编译

 apt install maven -y 
root@server02:~# mvn -v 
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 11.0.20, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-73-generic", arch: "amd64", family: "unix"

配置为阿里云镜像,就会去阿里云下载maven包

 vi /etc/maven/settings.xml<mirror><id>aliyun</id><name>Aliyun Maven Mirror</name><url>https://maven.aliyun.com/repository/public</url><mirrorOf>central</mirrorOf>
</mirror>

mvn clean package -Dmaven.test.skip=true

编译报错

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /root/dubbo-admin/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/config/SwaggerConfiguration.java:[29,52] cannot find symbolsymbol:   class EnableSwagger2location: package springfox.documentation.swagger2.annotations
[ERROR] /root/dubbo-admin/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/config/SwaggerConfiguration.java:[32,2] cannot find symbolsymbol: class EnableSwagger2
[INFO] 2 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for dubbo-admin 0.5.0-SNAPSHOT:
[INFO] 
[INFO] dubbo-admin ........................................ SUCCESS [01:20 min]
[INFO] dubbo-admin-ui ..................................... SUCCESS [01:28 min]
[INFO] dubbo-admin-server ................................. FAILURE [ 11.558 s]
[INFO] dubbo-admin-distribution ........................... SKIPPED
[INFO] dubbo-admin-test ................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  03:00 min
[INFO] Finished at: 2023-08-29T10:14:30+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project dubbo-admin-server: Compilation failure: Compilation failure: 
[ERROR] /root/dubbo-admin/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/config/SwaggerConfiguration.java:[29,52] cannot find symbol
[ERROR]   symbol:   class EnableSwagger2
[ERROR]   location: package springfox.documentation.swagger2.annotations
[ERROR] /root/dubbo-admin/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/config/SwaggerConfiguration.java:[32,2] cannot find symbol
[ERROR]   symbol: class EnableSwagger2
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :dubbo-admin-server

chatgpt

这个错误是由于在你的代码中找不到"EnableSwagger2"类引起的。"EnableSwagger2"是一个注解,用于启用Swagger API文档生成。在你的代码中,可能缺少了相关的依赖或者没有正确导入该注解所在的包。要解决这个问题,你可以尝试以下几个步骤:1. 确保你的项目中已经添加了Swagger相关的依赖。你可以在项目的pom.xml文件中查看是否包含了正确的依赖配置。2. 检查你的代码中是否正确导入了"EnableSwagger2"注解所在的包。你可以在代码中添加import语句来导入该注解所在的包。3. 如果以上步骤都没有解决问题,你可以尝试更新或更换"Maven Compiler Plugin"的版本。有时候,不同版本的插件可能会导致编译错误。希望这些步骤能够帮助你解决这个编译错误。如果问题仍然存在,请提供更多的错误信息或代码片段,以便我能够更好地帮助你
。根据你提供的代码文件,我可以看到你已经在`SwaggerConfiguration`类上使用了`@EnableSwagger2`注解来启用Swagger API文档生成。这意味着你的代码已经正确导入了`EnableSwagger2`注解所在的包。在你的代码中,你可以看到以下import语句:```java
import org.springframework.context.annotation.EnableSwagger2;

这个import语句导入了EnableSwagger2注解所在的包。因此,你的代码已经正确导入了该注解所在的包。

如果你仍然遇到关于EnableSwagger2类找不到的错误,请确保你的项目中已经添加了正确的依赖,并且依赖的版本与你的代码兼容。你可以检查项目的pom.xml文件中是否包含了类似以下的依赖配置:

<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version>
</dependency>

希望这能帮助你理解如何在代码中导入EnableSwagger2注解所在的包。如果你还有其他问题,请随时提问。

怎么区分环境
sed
配置文件地址写好

目前的java服务,大部分是通过maven编译
1.16C32G 配置jdk环境
2.安装maven
3.结合jenkins编译
4. 将编译好的jar包进行代码部署(target目录下),k8s环境要重新打镜像

nexus在这里插入图片描述

wget https://download.sonatype.com/nexus/3/nexus-3.59.0-01-unix.tar.gz

root@server02:/apps# ln -sf /apps/nexus-3.59.0-01 /apps/nexus

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

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

相关文章

Linux--VMware的安装和Centos

一、VMware和Linux的关系 二、VMware的安装 VM_ware桌面虚拟机 最新中文版 软件下载 (weizhen66.cn) VMware-Workstation-Lite-16.2.2-19200509-精简安装注册版.7z - 蓝奏云 如果安装不成功&#xff0c;则设置BIOS 三、在VMware中加入Centos 下载地址&#xff1a; CentOS-…

Linux 忘记密码解决方法

很多朋友经常会忘记Linux系统的root密码&#xff0c;linux系统忘记root密码的情况该怎么办呢&#xff1f;重新安装系统吗&#xff1f;答案是不需要进入单用户模式更改一下root密码即可。 步骤如下&#xff1a; 重启linux系统 3 秒之内要按一下回车&#xff0c;出现如下界面 …

unity-AI自动导航

unity-AI自动导航 给人物导航 一.地形创建 1.首先我们在Hierarchy面板中创建一个地形对象terrian&#xff0c;自行设定地形外貌&#xff0c;此时我们设置一个如下的地形外观。 二.创建导航系统 1.在主人公的Inspector、面板中添加Nav Mesh Agent &#xff08;导航网格代理&…

Linux操作系统--linux概述

1.Linux概述 Linux&#xff0c;全称GNU/Linux&#xff0c;是一种免费使用和自由传播的类UNIX操作系统&#xff08;OS&#xff09;。简单的说就是一种操作系统。在日常中常见的操作系统有一下三种: 2.linux起源和背景 (1).linux的诞生 linux操作系统是由李纳斯托瓦兹&#xf…

C++ 多重继承

所谓多重继承就是一个儿子有好几个爹&#xff0c;然后一个人继承了这几个爹的财产。只需注意构造顺序即可&#xff0c;反正析构的顺序也是一样的。 #include <iostream> #include <string.h> using namespace std;class base_a { public:base_a(const char *str){…

二十、观察者模式

一、什么是观察者模式 观察者&#xff08;Observer&#xff09;模式的定义&#xff1a;指多个对象间存在一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式&…

2007-2022年上市公司污染排放数据/2007-2022年上市公司污染排放水平、污染排放量数据

2007-2022年上市公司污染排放数据/2007-2022年上市公司污染排放水平、污染排放量数据 1、时间&#xff1a;2007-2022年 2、指标&#xff1a;证券代码、year、化学需氧量、氨氮排放量、总氮、总磷、水体综合污染当量对数、二氧化硫、氮氧化物、烟尘、空气综合污染当量对数、总…

静态类方法的同步

由于在调用静态方法时&#xff0c;对象实例不一定被创建。因此&#xff0c;就不能使用this来同步静态方法&#xff0c;而必须使用Class对象来同步静态方法。代码如下&#xff1a; 通过synchronized块同步静态方法 public class StaticSyncBlock { public static void…

word表格左侧边线明明有,但却不显示

如题&#xff0c;解决方法&#xff1a; 方案一&#xff1a; 1&#xff09;选中表格 2&#xff09;布局菜单--->自动调整 3&#xff09;自动调整中&#xff0c;选择“根据窗口自动调整表格” 4&#xff09;表格左侧边线就显示出来了。 方案二&#xff1a;把表格粘贴到新…

Kubernetes技术--Kubernetes架构组件以及核心概念

1.Kubernetes集群架构组件 搭建一个Kubernetes环境集群,其架构如下所示: 内容详解: Master:控制节点,指派任务、决策 Node:工作节点,实际干活的。 Master组件内容:

国产芯片设备达到3纳米,还打入台积电,美日荷被彻底赶出市场

由于众所周知的原因&#xff0c;荷兰和日本的光刻机对中国供应面临限制&#xff0c;其他芯片设备和材料也受到很大的限制&#xff0c;这促使国产芯片产业链积极完善&#xff0c;以实现纯国产芯片工艺&#xff0c;虽然在光刻机方面还稍微落后&#xff0c;不过有一项国产芯片设备…

day-03 基于TCP的服务器端/客户端

一.理解TCP和UDP TCP&#xff08;Transmission Control Protocol&#xff09;和UDP&#xff08;User Datagram Protocol&#xff09;是两种常见的传输层协议&#xff0c;用于在计算机网络中提供可靠的数据传输。 1.TCP&#xff1a; 连接导向&#xff1a;TCP是一种面向连接的…

c++ qt--线程(一)(第八部分)

c qt–线程&#xff08;一&#xff09;&#xff08;第八部分&#xff09; 一.进程&#xff08;Process&#xff09; 在任务管理器中的进程页下&#xff0c;可以看到进程&#xff0c;任务管理器将进程分为了三类&#xff0c;应用、后台进程、window进程 应用&#xff1a; 打开…

Docker(三) 创建Docker镜像

一、在Docker中拉取最基本的Ubuntu系统镜像 搜索Ubuntu镜像 Explore Dockers Container Image Repository | Docker Hub 下载镜像 docker pull ubuntu:22.04 二、在镜像中添加自己的内容 使用ubuntu镜像创建容器 docker run -it ubuntu:20.04 /bin/bash 在容器中创建了一个文…

【高性能计算】opencl语法及相关概念(二):索引,队列,核函数

目录 数据并行及任务并行异构编程语言的共性opencl的划分方式opencl上下文定义以字符串为主的程序对象同一设备&#xff0c;多个命令队列同时执行多个核函数的示例 数据并行及任务并行 数据并行是将大规模的计算任务划分为多个子任务&#xff0c;并将这些子任务同时应用于不同…

Android AGP版本

做个记录&#xff1a; Android AGP版本 https://developer.android.com/studio/releases/gradle-plugin?hlzh-cn

Android动态可编辑长度列表

概述 在界面实现一个列表&#xff0c;用户可以随意给列表新增或者删除项目&#xff0c;在开发中比较常用&#xff0c;但是真正做起来又有点花时间&#xff0c;今天花时间做一个&#xff0c;以便在以后的开发中用到。 详细 运行效果&#xff1a; 二、实现思路&#xff1a; 1…

官方推荐使用的OkHttp4网络请求库全面解析(Android篇)

作者&#xff1a;cofbro 前言 现在谈起网络请求&#xff0c;大家肯定下意识想到的就是 okhttp 或者 retrofit 这样的三方请求库。诚然&#xff0c;现在有越来越多的三方库帮助着我们快速开发&#xff0c;但是对于现在的程序员来说&#xff0c;我们不仅要学会如何去用&#xff…

MMSegmentation训练自己的语义分割数据集

全流程&#xff0c;训练语义分割数据集 数据标注json转mask 运行源码MMSegmentation模型选择运行部分 数据标注 # 安装 pip install labelme # 启动labelme labelme然后 ctrl N 开启多边形标注即可&#xff0c;命名类为person 之后会保存到同目录下json文件&#xff1a; js…

【YOLOV5】YOLOV5添加SPPCSPC

当前YOLOV5版本为7.0 第一步 在models/common.py添加SPPCSPC class SPPCSPC(nn.Module):# CSP https://github.com/WongKinYiu/CrossStagePartialNetworksdef __init__(self, c1, c2, n1, shortcutFalse, g1, e0.5, k(5, 9, 13)):super(SPPCSPC, self).__init__()c_ int(2 *…