「 CLOUD NATIVE 」 七月 11, 2021
K8s Ingress、Ingress Controller 和 Ingress Class
文章字数 8.3k 阅读约需 8 mins.
将 k8s 集群中服务暴露给集群外访问,最简单的方式莫过于使用 NodePort,好比在 docker 环境下为容器的服务端口绑定宿主机的端口,定义 NodePort 类型的 Service 后,即可通过集群中任意节点的 IP 加 nodePort 指定的端口访问到 k8s 集群中的服务。
但随着服务的增多,使用 NodePort 访问的问题也会逐渐显现出来:可用作 NodePort 的端口是一个有限的范围、不容易记忆、不好管理……
有没有更优雅的方式访问集群内的服务呢?
可以在集群内部署一个 ...
查看全文「 JAVASCRIPT 」 七月 04, 2021
【转】为什么 toFixed 会存在误差?
文章字数 5.1k 阅读约需 5 mins.
原文地址:https://wyiyi.github.io/amber/2021/03/25/number-precision/
在保留有效数字的时候我们经常会使用到 toFixed() 函数,但发现这个方法会存在一些奇怪的问题。
在JS中会有如下的现象,我们需要对最后的结果值进行保留固定位数且四舍五入处理,但发现结果不是所期望的。
1.5.toFixed(0) // 2 正确
1.35.toFixed(1) // 1.4 正确
1.335.toFixed(2) // 1.33 错误
1.3335...
查看全文
「 SPRING 」 六月 27, 2021
玩转 @ConditionalOnMissingBean
文章字数 7k 阅读约需 6 mins.
在 男人,不能说不行! 中,留了两个问题:
- 为什么名为
testServiceImpl的 Bean 会被注册? - 为什么无法注入 TestService 的实例?
先从可运行环境 https://github.com/AlphaHinex/conditional-on-missing-bean-demo 看下结果。
在测试用例中,通过 @Autowired 注解注入了 TestService,但调用时,报了空指针异常,说明容器中没有 TestService 类型的实例。
那么是 @ConditionalOnMi...
「 SPRING 」 六月 20, 2021
男人,不能说不行!
文章字数 1.4k 阅读约需 1 mins.
在这个特别的日子里,我第一个想到的,是 李健 在 我是歌手 中演唱的《父亲写的散文诗》,又让我想起了参加我是歌手的每一位歌手,对待自己所热爱的事业的坚持和执着。
歌手,是一个职业,但每一个好的歌手,都不会仅仅把它当做一个职业。
拥有坚定的信念时,一切阻碍都能想办法克服;否则,任何理由都可以成为失败的借口。
就像父亲为了孩子,会竭尽全力一样。
借此机会,致敬每一位为了信念,不轻言放弃,拼命坚持的人!
Spring Boot 提供了一系列 @ConditionalOnXXXX 注解,用来在满足或不满...
查看全文「 CLOUD NATIVE 」 六月 13, 2021
Kong 实战
文章字数 4.2k 阅读约需 4 mins.
简介
Kong Gateway 是一个 API 网关,有开源(OSS)和企业版(Enterprise)两个版本。
Kong 构建在 Nginx 之上,更明确点说,Kong 是一个运行在 Nginx 中的 Lua 应用,从其 github 仓库的语言中也可以看出来。
基本概念
除了与 Nginx 类似的一些概念(如 Load Balancing,Upstream)外,要使用 Kong,还需了解一些基本概念。
| 概念 | 描述 |
|---|---|
| Service | Service 对象代表上游的 API 接口或服务 | ...
「 WEB 」 六月 06, 2021
简单,却伟大
文章字数 2.6k 阅读约需 2 mins.
Web 开发时,会有需要使用域名的时候,比如以下两个场景:
- 需要模拟跨域访问
- 由于网络等限制只能有一个可以访问的 ip 和端口,却需要提供多个相同 context path 的服务
使用 127.0.0.1 和 localhost 可以解决第一个场景的一部分问题,但需要多个域的时候,或者第二个场景,就无能为力了。
虽说可以修改本地的 hosts 文件,将不同域名映射到指定 ip 上,但麻烦不说,在访问非本地服务时,也不容易让所有使用的人都修改 hosts。
下面介绍几个简单,却非常有效的 DNS...
查看全文「 WEB 」 五月 30, 2021
Cookie 的同源和同站
文章字数 6.2k 阅读约需 6 mins.
存储在浏览器中的数据,如 localStorage 和 IndexedDB,是以 源(origin) 进行分割的。每个源都拥有自己单独的存储空间,一个源中的 JavaScript 脚本不能对属于其它源的数据进行读写操作,即所谓的 同源策略(SOP)。
然而 Cookie 在受同源策略约束时,使用不同的源的定义方式。
通常来讲:
同源(Same origin),意味着 scheme/host/port 三元组完全相同。任意一部分不同,即为跨源(cross-origin,或称为跨域)。
而根据 ...
查看全文「 WEB 」 五月 23, 2021
SOP、CORS 和 CSRF、XSS
文章字数 7.6k 阅读约需 7 mins.
在 Origin 和 Site 中,我们介绍了 源 和 站 的概念,这两个概念在浏览器的安全策略中有着广泛的应用,接下来再介绍几个与之相关的概念。
Same Origin Policy(SOP),同源策略,是浏览器的一个重要安全机制,用来限制从某一 Origin(源)加载的文档或脚本,如何与其他源中的资源进行交互。它能帮助隔离潜在的恶意文档,减少被攻击的可能。
跨源网络访问
跨源网络访问,通常分为三类:
- 跨源写操作(Cross-origin writes):通常是被允许的,例如链接、重定向,以及...
「 WEB 」 五月 16, 2021
Origin 和 Site
文章字数 5.9k 阅读约需 5 mins.
在 Web 中,origin(源)是指 协议(scheme)+ 主机名(host)+ 端口号(port)。
如:https://alphahinex.github.io/2021/05/16/origin-and-site/
源即为:https://alphahinex.github.io
同源(Same origin),意味着 scheme/host/port 三元组完全相同。任意一部分不同,即为跨源(cross-origin,或称为跨域)。
未明确指定端口时,使用协议默认端口(http 为...
查看全文