您的位置:

php远程调用kafka服务,PHP kafka

本文目录一览:

给kafka配置外部连接

在公司的测试环境中,有的应用需要远程连接kafka,本地有时也是需要连接到kafka进行Debug,这就需要将kafka配置成外部可连接。想要实现这种效果,有两种实现方法,第一种方法是将所有kafka的连接都配置成公网IP连接。第二种方法是采用kafka的内外分离配置。方法一虽然能够实现kafka的外部连接,可是服务器上面对kafka的连接也会默认使用公网IP的方式连接,而不是内网,这样会给实例的公网带宽带来很大的压力,应用一多,就会造成实例无法进行登录。而方法二就可以有效的避免这种现象了,它是将云上本地应用采用内网来连接kafka,而同时又采用不同的端口配置外网连接,这样能够有效的减少公网带宽的压力。

在原有配置的基础上加上或者更改如下配置,配置接受外网连接的端口为9093,同时打开安全组的9093端口,配置过后通过重启kafka即可通过9093在本地连接kafka。

listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT主要分别定义内部和外部连接采用的安全协议

listeners=INTERNAL://内网IP:9092,EXTERNAL://0.0.0.0:9093主要是定义内部和外部连接监听的地址端口

advertised.listeners=INTERNAL://内网IP:9092,EXTERNAL://外网IP:9093主要是提交给zookeeper来实现对kafka内部和外部的连接,最开始改配置只是配置了外部的连接,没有内部的连接,所以对kafka的连接都是通过外部连接。

inter.broker.listener.name=INTERNAL主要是制定kafka集群内部broker之前通过INTERNAL的配置来进行内部通讯。

参考连接:

如何利用pykafka远程消费 zookeeper+kafka集群 python脚本

#从kafka消费

#consumer_area = topic_area.get_simple_consumer(auto_offset_reset=OffsetType.LATEST)

#从ZOOKEEPER消费

consumer_area = topic_area.get_balanced_consumer(

consumer_group=b'zs_download_04', # 自己命令

auto_offset_reset=OffsetType.LATEST,#在consumer_group存在的情况下,设置此变量,表示从最新的开始取

#auto_offset_reset=OffsetType.EARLIEST,

#reset_offset_on_start=True,

auto_commit_enable=True,

#auto_commit_interval_ms=1,

zookeeper_connect=ZK_LIST

)

windows 下远程连接kafka服务器并创建topic 部署服务

一.打包项目镜像:

利用Dockerfile 来打包项目的镜像

本次项目共依赖两个镜像(一个基础系统环境和一个项目镜像)

本次直接将Dockerfile写好后,用shell脚本build.sh启动打包:

然后切换到项目的目录下找到build.sh,运行即可打包项目镜像

报错:"failed to dial gRPC: cannot connect to the Docker daemon. Is 'docker daemon' running on this host?: dial unix /var/run/docker.sock: connect: permission denied

"

就用

出现以下说明打包成功,接下来可以开始部署:

注意:如果遇到只读权限不能修改时,将host文件复制一份到桌面,修改后在替换原来的host文件

在hosts文件末尾加上kafka服务器 !外网! 39. 0.25...地址,修改后的格式如下:

1.1注意: 修改阿里云服务器的hosts 文件来配置 kafka的服务器地址:

在hosts 文件最后加入:

添加的 kafka-server 就是以下创建topic命令中的 kafka-server别名,

监听远程kafka:新建消费者:

远程创建topic的实例:

查看远程已创建的topc:

本地:

远程修改后的kafka topic:

2.通过git Bash 切换到kafka客户端的bin目录:

桌面打开 gitBash,切换到本地kafka软件目录:

这里一定要切换为windows

3.查看已经有的topic

--topic 指定topic名字

--replication-factor 指定副本数,因为我的是集群环境,这里副本数就为3

--partitions 指定分区数,这个参数需要根据broker数和数据量决定,正常情况下,每个broker上两个partition最好

注意:服务器部署时候一定要用内网172. .开头的,外部访问设为外网ip

不然会导致Kafka写入数据的时候报错 : TImeout

4.1本地docker创建topic:

4.2 本地windows 创建topic

进入本地软件路径KAFKA/BIN/WIONDOWS

创建topic

5.修改服务器的host:

一定要注意加sudo 不然会导致readonly 无法修改

在host 文件的末尾加上以下:

6.切换到工程部署的目录

7.清理redis,不然数据有残留:

7.1服务器上的redis挂载清除:

在 docker-compose.yml中注销这几行: 目的是每次启动不必记录上次没有执行完的数据.

这个是用来记录redis中假如上次指定的是1到100万块,没有执行完.下次接着执行没执行完的任务,测试时暂时关闭

7.2删除volume:

7.3 如果volume文件被占用时,先删除占用容器:

7.4 清除redis中的数据

进入redis容器中:

8.部署命令:

8.1开启docker可视化web上监控docker:

然后访问:

宿主机IP + 9000端口

8.2执行部署命令,启动服务:

9.部署时报错: yaml: line 46: did not find expected key

原因: docker-compose.yml文件中第46行 报错

解决:将所有数据对齐,不要有多余的空格.

php本地 怎么连接远程数据库服务器

在php中如果要连接远程数据库连接方法很简单,只要把本地连接localhost或127.0.0.1改成指定远程服务器一IP地址或者直接域名即可。

语法

mysql_connect(servername,username,password);

例子

在下面的例子中,我们在一个变量中 ($con) 存放了在脚本中供稍后使用的连接。如果连接失败,将执行 "die" 部分:

代码如下:

?php

$con = mysql_connect("localhost","peter","abc123");

if (!$con)

{

die('Could not connect: ' . mysql_error());

}

// some code

?

消息中间件Kafka - PHP操作使用Kafka

cd librdkafka/

./configure make make install

安装成功界面 没有报错就是安装成功