Mac 下ZooKeeper安装和使

news2024/9/27 9:27:21

Mac 下ZooKeeper安装和使用

Apache ZooKeeper分布式协调系统是构建分布式应用程序的高性能服务。

1.下载ZooKeeper

环境要求:ZooKeeper服务器是用Java创建的,它运行在JVM之上。需要安装JDK 7或更高版本。

https://zookeeper.apache.org/releases.html

或者直接去资源包目录下载

https://archive.apache.org/dist/zookeeper/

2. 配置ZooKeeper

Tomcat一样,下载后,解压到你指定的目录即可。

进入conf文件夹中,copy一份配置文件,并指定你的存储数据data目录

你可以使用

dataDir=../data

这样就可以在你的conf的上级目录创建data目录,用于存储数据

3. 启动ZooKeeper

进入bin目录

启动命令

./zkServer.sh start

查看状态

./zkServer.sh status

停止命令

./zkServer.sh stop

启动客户端

./zkCli.sh

4. 配置环境变量(可选)

打开终端输入以下命令,打开 .bash_profile 文件

sudo vi ~/.bash_profile

.bash_profile添加你的zkServer所在目录。

这样你打开终端可以在任意目录下启动zkServer

zkServer.sh start

5. ZooKeeper在Spring中注册

新建Spring项目注册zookeeper服务,配合dubbo使用

  1. pom.xml添加如下配置

    <packaging>war</packaging>
    <properties>
            <dubbo.version>2.7.4.1</dubbo.version>
            <zookeeper.version>4.0.0</zookeeper.version>
    </properties>
    <!--Dubbo的起步依赖,版本2.7之后统一为rg.apache.dubb -->
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo</artifactId>
                <version>${dubbo.version}</version>
            </dependency>
            <!--ZooKeeper客户端实现 -->
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>${zookeeper.version}</version>
            </dependency>
            <!--ZooKeeper客户端实现 -->
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>${zookeeper.version}</version>
            </dependency>
    

    **注意:**注册zookeeper服务,Service模块要打包方式要改为war包

  2. applicationContext.xml添加如下配置

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	   xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" xmlns:context="http://www.springframework.org/schema/context"
    	   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    
    	<context:component-scan base-package="com.example.service" />
    
    	<!--dubbo的配置-->
    	<!--1.配置项目的名称,唯一-->
    	<dubbo:application name="dubbo-service">
    		<dubbo:parameter key="qos.port" value="20282"/>
    	</dubbo:application>
    <!--	修改端口号-->
    	<dubbo:protocol port="20281"/>
    	<!--2.配置注册中心的地址-->
    	<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
    	<dubbo:metadata-report address="zookeeper://127.0.0.1:2181"/>
    	<!--3.配置dubbo包扫描-->
    	<dubbo:annotation package="com.example.service.impl" />
    </beans>
    
  3. 在Service的类上面改用dubbo下的@Service注解

    import org.apache.dubbo.config.annotation.Service;
    
    //@Service
    @Service
    public class UserServiceImpl implements UserService {
    
        public String sayHello() {
            return "Hello DubboAndZookeeper";
        }
    
        public User getUser() {
            User user = new User(1, "zhangsan", "123456");
            return user;
        }
    }
    

    **注意:**如果使用自定义对象,那么这个对象要实现Serializable接口

6. ZooKeeper在Spring中使用

  1. 在SpringWeb项目的pom.xml文件中添加如下依赖

    <packaging>war</packaging>
    <properties>
            <dubbo.version>2.7.4.1</dubbo.version>
            <zookeeper.version>4.0.0</zookeeper.version>
    </properties>
    <!--Dubbo的起步依赖,版本2.7之后统一为rg.apache.dubb -->
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo</artifactId>
                <version>${dubbo.version}</version>
            </dependency>
            <!--ZooKeeper客户端实现 -->
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>${zookeeper.version}</version>
            </dependency>
            <!--ZooKeeper客户端实现 -->
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>${zookeeper.version}</version>
            </dependency>
    
  2. applicationContext.xml添加如下配置

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
             http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
        <mvc:annotation-driven/>
        <context:component-scan base-package="com.example.controller"/>
        <!--dubbo的配置-->
        <!--1.配置项目的名称,唯一-->
        <dubbo:application name="dubbo-web" >
            <dubbo:parameter key="qos.port" value="33333"/>
        </dubbo:application>
        <!--	修改端口号-->
        <dubbo:protocol port="20282"/>
        <!--2.配置注册中心的地址-->
        <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
        <!--3.配置dubbo包扫描-->
        <dubbo:annotation package="com.example.controller" />
    </beans>
    
  3. Controller类上面把@Autowired注入改为@Reference注入

    @RestController
    @RequestMapping("/user")
    public class UserController {
    //    @Autowired
        /*
            1. 从zookeeper注册中心获取userService的访问url
            2. 进行远程调用RPC
            3. 将结果封装为一个代理对象。给变量赋值
    
         */
        @Reference//远程注入
        public UserService userService;
        @RequestMapping("/sayHello")
        public String sayHello(){
            return userService.sayHello();
        }
    
        @RequestMapping("/getUserById")
        public String getUserById(){
            User user = userService.getUser();
            System.out.println(user.toString());
            return user.toString();
        }
    }
    

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

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

