IPVS模式下ClusterIP泄露宿主机端口的问题
在一个启用了IPVS模式kube-proxy的K8S集群中,运行着一个Docker Registry服务。我们尝试通过docker manifest命令(带上--insecure参数)来推送manifest时,出现TLS timeout错误。
这个Registry通过ClusterIP类型的Service暴露访问端点,且仅仅配置了HTTP/80端口。docker manifest命令的--insecure参数的含义是,在Registry不支持HTTPS的情况下,允许使用不安全的HTTP协议通信。…
阅读全文基于Calico的CNI
Calico为容器或虚拟机提供安全的网络连接,它创建一个扁平化的第3层网络,为每个节点分配一个可路由的IP地址。网络中的节点不需要NAT或IP隧道就可以相互通信,因此性能很好,接近于物理网络,不使用网络策略的情况下,可能引入0.01毫秒级…
阅读全文基于Broadway的HTML5视频监控
Broadway是一个基于JavaScript的H.264解码器,支持Baseline Profile,我们在HTML5视频监控技术预研一文中介绍过这个库。如果你的监控摄像头支持Baseline的H.264码流,利用Broadway可以实现不需要重新编码的视频监控,这样服务器的…
阅读全文WebSocket协议
WebSocket是一种全双工(full-duplex)的双向通信技术,它依赖于单个套接字。使用WebSocket之后,HTTP连接升级为TCP长连接,可以被反复使用以传输数据。WebSocket连接可以在HTTP或者HTTPS之上启动。
WebSock…
阅读全文基于C/C++的WebSocket库
libwebsockets是一个纯C语言的轻量级WebSocket库,它的CPU、内存占用很小,同时支持作为服务器端/客户端。其特性包括:
- 支持ws://和wss://协议
- 可以选择和OpenSSL、CyaSSL或者WolfSSL…
SockJS知识集锦
SockJS允许应用程序使用WebSocket来进行通信,但是当WebSocket不可用时,可以使用代替的传输机制,但是保持API不变。
SockJS由以下部分组成:
- SockJS协议
- 一个JavaScript客户端
- SockJS服务器端实现,例如 sprin…
Spring对WebSocket的支持
Spring 4.x引入了新的模块spring-websocket,对WebSocket提供了全面的支持,Spring的WebSocket实现遵循JSR-356(Java WebSocket API),并且添加了一些额外特性。
绝大部分现代浏览器均支持WebSocket,包括…
阅读全文AsyncHttpClient知识集锦
本文所指的AsyncHttpClient是指基于Netty的一个开源项目,该项目基于Java8编写,用于简化HTTP客户端的开发。该项目还支持WebSocket协议。
要使用该AsyncHttpClient,引入以下Maven依赖:
1 2 3 4 5 |
<dependency> <groupId>org.asynchttpclient</groupId> <artifactId>async-http-client</artifactId> <version>LATEST_VERSION</version> </dependency> |
1 2 3 4 5 6 7 8 |
AsyncHttpClientConfig cf = new DefaultAsyncHttpClientConfig .Builder() // 设置代理服务器 .setProxyServer(new ProxyServer.Builder("127.0.0.1", 8087)) .build(); // 为客户端提供配置项 AsyncHttpClient http = new DefaultAsyncHttpClient(cf); |
ListenableFuture是java.util.concurrent.Future的子类型,你可以使用Java8并发框架…
阅读全文ZeroMQ学习笔记
ZeroMQ是一个高性能的分布式网络库,它的特性包括:
- 看起来像是嵌入式网络库,行为更像是分布式并发库
- 对于集群产品、超级计算领域来说,比TCP更快
- 支持以进程内、IPC、TCP、组播方式携带载荷
- 支持fanout, pubsub, pipeline, req…