socket

kafka参数设置

Deadly 提交于 2020-01-25 00:52:41
############################# System ############################# #唯一标识在集群中的ID,要求是正数。 broker .id = 0 #服务端口,默认9092 port = 9092 #监听地址,不设为所有地址 host .name = debugo01 # 处理网络请求的最大线程数 num .network .threads = 2 # 处理磁盘I/O的线程数 num .io .threads = 8 # 一些后台线程数 background .threads = 4 # 等待IO线程处理的请求队列最大数 queued .max .requests = 500 # socket的发送缓冲区(SO_SNDBUF) socket .send .buffer .bytes = 1048576 # socket的接收缓冲区 (SO_RCVBUF) socket .receive .buffer .bytes = 1048576 # socket请求的最大字节数。为了防止内存溢出,message.max.bytes必然要小于 socket .request .max .bytes = 104857600 ############################# Topic #######################

Kafka参数配置详解

一世执手 提交于 2020-01-25 00:51:03
配置参数   参数说明 broker.id =1 每一个broker在集群中的唯一标示,要求是正数。当该服务器的 IP地址发生改变时,如果broker.id没有变化,则不会影响consumer s的消息情况 log.dirs=/log/kafka-logs kafka数据的存放地址,多个地址的话用逗号分割/log/kafkalogs-1,/log/kafka-logs-2 port =9092 broker server服务端口 message.max.bytes =6525000 表示消息体的最大大小,单位是字节 num.network.threads =4 broker处理消息的最大线程数,一般情况下不需要去修改 background.threads =4 一些后台任务处理的线程数,例如过期消息文件的删除等,一般 情况下不需要去做修改 queued.max.requests =500 等待IO线程处理的请求队列最大数,若是等待IO的请求超过这个 数值,那么会停止接受外部消息,是一种自我保护机制 host.name broker的主机地址,若是设置了,那么会绑定到这个地址上,若 是没有,会绑定到所有的接口上,并将其中之一发送到ZK,一般 不设置 socket.send.buffer.bytes=100*1024 socket的发送缓冲区,socket的调优参数SO_SNDBUFF

Socket多次通信反转词语

