• Ukieweb

    佳的博客

    曾梦想仗剑天涯,后来工作忙没去。

标签: 概念原理


软件版本中的 release stable alpha beta 等的意义

snapshot(快照)也即开发版,我们创建maven项目时,编辑器会自动给我们填入 1.0-SNAPSHOT版本,也就是1.0开发版,这个版本不能使用,因为该版本处于开发的过程,所以运行时会不时地更新,导致功能变化,正式环境中不得使用snapshot版本的库;pre有时候软件会在 Alpha 或 Beta 版本前先发布 Pre-alpha 版本。一般而言相对于 Alpha 或 Beta 版本,Pre-alpha 版本是一个功能不完整的版本。有时还会细分为 M1,M2版本,不建议使用;alpha内部测试版,来源于字母α,是比较早的版本,主要是给开发人员和测试人员测试和找BUG用的,不建议使用;... ...
阅读全文

阿里云 pod 间不能通过 ingress 的域名 进行访问 解析

问题现象如图:纠正首先我们要纠正一下上面的图,使用 ingress 暴露服务的时候,结构图应该是下面的样子问题分析负载均衡(slb)的地址一般都是供集群外部使用的,它会被当作 service 的扩展 ip,被 iptables 转发。默认,ingress 创建的 service 的 externalTrafficPolicy 属性  为 Local ,所以 pod a 可以访问 pod c 是因为,正好 pod a 和 ingress 的 pod 在同一个 node 上面,所以 pod a 可以访问所有 ingress 服务而 pod b 和 pod c 不在同一个 node 上面,... ...
阅读全文

java 程序 jvm 垃圾回收算法 收集器 和 内存溢出

1.垃圾回收算法(GC,Garbage Collection)红色是标记的非活动对象,绿色是活动对象。标记-清除(Mark-Sweep)GC 分为两个阶段,标记和清除。首先标记所有可回收的对象,在标记完成后统一回收所有被标记的对象。同时会产生不连续的内存碎片。碎片过多会导致以后程序运行时需要分配较大对象时,无法找到足够的连续内存,而不得已再次触发GC。复制(Copy)将内存按容量划分为两块,每次只使用其中一块。当这一块内存用完了,就将存活的对象复制到另一块上,然后再把已使用的内存空间一次清理掉。这样使得每次都是对半个内存区回收,也不用考虑内存碎片问题,简单高效。缺点需要两倍的内存空间... ...
阅读全文

java 程序 jvm 内存分配使用 及 相关概念详解

JAVA堆内存管理是影响性能主要因素之一。堆内存溢出是JAVA项目非常常见的故障,在解决该问题之前,必须先了解下JAVA堆内存是怎么工作的。 1. jvm 内存(图为 java8之前)JVM 内存划分为堆内存和非堆内存,堆内存分为年轻代(Young Generation)、老年代(Old Generation),非堆内存就一个永久代(Permanent Generation)年轻代又分为 Eden 和 Survivor 区。Survivor 区由 FromSpace 和 ToSpace 组成。Eden 区占大容量,Survivor 两个区占小容量,默认比例是 8:1:1堆内存用途:存... ...
阅读全文

了解 四种前后端接口 REST、gRPC、GraphQL、Webhooks

1 引言每当项目进入联调阶段,或者提前约定接口时,前后端就会聚在一起热火朝天的讨论起来。可能 99% 的场景都在约定 Http 接口,讨论 URL 是什么,入参是什么,出参是什么。有的团队前后端接口约定更加高效,后端会拿出接口定义代码,前端会转换成(或自动转成)Typescript 定义文件。但这些工作都针对于 Http 接口,今天通过 when-to-use-what-rest-graphql-webhooks-grpc 一文,抛开联调时千遍一律的 Http 接口,一起看看接口还可以怎么约定,分别适用于哪些场景,你现在处于哪个场景。2 概述本文主要讲了四种接口设计方案,分别是:REST、gR... ...
阅读全文

yaml 1.2 语法介绍