相关文章

1.3 PCIe——硬件实现架构

PCIe的设计可以分为controller和PHY&#xff0c;整体设计较为复杂&#xff0c;一般可向IP厂商定制设计&#xff0c;controller和PHY模块的接口是PIPE接口 一、一般实现架构 1.1 PCIE controller 控制器逻辑包含了IP的host设计&#xff0c;以及PCIe协议中所规定的事务层、数…

AirServer电脑投屏软件免费版使用及切换中文教程

AirServer是由App Dynamic打造的一款投屏软件。AirServer是适用于Mac和Windows的先进的屏幕镜像接收器。可以将手机设备&#xff0c;如iPhone、iPad、安卓上的屏幕投送到电脑屏幕上。特别我们日常开会要给客户演示手机上的操作时&#xff0c;投屏就显得非常专业。当然&#xff…

关于java位移运算的一点讨论

框架乱飞的年代&#xff0c;时常还得往框架源码里看&#xff0c;对内在原理没点理解&#xff0c;人家就会认为你不太行。平时开发你可能没咋用过位移运算&#xff0c;但往源码里一看&#xff0c;就时常能看到它。我也是看着看着&#xff0c;突然仔细一琢磨&#xff0c;又不由得…

【机器学习 - 4】:线性回归算法

文章目录线性回归线性回归的理解损失函数简单线性回归封装线性回归算法线性回归算法在sklearn中调用线性回归算法向量化运算线性回归模型中的误差均方误差 MSE均方根误差平均绝对误差调用sklearn中的均方根误差和平均绝对误差函数R squared error &#xff08;常用&#xff09;…

结构光相机国产、非国产统计参数对比分析

结构光相机国产、非国产统计参数对比分析 1. Kinect v1 Kinect v1深度相机拥有一个RGB彩色摄像头&#xff0c;一个红外线CMOS摄像机和一个红外发射器。相机的红外线CMOS摄像机和红外发射器以左右水平的方式分布。该相机采用的是以结构光为基础进行改进后的光编码&#xff08;…

【SpringCloud16】SpringCloud Sieuth分布式请求链路跟踪

1.概述 1.1 为什么会出现这个技术&#xff1f; 问题&#xff1a; 在微服务框架中&#xff0c;一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果&#xff0c;每一个前段请求都会形成一条复杂的分布式服务调用链路&#xff0c;链路中…

Linux服务器离线安装Gitlab

1、下载 1.1、网址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ 1.2、选择版本 2、安装 2.1、将安装包上传到服务器 2.2、检查相关依赖是否安装 使用命令 rpm -qa | grep -i &#xff08;要查看的依赖名&#xff09;&#xff1b;如果安装了&#…

OpenAI DALL·E 绘画机器人

快过年了&#xff0c;在公司也没啥任务&#xff0c;索性尝试使用OpenAI的DALLE生成一些好玩的图片。 OpenAI DALLE 官方介绍&#xff1a; DALLE 是一种由 OpenAI 开发的大型语言模型&#xff0c;其能够通过生成图像和文本来完成各种任务。其名称来源于绘画机器人 WALLE 和艺术家…

2023年准备报考软考,考哪个?

一般建议从软考中级考试考&#xff0c;科目多&#xff0c;难度也不大&#xff01;关于中级科目。计算机软件类包括&#xff1a;软件评测师、软件设计师、软件过程能力评估师。计算机网络类包括&#xff1a;网络工程师。计算机应用技术类包括&#xff1a;多媒体应用设计师、嵌入…

DBCO-PEG-OPSS_OPSS-PEG-DBCO_二苯并环辛烯PEG巯基吡啶