做~自己de王妃 提交于 2020-01-24 20:11:11
服务器端: package test; import java.io.*; import java.net.ServerSocket; import java.net.Socket; /** * @author Cris * @version 1.0 * @className TestServer * @description <功能描述> * @date 2020/1/24 14:53 */ public class TestServer { public static void main(String[] args) throws IOException { /** * 1、接收客户端的连接 * 2、接收客户端的数据 * 3、发送反转之后的数据 * 4、循环2-3 * 5、断开连接 */ //开启服务器 ServerSocket server = new ServerSocket(9989); //接收客户端的连接 Socket socket = server.accept(); //创建输入输出流流 InputStream is = socket.getInputStream(); OutputStream os = socket.getOutputStream(); //字节字符转换流 InputStreamReader isr = new

【转帖】从操作系统层面理解Linux下的网络IO模型

笑着哭i 提交于 2020-01-24 20:10:39
从操作系统层面理解Linux下的网络IO模型 https://segmentfault.com/a/1190000021587865 I/O( INPUT OUTPUT),包括文件I/O、网络I/O。 计算机世界里的速度鄙视: 内存读数据:纳秒级别。 千兆网卡读数据:微妙级别。1微秒=1000纳秒,网卡比内存慢了千倍。 磁盘读数据:毫秒级别。1毫秒=10万纳秒 ,硬盘比内存慢了10万倍。 CPU一个时钟周期1纳秒上下,内存算是比较接近CPU的,其他都等不起。 CPU 处理数据的速度远大于I/O准备数据的速度 。 任何编程语言都会遇到这种CPU处理速度和I/O速度不匹配的问题! 在网络编程中如何进行网络I/O优化:怎么高效地利用CPU进行网络数据处理??? 一、相关概念 从操作系统层面怎么理解网络I/O呢?计算机的世界有一套自己定义的概念。如果不明白这些概念,就无法真正明白技术的设计思路和本质。所以在我看来,这些概念是了解技术和计算机世界的基础。 1.1 同步与异步,阻塞与非阻塞 理解网络I/O避不开的话题:同步与异步,阻塞与非阻塞。 拿山治烧水举例来说,(山治的行为好比用户程序,烧水好比内核提供的系统调用),这两组概念翻译成大白话可以这么理解。 同步/异步关注的是水烧开之后需不需要我来处理。 阻塞/非阻塞关注的是在水烧开的这段时间是不是干了其他事。 1.1.1 同步阻塞 点火后

Python全栈——文件上传下载

余生颓废 提交于 2020-01-24 17:58:48
server.py import socket import pickle # 不传参数,默认使用基于网络类型的套接字,协议:TCP server = socket . socket ( ) # 告诉别人server的地址和端口 # 端口的范围是0-65535,但是0-1023这些是默认端口不能使用 server . bind ( ( '192.168.1.107' , 18080 ) ) # 能同时接受的连接 server . listen ( ) # 接受客户端的连接,阻塞等待 conn , addr = server . accept ( ) pic_dic = conn . recv ( 1024 ) dic = pickle . loads ( pic_dic ) if dic [ 'opt' ] == 'upload' : # 上传功能 filename = '1' + dic [ 'filename' ] with open ( filename , 'w' , encoding = 'utf-8' ) as f : f . write ( dic [ 'content' ] ) elif dic [ 'opt' ] == 'download' : # 下载功能 filename = dic [ 'filename' ] with open ( filename ,

Socket多次通信多个客户端

折月煮酒 提交于 2020-01-24 17:51:21
服务端: package test; import java.io.*; import java.net.ServerSocket; import java.net.Socket; /** * @author Cris * @version 1.0 * @className TestServer * @description <功能描述> * @date 2020/1/24 14:53 */ public class TestServerMore { public static void main(String[] args) throws IOException { //开启服务器 ServerSocket server = new ServerSocket(9980); boolean flag = true; while(flag){ //接收客户端的连接 Socket socket = server.accept(); //为每一个客户端创建单独的线程 new Thread(() -> { try { //创建输入输出流流 InputStream is = socket.getInputStream(); OutputStream os = socket.getOutputStream(); //字节字符转换流 InputStreamReader isr = new

Java Netty 初步

无人久伴 提交于 2020-01-24 17:36:15
一 前言 netty和mina其实是一个人写的,所以风格非常类似。而在了解了netty和mina之后,笔者真是了解了Java框架的“高大全”。框架嘛,就是将通用的部分固定下来,我们在固定的位置填自己的逻辑代码就可以了。 二 netty架构 从使用上将,netty最后该来的“效果”很像http编程(据说tomcat的实现也跟netty有关,至少跟java nio有关)。 三 普通的java web开发与Netty的对比 如果不谈struts或spring mvc等上层组件,使用最原始的servlet来构建web项目,我们通常会用到servlet、listener和filter等三个组件。 public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter out = resp.getWriter(); out.write("hello world"); } } 我们知道,http的底层实现仍然是tcp,亦或者说,browser与web server底层仍然是socket通信。而通过j2ee

Kafka server.properties 详细配置总结

孤者浪人 提交于 2020-01-24 16:32:18
技术博客: https://github.com/yongxinz/tech-blog 同时,也欢迎关注我的微信公众号 AlwaysBeta ,更多精彩内容等你来。 如下为详细的 server.properties 参数配置,可根据真实业务场景来选择需要使用。 ############################# System ############################# #唯一标识在集群中的ID,要求是正数。 broker . id = 0 #服务端口,默认9092 port = 9092 #监听地址,不设为所有地址 host . name = debugo01 # 处理网络请求的最大线程数 num . network . threads = 2 # 处理磁盘I/O的线程数 num . io . threads = 8 # 一些后台线程数 background . threads = 4 # 等待IO线程处理的请求队列最大数 queued . max . requests = 500 # socket的发送缓冲区(SO_SNDBUF) socket . send . buffer . bytes = 1048576 # socket的接收缓冲区 (SO_RCVBUF) socket . receive . buffer . bytes = 1048576 #

Java 网络编程

心不动则不痛 提交于 2020-01-24 16:24:13
网络编程 网络模型 OSI参考模型 //应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 TCP/IP参考模型 //应用层 传输层 网际层 网络接口层 网络通讯要素 IP地址 //网络中设备的标识 本地回环地址 127.0.0.1 主机名 localhost 端口号 //标识进程的逻辑地址 有效端口 0~65535 其中0~1024系统使用或保留端口 传输协议 //通讯的规则 TCP UDP UDP 将数据及源和目的 封装成数据包中 不需要建立连接 每个数据包的大小限制在64K内 因无连接 是不可靠协议 不需要建立连接 速度快 TCP 建立连接 形成传输数据的通道 在连接中进行大数据量传输 通过三次握手完成连接 是可靠协议 必须建立连接 效率会稍低 InetAddress //IP地址 getLocalHost //获取本地地址IP对象 getHostAddress //IP地址字符串 getHostName //IP主机名 public class IPDemo { public static void main(String[] args) throws UnknownHostException { //获取本地主机ip地址对象。 InetAddress ip = InetAddress.getLocalHost(); //获取其他主机的ip地址对象。 ip =

java中网络编程

吃可爱长大的小学妹 提交于 2020-01-24 16:01:09
TCP/IP协议的四层模型,从底层到高层分别是:网络接口层、网络层、传输层、应用层。IP属于网络层,TCP/UDP属于传输层。IP定位对方的主机名,端口号对应接受数据的应用程序。 本地回环地址:127.0.0.1 主机名:localhost 有效端口:0~65535, 其中0~1024为系统保留端口。 IP地址由InetAddress类表示。没有构造函数,通过静态方法得到实例。 UDP:将数据及源和目的封装成数据包,不需要建立连接;每个数据包的大小限制在64k内;因无连接,是不可靠协议;速度快。 TCP:建立连接,形成传输数据的通道;在连接中进行大量数据传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率稍低。 Socket:网络之间的通信其实就是Socket之间的通信,Socket之间通过IO进行传输。 DatagramSocket:UDP使用的Socket接口,是本地的接口;发送、接受的单位为DatagramPacket。注意:这里DatagramPacket里面有get/setPort的操作,其中set为设置此包的目的端口号,而get有两种情况,一种是未发送的时候得到刚才set的端口号,一种是在接收端得到发送端的Socket的端口号(发送端DatagramePacket的设置的端口号)。所以getPort是Packet的得到Port的方法