[官网: YAML Ain’t Markup Language (YAML™) Version 1.2]一、为什么学习它在数据格式描述和较复杂数据内容展示方面的配置文件,JSON能够很好的支持,包括语法突出显示、自动格式化、验证工具等。然而缺乏注释,过于严格,长字符串转换会出现问题等等。对于运维人员,面对较复杂的数据结构来说,不得不寻找一个替代的方式。YAML(YAML 不是标记语言)是一种非常灵活的格式,几乎是 JSON 的超集,已经被用在一些著名的项目中,如 Travis CI、Circle CI 和 AWS CloudFormation。YAML 的库几乎和 JSON 一样无处不在。除了... ...
阅读全文

流程图的基本画法

对于“程序设计”的工作,许多初学者的理解就是“写代码”。在程序设计中,最重要的不是写程序,而是设计。就像建筑、机械等行业的要画设计图、施工图,程序设计的思路也有必要用图的形式画出来。画图的过程就是思考的过程,由于其直观性,画图的过程本身又促进了思考. 一、什么是程序流程图 “程序流程图”常简称为“流程图”,是一种传统的算法表示法,程序流程图是人们对解决问题的方法、思路或算法的一种描述。它利用图形化的符号框来代表各种不同性质的操作,并用流程线来连接这些操作。在程序的设计(在编码之前)阶段,通过画流程图,可以帮助我们理清程序思路. 画流程图是每个程序员... ...
阅读全文

HTTP缓存参数 中 Etag 的重要性

Etag 在 HTTP1.1 中有介绍,主要的作用就是在 (css file, image, javascript file) 文件后面添加一个唯一的参数(相当于查询参数字符串),Etag 有服务器端生成,并且随着文件的改变而改变,这样浏览器端就会只重新请求获取 Etag发生变化的文件,减少浏览器端数据的流量,加快浏览器的反应速度,重要的是减轻服务器端的压力,所以服务器端 Etag 的实现就比较重要了.协商缓存并不会节省连接数,但是在缓存生效时,会大幅减小传输内容(304 响应没有正文,一般只有几百字节)现在我们有个问题为什么要使用Etag呢?Etag 主要为了解决 Last-Modified... ...
阅读全文

使用 HTTP 缓存:Etag, Last-Modified 与 Cache-Control

整个 Web 系统架构在 HTTP 协议 之上, 利用 HTTP 的缓存机制不仅可以极大地减少服务器负载, 更重要的是加速页面的载入,以及减少用户的流量消耗。 快速到达和易于访问是 Web 与生俱来的特性, 其缓存机制也早已被服务器和浏览器厂商广泛地实现, 我们作为 Web 内容的作者何乐而不为呢?Web 服务器(比如 Tomcat、Apache、Virgo)或服务器端框架(比如 Django、Express.js) 都会实现 HTTP 缓存机制,但本文不借助这些框架, 而是直接以基本的 Node.js 程序与 Chrome 浏览器来描述 HTTP 中最基本的缓存机制, 涉及到的 HTTP 头... ...
阅读全文

http缓存max-age=0 no-cache no-store 和 Etag

图解Http缓存控制之Cache-Control 的 max-age=0、no-cache、no-store区别 Etag又是什么6张图让你彻底理解Http缓存控制,辛苦绘制,喜欢点个赞。通过6张图,你能回答以下问题:讲解Http缓存控制机制?Cache-Control有哪些常见值?Etag是什么?有什么用?max-age=10、max-age=0、no-cache、no-store分别有什么用处?转载:https://zhuanlan.zhihu.com/p/55623075... ...
阅读全文

老佳啊

85后,大专学历,中原人士,家里没矿。

由于年轻时长的比较帅气,导致在别人眼里,我一直不谈恋爱的原因是清高,实则是自己的小自卑。最大的人生目标就是找一个相知相爱相容的人,共度余生。

和人相处时如果能感受到真诚,会非常注重彼此的关系,对别人没有什么心机,即使有利益冲突,一般也会以和为贵,因为在这个世界上,物质的东西,从来不会吸引到我。

特别迷恋那些大山大水,如果现在还能隐居,可能早就去了。对那些宏伟的有底蕴的人文景观比较不感冒。

从事于IT行业,却一直对厨房念念不忘,由于身材魁梧,总觉得自己上辈子是个将军,可惜这辈子没当兵,也不会打架。