在Linux系统使用Tomcat运行dubbo服务框架,并启动zookeeper注册中心

一、dubbo服务框架的介绍:

Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。简单的说,Dubbo 就是个服务框架,说白了就是个远程服务调用的分布式框架

soa面向服务(以dubbo为基础)
1、dubbo服务框架的soa的工作原理,和spring cloud类似
2、dubbo和spring cloud的区别在于,dubbo有自己的dubbo协议通信(dubbo、tcp、rmi、hessian、http、webservice、rest等),而spring cloud是通过http协议通信的(rest风格)
3、dubbo有一个注册中心的客户端在每时每刻同步注册中心的服务信息
4、dubbo有一个java web的监控中心,负责监控服务的注册信息,甚至可以配置负载均衡。

二、设置使用Tomcat服务器运行Dubbo服务框架

1、首先要运行Tomcat,解压Tomcat的压缩包,并且编辑server.xml文件
链接: https://pan.baidu.com/s/1bIdr2rJ63WhgXfij2XPokA 提取码: 7trw
Vi ../conf/server.xml文件

这个文件下的标签:
<server></server> tomcat
<service></service> 提供http服务协议
<Engine></Engine> servlet引擎
<Host></Host> 虚拟机的进程

2、在host标签里面加入以下代码(运行Tomcat默认启动dubbo服务框架):

<Context path="/dubbo" docBase="/opt/dubbo" debug="0" privileged="true"/>

Path表示在网页访问的名字,docbase表示运行文件目录下的进程文件

3、
unzip 压缩包 -d 文件夹 解压war压缩包,把压缩包就解压到-d 文件夹中。
为什么要把他解压到某个文件夹里呢?
链接: https://pan.baidu.com/s/1uS5PRNORfbdzF8-aNfa20g 提取码: mq55
因为这个压缩包直接解压是一堆零散文件,姑且解压dubbo-admin-2.6.0.war文件时,把解压文件放到dubbo文件夹中,方面后续使用该框架。

4、cd到Tomcat的bin下面
5、sh命令 sh startup.sh运行Tomcat就可以了,
运行之前,确保已经安装jdk
编辑文件 …/tomcat/bin/catalina.sh (根据你自己的jdk路径进行修改) 在文件的正文开头

export JAVA_HOME=/usr/local/jdk
export JRE_HOME=/usr/local/jdk/jre

6、sh命令sh shutdown.sh可以关闭Tomcat

之后可以在浏览器访问192.168.1.109:8080/dubbo/就能进入dubbo监控中心了
注意前面不能加https,不然不可以访问。
并且输入账号密码root和root就可以了。
这里的192.168.1.109是自己Linux系统的IP地址

注意:如果主机无法访问虚拟机里的Tomcat,先查明白,主机ping一下虚拟机的ip地址,如果互通的话,很可能就是端口8080被禁了,
要执行下面代码把8080端口在防火墙中放行

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

在这里插入图片描述

三、启动注册中心zookeeper

链接: https://pan.baidu.com/s/18GO_dPC4uJnSL4GI-0aA_A 提取码: 2wew
1、tar -zxvf zookeeper-3.4.11.tar.gz解压这个文件
2、cdconf文件夹里,看到zoo_sample.cfg文件,这是一个例子配置文件,不是真正的配置文件
3、把这个文件copy一份,利用命令cp zoo_sample.cfg zoo.cfg,变成zoo.cfg文件
4、vi zoo.cfg修改datadir的路径,保存的数据目录到这个路径,数据目录设置为dataDir=/opt/zookeeper-3.4.11/data,并查看该路径下是否有这个文件夹?
5、如果没有这个文件夹,就在zookeeper-3.4.11文件夹下mkdir一个文件夹data,用来接收数据目录的
在这里插入图片描述
7、启动zookeeper ,cd到bin下面
在这里插入图片描述
9、启动两条进程:
./zkServer.sh start启动主进程
./zkServer.sh status启动状态进程

是启动两个进程!!!记住了!!!
启动的是zookeeper程序的两条进程!!!

10、可以ps -ef|grep zookeeper,查看这个进程的运行情况

11、因为是先运行的dubbo监控中心,所以在Tomcat打印的日志文件logs会有报错找不到zookeeper,之后sh shutdown.sh关闭Tomcat,rm -rf *删除上一次的日志文件logs,
再sh satartup.sh运行一下就可以了,就不会报错找不到zookeeper了。

四、dubbo服务框架和zookeeper注册中心的使用与关系

调用关系:
服务提供者(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。
服务消费者(Consumer): 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
注册中心(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
——调用关系说明:
——服务容器负责启动,加载,运行服务提供者。
——服务提供者在启动时,向注册中心注册自己提供的服务。
——服务消费者在启动时,向注册中心订阅自己所需的服务。
——注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
——服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
——服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

五、dubbo的端口号问题

在这里插入图片描述
1、当我们的spring boot项目启动时,机器的网卡会自动的分配dubbo之间的通讯协议的端口号,但有可能有些机器的网卡设置出问题,会导致无法分配dubbo端口号,最终导致第二个服务无法启动!!!

解决方式1(手动分配):
在这里插入图片描述
解决方式2:解决网卡的问题。

2、微服务的端口号,是接收http协议请求,负责传输web的请求,和dubbo端口不一样的!!!
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值