-
【136】Kafka 在阿里云服务器上,如何让客户端可以通过公网访问?
2019-07-21 00:04:15场景: 公司统一使用阿里云服务器,原来的开发服务器也用的阿里云服务器。为了方便开发人员,不想...Kafka服务器默认是不支持绑定到公网IP的。哪怕你把配置文件 config/server.properties 中的配置项 advertised.li...场景:
公司统一使用阿里云服务器,原来的开发服务器也用的阿里云服务器。为了方便开发人员,不想让开发人员在自己电脑上再运行kafka服务器和zookeeper服务器。希望所有开发人员都直接连接阿里云上的kafka服务器,方便开发。
遇到的问题:
Kafka服务器默认是不支持绑定到公网IP的。哪怕你把配置文件 config/server.properties 中的配置项
advertised.listeners=PLAINTEXT://你的地址:9092
设置成公网IP都没用。Kafka 服务器在启动的时候会报错,并且导致无法启动。解决方法:
本人实验,直接设置IP是无效的。当然也可能是我没想到好方法。我的思路是利用客户端和阿里云服务器对域名的不同解析来解决这个问题。
首先要有个公网的域名能够绑定你的服务器的公网IP。
把 kafka 压缩包下载,解压并上传到服务器上。利用cd命令进入kafka目录。
找到 config/server.properties 文件,确保有一项配置是这样的:
advertised.listeners=PLAINTEXT://your.host.cn:9092
其中 your.host.cn 就是你的公网域名。
listeners=
这一项注释掉。修改 hosts,执行命令
vi /etc/hosts
加入下面这项:172.12.13.104 your.host.cn
其中 172.12.13.104 是阿里云服务器的内网IP,your.host.cn 是你的公网域名。
`阿里云服务器安装 screen
yum install -y screen
用screen 是为了方便查进程和杀死进程。
因为Kafka依赖zookeeper,先运行zookeeper
screen -S zk_kafka
进入新屏幕后启动 zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
按 ctrl + A + D 退出zookeeper 的屏幕。
创建 kafka 服务器的屏幕:
screen -S kafka
在新屏幕运行命令:
bin/kafka-server-start.sh config/server.properties
按 ctrl + A + D 退出 kafka 的屏幕。
执行命令:
ps -auxf
可以清晰的看到进程树。为了验证效果,我在自己的笔记本上测试了一下。笔记本是WIndows操作系统。kafka压缩包在windows上解压,在命令行通过 cd 命令进入 kafka 目录。执行下面的命令:
bin\windows\kafka-topics.bat --list --bootstrap-server relationship.centling.cn:9092
如果没报错,能看到服务器上的topic,就算是成功了。
-
windows客户端开发--根据可下载url另存为文件(微信windows客户端这样做的)
2016-03-08 21:57:51是这样,别人给你发了一张图片,这张图片的原图会存在微信的服务器上,这样这个文件就对应了一个可下载的url。如果你拿到了这个url,用浏览器访问,你就可以通过下载这个原图了。但是,在浏览器下载是我们客户端控制...可以我的blog的标题会让你误解,那么好,没图说了xx:
比如微信windows客户端发送了一张图片,我们可以预览这张图片,还可以保存到本地:那么windows程序是如何下载这张图片的呢?
是这样,别人给你发了一张图片,这张图片的原图会存在微信的服务器上,这样这个文件就对应了一个可下载的url。
如果你拿到了这个url,用浏览器访问,你就可以通过下载这个原图了。
但是,在浏览器下载是我们客户端控制不了的,下载路径也要在浏览器中设置,也不能方便的重命名。
那么这时候问题来了:
我们怎么样从一个url另存为这个文件呢?首先我们要弄出上面的另存为对话框吧,把文件要保存的位置,以及文件名都设置好了,点击确定后再开始下载。
另存为对话框就不细说了,直接上代码了:
OPENFILENAME opfn; WCHAR file_name[MAX_PATH] ; //wstring转WCHAR数组 swprintf(file_name, image_name_.size() + 1, L"%ls", image_name_.c_str()); ZeroMemory(&opfn, sizeof(OPENFILENAME)); opfn.lStructSize = sizeof(OPENFILENAME); //根据文件名取出后缀名 std::wstring file_extension_name = image_name_; size_t i = file_extension_name.rfind('.', file_extension_name.length()); if (i != string::npos) { file_extension_name = file_extension_name.substr(i + 1, file_extension_name.length() - i); } //设置另存为文件的默认后缀名 std::wstring default_ext = file_extension_name; opfn.lpstrDefExt = default_ext.c_str(); //设置筛选类型 file_extension_name = L"图片文件(*." + file_extension_name + L")"; opfn.lpstrFilter = file_extension_name.c_str(); opfn.nFilterIndex = 0; opfn.lpstrFile = file_name; opfn.nMaxFile = MAX_PATH; opfn.hwndOwner = m_hWnd; opfn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST ; if (GetSaveFileName(&opfn)) { //开始下载文件 }
上面的另存为工作完成了,下面就差如何下载了:
查查windows API,结果出现了:
URLDownloadToFile
作用:
Downloads bits from the Internet and saves them to a file.原型:
HRESULT URLDownloadToFile( LPUNKNOWN pCaller, LPCTSTR szURL, LPCTSTR szFileName, _Reserved_ DWORD dwReserved, LPBINDSTATUSCALLBACK lpfnCB );
参数就不过多介绍了,自己msdn吧!
最主要看下头文件和库:
Header Urlmon.h Library Urlmon.lib DLL Urlmon.dll
补齐上面的代码:
if (GetSaveFileName(&opfn)) { URLDownloadToFile(NULL, url, file_name, NULL, NULL); }
大功告成了~~等等,还有瑕疵:
再看看微信,如果另存为的名称已经存在,会有提示,而我们的程序没有:这里还需要设置一下OPENFILENAME 的Flags,其中有一个叫:
OFN_OVERWRITEPROMPTopfn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST |OFN_OVERWRITEPROMPT;
-
求高手:客户端application访问服务端Servlet安全问题
2009-06-24 12:33:23现在的问题是,如何让一些非法的客户端(攻击者修改代码后重新打包的jar文件)不能正常访问到这个servlet? 比如:只能我自己用(.keystore文件)签名的Client.jar客户端才可以建立与servlet的连接,攻击者下载... -
Android HttpURLConnection GET 客户端从服务器端获取json数据
2018-04-25 12:10:00首先,感谢很多版上大大的精华篇,让小菜鸟我可学习很多信息,完成这个程序下面简单介绍一下 HttpURLConnection 如何从App访问服务器1.如果你是在本机端建立服务器,下面用的IP地址只需要改后面存储文件的位置即可...首先,感谢很多版上大大的精华篇,让小菜鸟我可学习很多信息,完成这个程序
下面简单介绍一下 HttpURLConnection 如何从App访问服务器
1.如果你是在本机端建立服务器,下面用的IP地址只需要改后面存储文件的位置即可,如果不是本机端服务器,直接改成服务器实体IP地址即可。
2.HttpURLConnection这个对象需要在线程里才能执行,下面的程序代码,直接复制到你的Class底下即可使用,在new Thread这个子程序里,已经使用了线程,无须另外写程序处理。
3.线程最后一定要记的.start();才不会DeBug找很久还没找到问题,结果发现是忘了启动,犯傻了
private void getJSON() { new Thread(new Runnable() { @Override public void run() { //默认IP地址 String host = "http://10.0.2.2/SelectData.php"; //建立HttpURLConnection对象 HttpURLConnection conn = null; try { //查看线程是否正常 if(Thread.interrupted()) throw new InterruptedException(); //设置链结 URL url = new URL(host); //打开链结 conn = (HttpURLConnection) url.openConnection(); //设置读取链结时间,这里设置为10秒 conn.setReadTimeout(10000); //设置联机链结时间,这里设置为15秒 conn.setConnectTimeout(15000); //使用GET方式获取数据 conn.setRequestMethod("GET"); //URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 true。 conn.setDoInput(true); //联机到服务器 conn.connect(); //查看线程是否正常 if(Thread.interrupted()) throw new InterruptedException(); //用缓冲区加载数据 BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")); //逐行读出JSON String jsonString = reader.readLine(); //打印JSON信息 Log.d("jsonStr",jsonString); //关闭对象 reader.close(); } catch (Exception e) { //有错误,抛出例外 e.printStackTrace(); } finally { //如果有联机成功,最后关闭联机 if(conn != null) conn.disconnect(); } } //最后启动线程 }).start(); }
-
windows如何能访问到已被挂载的linux nfs共享目录
2019-08-16 01:11:36A作为nfs服务器 B作为nfs客户端 B已挂载了A的共享目录 即通过B上传文件至A 现在需要C作为处理信息工具去挂载B 但只能访问到B原本的目录 而访问不到B上面的nfs目录 权限已全开 不要问为什么AB不能反过来 因为就是... -
使用Go语言创建静态文件服务器问题
2020-12-20 17:11:38到目前位置我们的服务器还无法伺服客户端的静态文件请求把服务器磁盘上的文件响应给客户端。使用和配置过 Nginx 服务器的一定知道 Nginx 天然支持静态资源的访问,那么我们是不是也要借助 Nginx 才能实现处理静态... -
如何让网站所在虚拟主机支持apk格式文件下载
2013-12-12 22:28:41把apk文件传到虚拟主机上,用浏览器访问下载时,提示404文件不存在,但FTP里可以看到文件确实已上传成功。这是因为默认情况下,使用IIS作为Web服务器的网站无法下载apk格式文件。那么怎么才能让IIS服务器的网站支持....
随着智能手机的普及,越来越多的人使用手机上网,很多网站也应手机上网的需要推出了网站客户端,.apk文件就是安卓(Android)的应用程序扩展名。把apk文件传到虚拟主机上,用浏览器访问下载时,提示404文件不存在,但FTP里可以看到文件确实已上传成功。这是因为默认情况下,使用IIS作为Web服务器的网站无法下载apk格式文件。那么怎么才能让IIS服务器的网站支持.apk文件的下载呢?
IIS服务器网站不能下载.apk文件的原因:IIS的默认MIME类型中没有.apk文件,所以无法下载。解决办法:给.apk格式文件添加一个MIME类型。
IIS服务器端的解决方法:
1、打开IIS服务管理器,找到服务器,右键-属性,打开IIS服务属性;
2、单击MIME类型下的“MIME类型”按钮,打开MIME类型设置窗口;
3、单击“新建”,建立新的MIME类型;
4、扩展名中填写“.apk”,MIME类型中填写apk的MIME类型“application/vnd.android.package-archive”
5、单击“确定”保存设置。
6、重启IIS,使设置生效。
虚拟主机空间后台的解决方法:
1、进入网站空间的后台控制面板中,找到类似“自定义Mime类型”的选项,在此选项页面自定义MIME类型。
2、扩展名中填写“.apk”,MIME类型中填写apk的MIME类型“application/vnd.android.package-archive”
3、确认后即可使设置生效。
现在使用IIS服务器的网站就可以下载.apk文件了。
查看原文:http://shouji163.cn/archives/731 -
基于Electron框架的程序发出HTTP/HTTPS连接请求时,如何让其以国密(SM)验证?
2019-08-30 15:27:13### 1、Electron框架 - **简介**:是一个使用 JavaScript, HTML 和 CSS 等 Web 技术**创建原生程序的... - 如果OpenSSL库或者Chromium不支持国密验证,那该如何修改源码使其支持国密验证? - 麻烦各位大神给出指导 -
JSP 文件下载 保存的问题
2008-12-29 11:04:09换个角度想就是如何让 客户端访问服务器端的 文件? 用服务器的绝对路径应该可以,比如:file:///D:/DEV/project/islpv21/islpblv2/WebContent/temp//1230528078515.xls 但是我却访问不到。 -
如何减少网站的http连接数
2012-09-21 10:51:30当浏览者浏览页面以后,客户端浏览器缓存会存储css文件和js文件,这样当次访问者再次访问网页将直接从客户端内存中读取这两个文件。而嵌在网页中的js代码和css代码却不能被缓存。 第二:减少iframe使用 -
linux16-访问控制
2019-02-11 16:21:29第十六天4.41静态文件过期缓存4.42nginx防盗链4.43访问控制 ...如果服务器上图片已经做了更新,但是客户端访问到的还是旧的。 如何配置: vi 虚拟主机配置文件,增加或更改 location ~* \.(png|jp... -
如何获取浏览器缓存里的URL资源的最后修改时间?
2009-10-10 20:00:45后面您说的方法:在客户端请求的时候,若认为资源已经修改了,主动在路径后面加(变)参数让服务器得知我请求的是新的资源。我觉得这确实能得到新的数据,但是逻辑上有点问题。(是不是我理解的问题) 客户端在... -
使用JavaScript阅读和显示服务器端XML文章
2003-01-08 00:00:00让我们来看看如何使用XML和客户端的JavaScript来显示一个XML文件,访问子元素的内容,操纵元素,以及更多! 浏览器问题 当涉及到客户端的语言,浏览器不兼容是一个重大问题。 但在这里,使用XML和JavaScript,它的... -
Xftp文件传输软件 v5.0.1228简体中文版.zip
2019-07-11 13:24:08Xftp可以与我们的终端模拟器(Xshell)进行互操作,以访问FTP / SFTP服务器的命令行界面。用户只需点击Xftp上的Xshell按钮即可自动从当前连接启动终端会话,而不需要进行身份验证, 也可以通过点击Xshell上的按钮... -
用TCP/IP进行网际互联 第三卷:客户-服务器编程与应用(Linux/POSIX套接字版)--详细书签版
2012-10-12 14:44:572.3.8 有状态文件服务器的例子 11 2.3.9 标识客户 12 2.3.10 无状态是一个协议问题 13 2.3.11 充当客户的服务器 13 2.4 小结 14 深入研究 14 习题 15 第3章 客户-服务器软件中的并发处理 16 3.1 引言 16 ... -
vss如何使用(图解)
2011-04-25 15:10:48Visual SourceSafe 是一种仅用于客户端的文件服务器应用程序,不需要服务器端处理或代码执行。 1.1 VSS中的文件 当你要修改某个文档时,需要先从数据库中将它签出(check out),或者告诉VSS你要编辑该文档。VSS会... -
从浏览器输入一个 url 到页面渲染,涉及的知识点及优化点
2020-12-29 16:23:59如果没有浏览器就会提示找不到服务器地址。 <h3>DNS 优化 <p>DNS 查询的过程经历了很多的步骤,如果每次都如此,是不是会耗费太多的时间,资源。所以我们应该尽早的返回真实的 IP 地址,... -
物联网安全_实验9 信息保密性、完整性和不可抵赖性的综合应用.doc
2019-06-23 07:18:54此外,PGP支持密钥管理服务器,用户可以将公钥发布在集中的密钥服务器上,供他人访问。 3、PGP的消息处理过程 PGP消息分成原始消息、签名部分和会话密钥部分三个部分。 PGP发送方处理消息的过程为:(1)签名:利用... -
201901建站运维笔记 16
2019-09-17 19:12:564.41-Nginx静态文件过期.md 什么是静态文件的过期时间 让图片之类的静态文件,缓存在客户端的浏览器中,... 如果服务器上图片已经做了更新,但是客户端访问到的还是旧的。 如何配置: vi 虚拟主机配置文件,增加或更... -
阿铭Linux_传统IDC 部署网站学习笔记20190129
2019-01-30 23:56:15传统IDC部署网站.md 文章目录Nginx静态文件过期Nginx防盗链访问控制白名单黑名单限制某个目录限制某个目录下的某类...如果服务器上图片已经做了更新,但是客户端访问到的还是旧的。 如何配置? vi 虚拟主机配置文件... -
超级有影响力霸气的Java面试题大全文档
2012-07-18 09:47:04forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。... -
通过建站学运维1901-16任务
2019-02-11 23:19:004.41静态文件过期缓存 1.什么是静态文件过期缓存 让图片之类的静态文件,缓存在客户端的浏览器中...如果服务器上图片已经做了更新,但是客户端访问到的还是旧的。(需要刷新) 2.如何配置过期缓存周期 vi 虚拟机... -
学习linux十六
2019-02-11 17:30:314.41 静态文件过期缓存 ...如果服务器上图片是已经 做了更新,但是客户端访问到的还是旧的。 如何配置: Vi 虚拟主机配置文件,增加或更改 # vi /etc/nginx/conf.d/bbs.qinkailinux.cc.conf location ~*... -
传统IDC部署网站9
2019-02-13 08:24:564.41-静态文件过期缓存 ...如果服务器上图片已经做了更新,但是客户端访问到的还是旧的。 如何配置: vi 虚拟主机配置文件,增加或更改 location ~* \.(png|jpeg|gif|js|css|bmp|flv)$ { expires 1... -
经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf
2013-02-18 10:06:321.6.4 发布项目到服务器 41 1.6.5 从服务器下载项目 42 1.6.6 提交(Commit)修改 42 1.6.7 同步(Update)本地文件 43 1.6.8 添加文件和目录 44 1.6.9 删除文件和目录 45 1.6.10 查看文件或目录的版本变革 45 1.6.11 从... -
牛人写的 samba中文书.pdf
2009-08-18 23:49:58目录表 1. 如何安装并测试Samba 1.1. Step 0: 阅读手册页 1.2. Step 1: 编译二进制 1.3. Step 2: 所有关键步骤 1.4. Step 3: 建立配置文件 ...9.1.4. 如何让OS/2客户下载打印机驱动程序呢? 10. 中文翻译版致谢 -
jdbc连接数据库的方式2
2009-08-01 14:31:23在开发Java软件方面,Oracle的数据库提供了四种类型的驱动程序,二种用于应用软件、applets、servlets等客户端软件,另外二种用于数据库中的Java存储过程等服务器端软件。在客户机端软件的开发中,我们可以选择OCI... -
citrix 中文管理操作手册
2009-11-04 12:05:31配置从客户端到服务器的内容重定向 44 配置内容重定向时使用客户端设备上的 Windows Explorer 44 将内容从服务器重定向到客户端 44 启用从服务器到客户端的内容重定向 45 发布要使用本地应用程序访问的内容 45 管理... -
Url重写篇视频------本讲将通过实例比较ASP.NET下的三种典型URL重写方案
2009-04-22 08:15:51却无法检测非ASP.NET支持的文件扩展名的链接(我们固然可以在IIS中将所有类型的扩展名都映射到ASP.NET解析器,但是,如果我们有设置IIS的权限,为什么还要用性能更低,限制更多的ASP.NET方式的URL重写,而不使用基于...