DBCO 试剂是一类点击化学标记试剂&#xff0c;含有非常活泼的 DBCO&#xff08;&#xff08;二苯并环辛炔&#xff09;基团&#xff0c;DBCO 试剂可以通过无铜点击化学与叠氮化物标记的分子或生物分子发生反应。DBCO 点击化学可以在水性缓冲液中运行&#xff0c;也可以在有机溶…

机器学习知识总结 —— 16.如何实现一个简单的SVM算法

文章目录创建具有特征的二维数据实现SVM算法线性核函数梯度下降和损失函数训练实验效果总结在前面的章节里&#xff0c;已经简要的介绍了SVM算法的工作原理&#xff0c;现在在这篇文章里&#xff0c;我们来看看SVM算法的一些简单实现。 创建具有特征的二维数据 一般来说&…

【闪电侠学netty】第8章 客户端与服务端通信协议编解码

【Netty】读书笔记 - 跟闪电侠学 1. 内容概要 1.1 总结 1.1.1 编码与解码定义 编码&#xff1a;把java对象根据协议封装成二进制数据包的过程 解码&#xff1a;从二进制数据包中解析出Java对象的过程 1.1.2 设计了如下几个类 文件名类型描述Serializerinterface 作用&#…

MacOS Docker 安装和运行原理

本文讲述主要是基于Mac电脑安装教程&#xff0c;使用的是homebrew安装&#xff0c;未安装homebrew的请先自行安装下 一、使用 Homebrew 安装 macOS 我们可以使用 Homebrew 来安装 Docker。Homebrew 的 Cask 已经支持 Docker for Mac&#xff0c;因此可以很方便的使用 Homebrew…

【代码实验】CNN实验——利用Imagenet子集训练分类网络(AlexNet/ResNet)

文章目录前言一、数据准备二、训练三、结果前言 Imagenet是计算机视觉的经典分类比赛&#xff0c;但是Imagenet数据集本身太大了&#xff0c;我们穷学生没有这么大的算力&#xff0c;2016年google DeepMind团队从Imagnet数据集中抽取的一小部分&#xff08;大小约3GB&#xff…

DBCO-PEG-Methacrylate_DBCO-PEG-MA_二苯并环辛炔-PEG-甲基丙烯酸酯

一、试剂基团反应特点&#xff08;Reagent group reaction characteristics&#xff09;&#xff1a;DBCO&#xff08;二苯并环辛炔&#xff09;是一种环炔烃&#xff0c;可以通过在水溶液中通过应变促进的1,3-偶极环加成反应与叠氮化物反应&#xff0c;这种生物正交反应也称为…

Crack:MindFusion.Diagramming for ASP.NET V7.0

MindFusion.Diagramming for ASP.NET V7.0 MindFusion.Diagramming for ASP.NET 为 Web 应用程序提供图表功能。它包括丰富的预定义图表节点以及具有无限行数和列数的表节点。您可以在容器中组织节点&#xff0c;形状设计器 UI 工具可帮助您快速轻松地生成自己的图表节点。 添加…

GD32F450工程模板创建

一、新建工程目录 序号文件夹备注1Project存放工程文件&#xff0c;编译文件等。2Firmware存放ARM内核文件&#xff0c;标准外设库文件等。3Hardware存放开发板的硬件驱动文件。4App存放应用层文件。5User存放main函数&#xff0c;gd32f4xx_it文件&#xff0c;systick文件。6D…

【GD32F427开发板试用】07-硬件SPI驱动0.96LCD

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;Stark_GS SPI 简介及特点 具有全双工、半双工和单工模式的主从操作。16位宽度&#xff0c;独立的发送和接收缓冲区。8位或16位数据帧格式。低…

火出圈的《中国奇谭》,如果浪浪山的小妖怪们也用WorkPlus

你会被一只小妖怪感动到破防吗&#xff1f; 最近&#xff0c;由上海美术电影制片厂和B站联合推出的动画片《中国奇谭》火了&#xff0c;仅仅一上线就被打出9.9的高分&#xff0c;频繁登上微博热搜。 其中&#xff0c;第一集《小妖怪的夏天》取材自《西游记》&#xff0c;却从…

Unity编辑器右键菜单实现多平台游戏资源打包—AssetBundle的构建

文章目录&#x1f449;一、初识AssetBundle&#x1f449;二、创建AssetBundle&#x1f449;三、动手操作&#xff1a;实现右键菜单打包AssetBundle&#x1f449;一、初识AssetBundle AssetBundle是Unity提供的一种打包资源的文件格式&#xff0c;比如模型、纹理和音频文件等的各…