8 补写zookeeper的linux系统的安装及部署

6 篇文章 0 订阅
1 篇文章 0 订阅

Zookeeper(注册中心)负责服务的协调调度.当客户端发起请求时,返回正确的服务器地址.

  • Zookeeper下载
    官网网址: http://zookeeper.apache.org/releases.html.
    点击download
    下载Zookeeper地址. --安装zookeeper前提是jdk已安装好!!
    http://mirrors.hust.edu.cn/apache/zookeeper/

zookeeper的Linux系统安装

1 cd /usr/local/src
2 上传zookeeper的安装文件
3 解压安装文件
tar -xvf zookeeper-3.4.8.tar.gz
4 在zookeeper的根目录下创建文件夹data/log
mkdir data log
在这里插入图片描述
5 跳入conf目录中修改配置文件
复制配置文件并且修改名称
cp zoo_sample.cfg zoo.cfg
6 修改zoo.cfg的配置信息
在这里插入图片描述
7 启动zookeeper --跳转到bin目录中
sh zkServer.sh start 或者 ./zkServer.sh start
sh zkServer.sh stop
sh zkServer.sh status
启动后效果:
在这里插入图片描述

Zookeeper集群安装

1 在zookeeper根目录中创建新的文件夹zkCluster.
在这里插入图片描述
2 创建zk1/zk2/zk3文件夹.
在这里插入图片描述
3 在每个文件夹里创建data/log文件夹.

mkdir {zk1,zk2,zk3}/{data,log}

在这里插入图片描述
4 添加myid文件
分别在zk1/zk2/zk3中的data文件夹中创建新的文件myid.其中的内容依次为1/2/3,与zk节点号对应.
在这里插入图片描述
编辑myid文件,定义编号.
在这里插入图片描述
5 编辑配置文件
将zoo_sample.cfg 复制为zoo1.cfg之后修改配置文件.
在这里插入图片描述
6 修改zoo1.cfg
在这里插入图片描述
dataDir 存放后期生成的快照等文件以及myid每台zookeeper服务器的id(范围1~255集群中不能重复)
dataLogDir 存放每台服务器生成的log日志文件
clientPort 每台zookeeper服务器端口号都不能重复,这是 服务器监听客户端连接的端口, 也即客户端尝试连接的端口, 默认值是 2181
server.1 即server.myid,每台服务器的myid都不一样(1~255) ,这里有几台zookeeper服务器组成的集群全部都需要写在一起,后面的主机:端口(zookeeper之间的通信端口):端口(zookeeper之间的选举端口)

配置完成后将zoo1.cfg复制2份.之后需要修改对应的文件夹目录.和不同的端口即可.
通过下面的命令启动zk集群. --一台台启动即可组成集群成功!!!
sh zkServer.sh start zoo1.cfg
sh zkServer.sh status zoo1.cfg

==这个就别执行了
sh zkServer.sh stop zoo1.cfg
说明:
1 集群启动后即开始选举,当票数超过半数即选举结束–所以3台时选举第二台时即完成选举
2 Zookeeper集群中leader负责监控集群状态,follower主要负责客户端链接获取服务列表信息.同时参与投票.

=====部署好之后项目的应用

dubbo框架下实现 客户端的负载均衡

说明:在微服务调用过程中每个服务的消费者都可以在客户端实现负载均衡的操作,在每次请求之前通过服务列表获取将要访问的服务信息.实现了压力私有化.
在这里插入图片描述
Dubbo框架负载均衡的方式
1.RandomLoadBalance 随机负载均衡 语法: random 默认的
2.RoundRobinLoadBalance 轮询策略 语法: roundrobin
3.ConsistentHashLoadBalance 一致性hash算法 将消费者与服务提供者绑定 语法: consistenthash
4.LeastActiveLoadBalance 挑选负载压力小的服务器进行访问 语法: leastactive
在这里插入图片描述

=====

Dubbo框架的使用 --前面以专门介绍了

1.jt-common充当接口项目
2.jt-sso 充当用户的提供者 服务端口号20880 服务名称 provider-sso ,接口实现纳入Dubbo框架里(添加dubbo依赖)的jt-common中的DubboUserService接口
3.jt-web 充当用户的消费者
具体流程: 这是一个聚合工程
父工程pom文件中添加dubbo依赖(所有子工程项目都继承自父工程)
jt-common中添加Dubbo的业务接口
在这里插入图片描述
jt-sso服务器作为服务提供者
编辑service实现类 --添加dubbo框架的注解@Service,并且该实现类实现dubbo框架里的第三方dubbo接口
在这里插入图片描述
编辑yml配置文件 --添加dubbo配置(包含了注册中心zookeeper的引入,貌似所有要使用dubbo框架的消费者,提供者服务器均需要配置dubbo,只是消费者配置信息少一些)

server:
  port: 8093
  servlet:
    context-path: /
spring:
  datasource:
    #引入druid数据源
    #type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
    username: root
    password: root
  #提供了MVC的支持
  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .jsp
#mybatis-plush配置
mybatis-plus:
  type-aliases-package: com.jt.pojo
  mapper-locations: classpath:/mybatis/mappers/*.xml
  configuration:
    map-underscore-to-camel-case: true

logging:
  level: 
    com.jt.mapper: debug

#关于Dubbo配置
dubbo:
  scan:
    basePackages: com.jt    #指定dubbo的包路径
  application:              #应用名称
    name: provider-sso     #一个接口对应一个服务名称
  registry:                 #zk集群 主机中的信息与从机中的信息一致的 从zk中获取数据的时候链接的从机 主机的作用就是监控集群
    address: zookeeper://192.168.126.129:2181?backup=192.168.126.129:2182,192.168.126.129:2183
  protocol:  #指定协议
    name: dubbo  #使用dubbo协议(tcp-ip)  web-controller直接调用sso-Service
    port: 20880  #每一个服务都有自己特定的端口 不能重复.

编辑服务消费者 dubbo远程调用提供者服务器即可
编辑controller --添加@Reference()注解即可DI依赖注入到接口对象中
在这里插入图片描述
编辑YML配置文件 --配置dubbo(只需要配置dubbo包扫描,定义应用名称,指定连接注册中心即可,不需要提供者还需要的指定传输协议及dubbo传输服务的端口–该端口与该服务器的端口是两个东西)

server:
  port: 8092    
spring:     #定义springmvc视图解析器
  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .jsp

dubbo:
  scan:
    basePackages: com.jt
  application:
    name: consumer-web   #定义消费者名称
  registry:               #注册中心地址
    address: zookeeper://192.168.126.129:2181?backup=192.168.126.129:2182,192.168.126.129:2183

=============

总结 Dubbo框架应用

1 提供者,消费者及第三方接口pom文件都要加载dubbo的依赖 --父级工程直接都继承自父级即可(父级pom文件中加载dubbo依赖)
2 定义第三方的dubbo接口 编写Dubboservice接口
3 定义服务提供者服务器yml文件中配置dubbo(只配置dubbo包扫描,定义应用名称,指定连接注册中心,指定传输协议及dubbo传输服务的端口) service层serviceImpl实现类上添加**@Service**(这是dubbo框架的注解)并实现dubbo框架里的第三方接口即可
4 定义服务消费者服务器yml文件中配置dubbo(只需要配置dubbo包扫描,定义应用名称,指定连接注册中心)即可 controller层添加**@Reference()注解**–这是dubbo框架提供的注解DI依赖注入第三方接口类型对象即可 直接去调用提供者的服务器了!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值