建立客户端向服务端的连接:发送客户端的请求连接数据包SYN到服务端
响应客户端的连接并建立服务端的连接:服务端发送响应客户端连接的数据包ACK和服务端的请求连接数据包SYN到客户端
响应服务端的连接:客户端发送响应服务端连接的数据包ACK到服务端
服务端新建套接字,绑定地址信息后开始监听,进入LISTEN状态。客户端新建套接字绑定地址信息后调用connect,发送连接请求SYN,并进入SYN_SENT状态,等待服务器的确认。服务端一旦监听到连接请求,就会将连接放入内核等待队列中,并向客户端发送SYN和确认报文段ACK,进入SYN_RECD状态。客户端收到SYN+ACK报文后向服务端发送确认报文段ACK,并进入ESTABLISHED状态,开始读写数据。服务端一旦收到客户端的确认报文,就进入ESTABLISHED状态,就可以进行读写数据了
请求报文格式:请求行、请求头、空一行、请求体
请求行包括:请求方法、统一资源定位符(URL)、http协议及版本
响应报文格式:状态行、响应头、空一行、响应体
状态行包括:协议及版本、状态码、状态码解释
Rancher为采用容器的团队提供了完整的软件堆栈,解决了跨任何基础设施架构管理多个Kubernetes集群的运维和安全挑战,同时为DevOps团队提供了用于运行容器化工作负载的集成工具。
统一的多集群应用程序管理平台
第一个真正的多云计算解决方案
对于用户而言,他们希望的是平台可以提供稳定且持续的服务。而确保满足这一需求的最佳方法是在多个基础设施提供商的多个区域部署服务。因此,您需要一个高效可靠的平台,用以管理生产环境中的多个Kubernetes集群。
Rancher不仅可以集中管理部署在任何基础设施上的Kubernetes集群,还可以实行统一的集中式身份验证和访问控制。由于无法确定资源运行的位置,您可以轻松地在不同的基础设施之间调用集群,并在它们之间进行资源迁移。相较而言,与其管理多个独立部署的Kubernetes,不如通过Rancher将它们统一为一个托管的Kubernetes云。
为初学者和高级用户设计
工作在您关心的事情上
在Kubernetes中,用户一般用YAML文件来编写资源清单,从而创建容器化应用。通过Rancher,您无需担心YAML,便可立即从Kubernete ...
Kubernetes为DevOps团队提供了无与伦比的优势,包括更流畅地运行应用程序,自动修复系统,正常时间保持高水平运转,降低使用成本等,用户可以轻松愉快地使用它。
Kubernetes
是一种工具,就像任何工具一样,无论你是否使用它,它都能为您提供好处。
组织受益
技术是有趣的,但底线始终是最重要的。您希望以最低的成本获取最高的性能,并且始终在寻找价值和影响力之间的交集。
KUBERNETES将为您做什么?
快速增长
Kubernetes使企业业务能够适应环境的变化,并在您的团队开发和测试的时候,尽快将更新的内容发布到应用程序当中。它可以轻易地设计一个无需停机即可进行更新的系统。
跨越行业
Kubernetes正在帮助不同行业的企业,包括运营商、零售和制造业、银行、金融服务、媒体、政府和医疗保健机构。所有这些行业均发现,Kubernetes帮助他们的业务更加成功。
避免锁定
Kubernetes是一款100%开源的软件,它于2018年3月成为了仅次于Linux的第二大开源项目。截至2018年10月,Kubernetes在100多家公司中拥有了24,500名贡献者。只要您的企业使 ...
在管理 Docker / Kubernetes
时,图形化管理工具还是非常方便的。这里推荐几款免费不花钱的面板,总有一款适合你。
Portainer
链接:https://www.portainer.io
Portainer 是一个轻量化的 Docker 图形化管理工具,可以用来管理 Docker
宿主机和 swarm 集群。功能十分全面,满足企业的大部分需求。
不过,官方版本没有中文。虽然网上有汉化包,比如 https://www.quchao.net/Portainer-CN.html,但只适用于特定版本。
Rancher 链接:https://www.rancher.cn
开源的企业级多集群 K8S
管理平台,支持中文。功能齐全,适合复杂场景的企业级云方案。
DockStation 链接:https://dockstation.io
个人可免费使用的 Docker
面板,在多项目管理上非常清晰。不过,使用的人不是很多。
EasyDockerWeb https://github.com/qfdk/EasyDockerWeb
简单的中文 docker 管理程序,使用了 expres ...
JDK 和 JRE 有什么区别?
JDK:Java Development Kit 的简称,java 开发工具包,提供了 java
的开发环境和运行环境。
JRE:Java Runtime Environment 的简称,java 运行环境,为 java
的运行提供了所需环境。
具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器
javac,还包含了很多 java 程序调试和分析的工具。简单来说:如果你需要运行
java 程序,只需安装 JRE 就可以了,如果你需要编写 java 程序,需要安装
JDK。
== 和 equals 的区别是什么?
== 解读
对于基本类型和引用类型 == 的作用效果是不同的,如下所示:
基本类型:比较的是值是否相同;
引用类型:比较的是引用是否相同;``` String x = “string”; String y =
“string”; String z = new String(“string”); System.out.println(x==y); //
true System.out.println(x==z); / ...
HTTP协议
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML
文件, 图片文件, 查询结果等)。
HTTP 简介
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML
文件, 图片文件, 查询结果等)。
HTTP 工作原理
HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
Web服务器有:Apache服务器,IIS服务器(Internet
Information Services)等。
Web服务器根据接收到的请求后,向客户端发送响应信息。
HTTP默认端口号为80,但是你也可以改为8080或者其他端口。
HTTP三点注意事项:
HTTP是无 ...
Spring在 2017
年下半年迎来了Webflux,Webflux的出现填补了Spring在响应式编程上的空白,Webflux的响应式编程不仅仅是编程风格的改变,而且对于一系列的著名框架,都提供了响应式访问的开发包,比如Netty、Redis等等。
SpringCloud Gateway
使用的Webflux中的reactor-netty响应式编程组件,底层使用了Netty通讯框架。
SpringCloud Zuul 的 IO 模型
SpringCloud中所集成的Zuul版本,采用的是Tomcat容器,使用的是传统的Servlet IO处理模型。
大家知道,Servlet由Servlet Container进行生命周期管理。
Container启动时构造Servlet对象并调用Servlet init()进行初始化;
Container关闭时调用Servlet Destory()销毁Servlet;Container运行时接受请求,并为每个请求分配一个线程(一般从线程池中获取空闲线程)然后调用service()。
弊端:Servlet是一个简单的网络 IO
模型,当请求进入Ser ...
起源
Reactive Streams,翻译为反应式流,从名字上完全无法理解它的意义,像是两个硬凑在一起的词汇。
事实上,它并不是一个全新的事物,异步编程大家都有了解,Java里典型的多线程处理就是异步编程。而异步编程时,存在很多难题,比如典型的回调地狱(Callback Hell),一层套一层的回调函数简直是个灾难,这里列出几个异步编程常见的问题:
超时、异常处理困难
难以重构
多个异步任务协同处理
为了解决异步编程过程中出现的种种难题,人们提出了各种各样方法来规避这些问题,这些方法称为反应式编程(Reactive Programming),就像面向对象编程,函数式编程一样,反应式编程也是另一种编程范式。
反应式编程,本质上是对数据流或某种变化所作出的反应,但是这个变化什么时候发生是未知的,所以他是一种基于异步、回调的方式在处理问题。
Reactive Programming = Streams + Operations Streams
代表被处理的数据节点,Operations 代表那些异步处理
当越来越多的开发人员使用这种编程思想时,自然而然需要一套统一的规范。由此,20 ...
消息轨迹
1. 消息轨迹数据关键属性
Producer端
Consumer端
Broker端
生产实例信息
消费实例信息
消息的Topic
发送消息时间
投递时间,投递轮次
消息存储位置
消息是否发送成功
消息是否消费成功
消息的Key值
发送耗时
消费耗时
消息的Tag值
2. 支持消息轨迹集群部署
2.1 Broker端配置文件
这里贴出Broker端开启消息轨迹特性的properties配置文件内容:
123456789101112131415brokerClusterName=DefaultClusterbrokerName=broker-abrokerId=0deleteWhen=04fileReservedTime=48brokerRole=ASYNC_MASTERflushDiskType=ASYNC_FLUSHstorePathRootDir=/data/rocketmq/rootdir-a-mstorePathCommitLog=/data/rocketmq/commitlog-a-mautoCreateSubscriptionGroup=true## ...