diff --git "a/backup/57_2024\345\271\264\344\270\252\344\272\272\345\221\250\346\212\245.md" "b/backup/57_2024\345\271\264\344\270\252\344\272\272\345\221\250\346\212\245.md" index 1c1e56f..0f5d893 100644 --- "a/backup/57_2024\345\271\264\344\270\252\344\272\272\345\221\250\346\212\245.md" +++ "b/backup/57_2024\345\271\264\344\270\252\344\272\272\345\221\250\346\212\245.md" @@ -1,10 +1,16 @@ # [2024年个人周报](https://github.com/superleeyom/blog/issues/57) -## 2024年第1周 -- 开启新的一年的个人周报啦! -- 本周的天气终于不咋冷了,本周跑步3次,继续加油! -- 最近在看韩剧《死期将至》,和老婆一起连刷了6集,看的真过瘾啦,强烈推荐。 -- 小说《太白金星有点烦》马亲王的文笔是真的牛逼,硬是把西游记,写成了当今职场社会现状,牛逼。 -- 周末去宜家逛了一下,看下宜家的家具设计,找找装修灵感,长沙的宜家是真的大啊,两层逛完估计得一两个小时。 -- 周六去医院复查了下身体,问题都不大,非常开心。 +## 2024年第2周 +- 上周跑了6次,累计25公里。 +- 周末做了几个菜:香菜牛肉、香煎鲈鱼、香煎鸡翅,其中香煎鲈鱼非常的成功,老婆非常喜欢吃,哈哈哈。 +- 买了个 CarPlay 便携屏,解决原车机不带 CarPlay 的痛点,但是拿到后发现了点小问题,机器的散热板有松动,又给退回去了,让老板重新发个过来,后面拿到后再看吧。 + + +## 2024年第1周 +- 开启新的一年的个人周报啦! +- 本周的天气终于不咋冷了,本周跑步3次,继续加油! +- 最近在看韩剧《死期将至》,和老婆一起连刷了6集,看的真过瘾啦,强烈推荐。 +- 小说《太白金星有点烦》马亲王的文笔是真的牛逼,硬是把西游记,写成了当今职场社会现状,牛逼。 +- 周末去宜家逛了一下,看下宜家的家具设计,找找装修灵感,长沙的宜家是真的大啊,两层逛完估计得一两个小时。 +- 周六去医院复查了下身体,问题都不大,非常开心。 - 我的 iPad Mini 6 被老婆征用了,重新用回了 iPad Pro。 \ No newline at end of file diff --git a/feed.xml b/feed.xml index 6cdb616..d8409c2 100644 --- a/feed.xml +++ b/feed.xml @@ -1,5 +1,11 @@ -https://github.com/superleeyom/blogRSS feed of superleeyom's blog2024-01-08T01:39:37.565915+00:00python-feedgenhttps://github.com/superleeyom/blog/issues/572024年个人周报2024-01-08T01:39:37.905601+00:002024年第1周 +https://github.com/superleeyom/blogRSS feed of superleeyom's blog2024-01-15T01:30:05.236526+00:00python-feedgenhttps://github.com/superleeyom/blog/issues/572024年个人周报2024-01-15T01:30:05.531998+00:002024年第2周 +
    +
  • 上周跑了6次,累计25公里。
  • +
  • 周末做了几个菜:香菜牛肉、香煎鲈鱼、香煎鸡翅,其中香煎鲈鱼非常的成功,老婆非常喜欢吃,哈哈哈。
  • +
  • 买了个 CarPlay 便携屏,解决原车机不带 CarPlay 的痛点,但是拿到后发现了点小问题,机器的散热板有松动,又给退回去了,让老板重新发个过来,后面拿到后再看吧。
  • +
+

2024年第1周

  • 开启新的一年的个人周报啦!
  • 本周的天气终于不咋冷了,本周跑步3次,继续加油!
  • @@ -9,7 +15,7 @@
  • 周六去医院复查了下身体,问题都不大,非常开心。
  • 我的 iPad Mini 6 被老婆征用了,重新用回了 iPad Pro。
-]]>
2024-01-08T01:39:09+00:00
https://github.com/superleeyom/blog/issues/56Postman如何配置动态端口和IP2024-01-08T01:39:38.041343+00:00背景 +]]>2024-01-08T01:39:09+00:00https://github.com/superleeyom/blog/issues/56Postman如何配置动态端口和IP2024-01-15T01:30:05.665470+00:00背景

起因是每次使用 Postman 调试服务接口的时候,如果服务一旦被重启,对应服务的ip和端口就会改变,就需要重新配置服务的ip和端口,非常的繁琐以及麻烦。所以就针对这个问题,做了一点研究,简单的记录下。

步骤

1、维护多套环境及相应的环境变量

@@ -31,7 +37,7 @@ function(err, res) {

3、在对应的collection目录模拟request请求

维护好了动态获取脚本后,就可以正常的模拟对应的request请求,请求里面的ip和端口只需要填充对应的服务的占位符即可:

image.png

-]]>
2023-12-14T11:51:00+00:00
https://github.com/superleeyom/blog/issues/552023上海之旅2024-01-08T01:39:38.184395+00:00 +]]>2023-12-14T11:51:00+00:00https://github.com/superleeyom/blog/issues/552023上海之旅2024-01-15T01:30:05.763074+00:00
  • 初衷

  • @@ -144,7 +150,7 @@ function(err, res) {

    这次突发奇想的旅行对我而言太有意义了。自2017年以来,我一直没有好好出去玩过,这次和女朋友一起在上海度过的两天,让我收获了极大的快乐。我们手牵手漫步在上海的街头巷尾,品尝了当地特色美食;一同进入了迪士尼童话世界,体验了各种刺激的项目,观赏了震撼的表演,与可爱的卡通人物亲密接触。上海这座城市充满了独特的魅力,让我留下了美好的回忆,期待着再次踏上这片充满生机的土地。

    -]]>
    2023-11-21T12:36:58+00:00
    https://github.com/superleeyom/blog/issues/54我的跑步数据流2024-01-08T01:39:38.341156+00:00 +]]>2023-11-21T12:36:58+00:00https://github.com/superleeyom/blog/issues/54我的跑步数据流2024-01-15T01:30:05.874591+00:00
  • 前言

      @@ -189,7 +195,7 @@ function(err, res) {
  • -]]>
    2023-02-18T04:10:49+00:00
    https://github.com/superleeyom/blog/issues/532022年终总结之我的买房经历2024-01-08T01:39:38.497605+00:00 +]]>2023-02-18T04:10:49+00:00https://github.com/superleeyom/blog/issues/532022年终总结之我的买房经历2024-01-15T01:30:05.997903+00:00
  • 1、前言

      @@ -351,7 +357,7 @@ function(err, res) {
  • -]]>
    2023-01-08T09:35:00+00:00
    https://github.com/superleeyom/blog/issues/522023年个人周报2024-01-08T01:39:38.660328+00:00 +]]>2023-01-08T09:35:00+00:00https://github.com/superleeyom/blog/issues/522023年个人周报2024-01-15T01:30:06.134640+00:00
  • 2023年第52周

      @@ -840,7 +846,7 @@ function(err, res) {
  • -]]>
    2023-01-03T06:20:52+00:00
    https://github.com/superleeyom/blog/issues/51解决 IDEA 因为 Clash 代理问题引起的疑难杂症2024-01-08T01:39:38.887013+00:00前言 +]]>2023-01-03T06:20:52+00:00https://github.com/superleeyom/blog/issues/51解决 IDEA 因为 Clash 代理问题引起的疑难杂症2024-01-15T01:30:06.312554+00:00前言

    最近我的 IDEA 因为 Clash 的问题,出现了各种奇奇怪的问题,就这些问题的解决做一个简单的记录。

    1、You have JVM property "https.proxyHost" set to "127.0.0.1"

    由于我在 Mac 上开了 Clash 代理软件,接管了系统代理,打开 IDEA 的 Appearance & Behavior --> System Settings --> HTTP Proxy 界面,提示 You have JVM property "https.proxyHost" set to "127.0.0.1",解决方案就是:移除掉 Java 自带的 http 和 socket 代理,采用系统代理,选择 Help -> Edit Custom VM Options,增加如下的配置:

    @@ -870,7 +876,7 @@ function(err, res) { 然后重新刷新下,就不会报内存不足了。

    -]]>
    2022-09-28T05:48:01+00:00
    https://github.com/superleeyom/blog/issues/50[笔记]神的九十亿个名字2024-01-08T01:39:39.037069+00:00 +]]>2022-09-28T05:48:01+00:00https://github.com/superleeyom/blog/issues/50[笔记]神的九十亿个名字2024-01-15T01:30:06.420095+00:00
  • 这个是科幻三巨头之一的阿瑟.克拉克的作品,整书是由多篇科幻短篇小说组成,故事有趣又引人思考,其中最有意思的一篇就是本书的名字,非常推荐。
  • 如果能穷尽所有字母,完成所有可能的排列组合,那么我们一定能找到那位至高神真正的名字。我们的功课就是要列举出所有的名字。
  • 无论是高达两千英尺、直插深谷的巍巍断崖,还是偏远山谷中如棋盘般纵横交错的梯田,都已无法再让他提起兴致。他倚靠在被山风打磨得光滑如镜的石壁上,愁眉苦脸地盯着远处的群峰。
  • @@ -880,7 +886,7 @@ function(err, res) {
  • 极目远眺,直至目光所及之处,是一片支离破碎的贫瘠荒原,布满山峦与沟壑、火山口与陨石坑。那些山脉峰峦高耸,直抵下垂的骄阳,仿佛火焰冲天的孤岛,正在黑暗之海中熊熊燃烧——在它们头顶,群星依然夺目,光芒却恒久不变。
  • 夕阳西下时天空的色彩,海浪拍打卵石海岸时的低吟,雨滴落地的轻柔,积雪无声的祝福……这些,还有上千种其他的馈赠,原本是属于他的合法遗产,但如今他只能从书籍和古老的影像记录中得知这一切。一想到这里,他的心中充满了被放逐的苦闷与哀伤。
  • -]]>
    2022-06-25T02:16:16+00:00
    https://github.com/superleeyom/blog/issues/49[笔记]盐糖脂:食品巨头是如何操纵我们的2024-01-08T01:39:39.174622+00:00 +]]>2022-06-25T02:16:16+00:00https://github.com/superleeyom/blog/issues/49[笔记]盐糖脂:食品巨头是如何操纵我们的2024-01-15T01:30:06.537959+00:00

    盐糖脂:食品巨头是如何操纵我们的 作者:迈克尔·莫斯 时间:2022-04-02 09:45:26 @@ -962,7 +968,7 @@ function(err, res) { -]]>2022-04-02T01:49:43+00:00https://github.com/superleeyom/blog/issues/48我为什么不能放弃跑步2024-01-08T01:39:39.324728+00:00 +]]>2022-04-02T01:49:43+00:00https://github.com/superleeyom/blog/issues/48我为什么不能放弃跑步2024-01-15T01:30:06.668111+00:00

    "明明这么痛苦,这么难过,为什么就是不能放弃跑步?因为全身细胞都在蠢蠢欲动,想要感受强风迎面吹拂的滋味。"

    我非常喜欢《强风吹拂》里面的这句话,为此我将它写在了我的 running page 上,以此来激励自己一直坚持跑下去,当我问我自己,你为什么不能放弃跑步?我思索了一会儿,我将自己这几年跑步心路历程归纳为这几个关键字:痛苦、恐惧、和解,下面我来说说这几个关键字的含义。

    @@ -987,7 +993,7 @@ function(err, res) {

    最近两年,我的心态发生了些许的变化,我开始对自己和解了,每天早上 5 公里的晨跑不再是机械式的任务,而是成为了生活的一部分,有时候没状态、想睡个懒觉,那就不跑了,现在的跑步,不再以减肥为目的,而是为了让自己保持一个比较好的精神状态。在 80% 的时间严格限制自己的情况下,剩下的 20% 的时间,我们可以做自己任何想做的事情,并且不需要有任何的心里负担。

    最后

    跑步其实是一件非常有意思的事情,由其是当你在城市里面跑步的时候,你会看到各种形形色色的人,有行色匆匆从地铁口进出的上班族,有背着书包穿着校服嬉戏打闹的学生,有坐在大排档喝酒撸串吹牛皮的中年大叔,有略显疲惫坐在公交车上刷手机的年轻人,每个角落都在上演着各种悲欢离合,自己也莫名的会被带入别人的生活里,不由自主的去揣测他们背后的人生故事。

    -]]>
    2022-03-27T08:34:13+00:00
    https://github.com/superleeyom/blog/issues/44[笔记]精力管理2024-01-08T01:39:39.469268+00:00 +]]>2022-03-27T08:34:13+00:00https://github.com/superleeyom/blog/issues/44[笔记]精力管理2024-01-15T01:30:06.778848+00:00
  • 精力管理 @@ -1046,7 +1052,7 @@ function(err, res) {

  • -]]>
    2022-01-17T01:19:39+00:00
    https://github.com/superleeyom/blog/issues/432022年个人周报2024-01-08T01:39:39.626404+00:00 +]]>2022-01-17T01:19:39+00:00https://github.com/superleeyom/blog/issues/432022年个人周报2024-01-15T01:30:06.901244+00:00
  • 2022年第52周

      @@ -1721,7 +1727,7 @@ function(err, res) {
  • -]]>
    2022-01-17T01:13:51+00:00
    https://github.com/superleeyom/blog/issues/42技术周刊分享2024-01-08T01:39:39.921651+00:00 +]]>2022-01-17T01:13:51+00:00https://github.com/superleeyom/blog/issues/42技术周刊分享2024-01-15T01:30:07.152417+00:00
  • 分享一些不错的免费开源的技术周刊(更多见:my-feed-OPML 项目,每天定时同步我 Feedly 上的订阅源):
    • TNT-Weekly:前端
    • @@ -1750,7 +1756,7 @@ function(err, res) {
  • -]]>
    2022-01-13T07:27:29+00:00
    https://github.com/superleeyom/blog/issues/40[译]如何阅读Apple开发文档2024-01-08T01:39:40.072231+00:00周末外面一直下雨,闲着也是没事,尝试花了几个小时,把 Hacking with Swift 的创始人 Paul Hudson 在2019 年写的一篇关于「How to read Apple’s developer documentation」的文章翻译成了中文,虽然距离这篇文章发表已经过去两三年了,但是里面的思想和方法却永远不会过时,希望能帮助大家,以下便是译文:

    +]]>
    2022-01-13T07:27:29+00:00
    https://github.com/superleeyom/blog/issues/40[译]如何阅读Apple开发文档2024-01-15T01:30:07.262716+00:00周末外面一直下雨,闲着也是没事,尝试花了几个小时,把 Hacking with Swift 的创始人 Paul Hudson 在2019 年写的一篇关于「How to read Apple’s developer documentation」的文章翻译成了中文,虽然距离这篇文章发表已经过去两三年了,但是里面的思想和方法却永远不会过时,希望能帮助大家,以下便是译文:

    作者:Paul Hudson,日期:2019年1月18日

    @@ -1862,7 +1868,7 @@ open class SCNAnimation : NSObject, SCNAnimationProtocol, NSCopying, NSSecureCod
  • 我有一整本书使用项目来教授 Swift 和 iOS,它专门用于以逻辑流程介绍概念。
  • 你认为阅读 Apple 文档最有效的方法是什么? 在 Twitter 上和我交流你的想法:@twostraws

    -]]>
    2022-01-08T09:18:20+00:00
    https://github.com/superleeyom/blog/issues/39我的2021年跑步报告2024-01-08T01:39:40.231024+00:00距离我上一次写博客已经三个月了,今天是2022年的第一天,原本想写篇博客总结回顾下2021年,但是想想还是算了,2021年过的并不是很顺利,也不太想用过多的文字来纪念它,过去了也就过去了,但是却特别想写写自己这一年来的跑步过程,看着各大平台都在出各种年度报告,我也给自己写个2021年的跑步报告,以此来激励自己2022年能继续跑下去。

    +]]>
    2022-01-08T09:18:20+00:00
    https://github.com/superleeyom/blog/issues/39我的2021年跑步报告2024-01-15T01:30:07.374683+00:00距离我上一次写博客已经三个月了,今天是2022年的第一天,原本想写篇博客总结回顾下2021年,但是想想还是算了,2021年过的并不是很顺利,也不太想用过多的文字来纪念它,过去了也就过去了,但是却特别想写写自己这一年来的跑步过程,看着各大平台都在出各种年度报告,我也给自己写个2021年的跑步报告,以此来激励自己2022年能继续跑下去。

    🏃跑步数据

    2021年的年度跑步数据如下所示:

    @@ -2022,7 +2028,7 @@ open class SCNAnimation : NSObject, SCNAnimationProtocol, NSCopying, NSSecureCod

    作家村上春树在《当我谈跑步时,我在谈些什么》说到:“希望一人独处的念头,始终不变地存于心中。所以一天跑一个小时,来确保只属于自己的沉默的时间,对我的精神健康来说,成了具有重要意义的功课。”,确实啊,当代社会太浮躁了,我们总觉得自己很忙,我们越是忙碌,越会高看自己,认为自己对他人来说不可或缺。我们无法陪伴亲人朋友,不知疲倦,没日没夜,只管四处救火,不给自己留下喘息的时间,这就是现代社会的“成功典型”,真的,偶尔可以停下来,跑步1h,灵魂可以喘口气!

    🏁最后

    最后,祝大家2022年元旦快乐!新年快乐!

    -]]>2022-01-01T04:22:08+00:00https://github.com/superleeyom/blog/issues/38基于Github Issues的博客搭建2024-01-08T01:39:40.382706+00:00最新更新 +]]>2022-01-01T04:22:08+00:00https://github.com/superleeyom/blog/issues/38基于Github Issues的博客搭建2024-01-15T01:30:07.475820+00:00最新更新
    • 前端仓库 superleeyom.github.io 增加了一个 remove_running 分支,去掉了 running_page 的链接(我的那个跑步记录的入口,有些人用不到),想要去掉这个链接的朋友用这个分支就行 --2022-02-11
    @@ -2098,7 +2104,7 @@ open class SCNAnimation : NSObject, SCNAnimationProtocol, NSCopying, NSSecureCod
  • 这个博客开源了
  • Mirror中文教程
  • -]]>
    2021-09-06T14:44:53+00:00
    https://github.com/superleeyom/blog/issues/37深漂5年随想2024-01-08T01:39:40.535810+00:00有时候跟同事们一起吃饭,大家就会聊起深圳去与留的话题,从大家的言语中看出,大家当初来深圳的大多数是想看看外面的世界怎样,但是在经历了社会的毒打,996的煎熬,房价的绝望后,也感受到了大环境下沉重的压力,大家最后也只会在自嘲的笑声结束这个话题。

    +]]>
    2021-09-06T14:44:53+00:00
    https://github.com/superleeyom/blog/issues/37深漂5年随想2024-01-15T01:30:07.591120+00:00有时候跟同事们一起吃饭,大家就会聊起深圳去与留的话题,从大家的言语中看出,大家当初来深圳的大多数是想看看外面的世界怎样,但是在经历了社会的毒打,996的煎熬,房价的绝望后,也感受到了大环境下沉重的压力,大家最后也只会在自嘲的笑声结束这个话题。

    当我自己真实面对这个选择的时候,自己内心有过纠结与彷惶。说实话,我还是挺喜欢深圳的,喜欢深圳的天气,一年9个月可以穿短袖短裤,喜欢深圳的大海,夏天可以去西涌海滩游泳冲浪,喜欢深圳的交通,去哪里都可以坐公交地铁,喜欢深圳的就业环境,工作机会多。

    可为啥想要离开深圳呢?

    我是2016年来到深圳的,今年2021年,刚好第5个年头了,我觉得我想离开深圳的最大的一个原因是自己对房价的绝望吧。目前福田区、宝安区、南山区,稍微像样点的小区,二手房价没有低于6w+的,买一套70平两房,总价420万,首付130万,还不算税,普通人估计掏空家里的6个钱包都不够首付。房价构成了阶级的壁垒,人生的难度都不一样,自然就有人要做出选择,能留在深圳扎根的,是社会的精英阶层,当然离开也并不可耻,它是一种生活方式的选择,在认清现实和理想后,选择一条合适自己的路走也不是不行。

    @@ -2162,7 +2168,7 @@ What's going on?

    后悔?庆幸?开心?难过?

    管他呢!

    -]]>
    2021-08-18T02:04:58+00:00
    https://github.com/superleeyom/blog/issues/36对k8s中Service的理解2024-01-08T01:39:40.691729+00:00以下是我基于实际生产实践,对于k8s里关于Service的一些比较粗浅的理解,如果有些不对的地方,欢迎指出,这些理解基于腾讯云的容器服务TKE,之前一直对这个概念比较模糊,结合腾讯云TKE上的文档,后面请教了同事鲲鹏后,总算是有点清晰了,首先先明确Service的基本概念:

    +]]>
    2021-08-18T02:04:58+00:00
    https://github.com/superleeyom/blog/issues/36对k8s中Service的理解2024-01-15T01:30:07.708252+00:00以下是我基于实际生产实践,对于k8s里关于Service的一些比较粗浅的理解,如果有些不对的地方,欢迎指出,这些理解基于腾讯云的容器服务TKE,之前一直对这个概念比较模糊,结合腾讯云TKE上的文档,后面请教了同事鲲鹏后,总算是有点清晰了,首先先明确Service的基本概念:

    用户在 Kubernetes 中可以部署各种容器,其中一部分是通过 HTTP、HTTPS 协议对外提供七层网络服务,另一部分是通过 TCP、UDP 协议提供四层网络服务。而 Kubernetes 定义的 Service 资源就是用来管理集群中四层网络的服务访问。

    @@ -2179,7 +2185,7 @@ What's going on?

    腾讯云上内网和公网的打通是通过构建子网的方式,对应pod的service创建后,会生成一个ipv4地址,在内网直接ping该ipv4地址,是可以ping通的。LoadBalancer 就感觉有点像是 ClusterIP 和NodePort的超集,用这张图可以理解下:

    -]]>
    2021-07-25T00:52:01+00:00
    https://github.com/superleeyom/blog/issues/35Java空指针避坑指南2024-01-08T01:39:40.831948+00:00把阿里巴巴的《Java开发手册》里,关于 NPE异常总结了下,预防空指针异常,从你我做起!

    +]]>
    2021-07-25T00:52:01+00:00
    https://github.com/superleeyom/blog/issues/35Java空指针避坑指南2024-01-15T01:30:07.827380+00:00把阿里巴巴的《Java开发手册》里,关于 NPE异常总结了下,预防空指针异常,从你我做起!


    【强制】所有的 POJO 类属性必须使用包装数据类型。

    @@ -2374,7 +2380,7 @@ if(user!=null){

    可以考虑使用 JDK8 的 Optional 类来防止 NPE 问题。


    -]]>2021-07-22T07:10:12+00:00https://github.com/superleeyom/blog/issues/34[笔记]半小时漫画经济学4:理财篇2024-01-08T01:39:40.985054+00:00《半小时漫画经济学4:理财篇》读书笔记 +]]>2021-07-22T07:10:12+00:00https://github.com/superleeyom/blog/issues/34[笔记]半小时漫画经济学4:理财篇2024-01-15T01:30:07.949139+00:00《半小时漫画经济学4:理财篇》读书笔记

    在地铁上看完的,篇幅不长,算是一个科普理财的小册子,半小时到一个小时就可以看完,整书用通俗的话语解释那些投资和理财的专业名词,风趣幽默,挺有意思,摘抄了几句印象比较深的句子,记录一下。

    二、结构性存款:他们说我是保本理财的替身

      @@ -2431,7 +2437,7 @@ if(user!=null){

      阿蛛觉得涨得差不多了,于是把期货卖了出去,这叫平仓

    -]]>
    2021-07-12T14:03:29+00:00
    https://github.com/superleeyom/blog/issues/33家常菜谱2024-01-08T01:39:41.133924+00:00简单记录下自己做过的一些好吃的菜!等哪天不记得咋做的时候,可以过来翻翻看,回忆下步骤。

    +]]>
    2021-07-12T14:03:29+00:00
    https://github.com/superleeyom/blog/issues/33家常菜谱2024-01-15T01:30:08.069734+00:00简单记录下自己做过的一些好吃的菜!等哪天不记得咋做的时候,可以过来翻翻看,回忆下步骤。

    腐竹炒肉

    1. 猪肉切片备用
    2. @@ -2502,7 +2508,7 @@ if(user!=null){
    3. 加入金针菇,加入适量的盐调味
    4. 最后把腌制好的牛肉加入,等牛肉变色1分钟后即可出锅装盘
    -]]>
    2021-07-11T02:43:22+00:00
    https://github.com/superleeyom/blog/issues/32业务数据脱敏解决方案探究2024-01-08T01:39:41.290781+00:00业务数据脱敏解决方案探究 +]]>2021-07-11T02:43:22+00:00https://github.com/superleeyom/blog/issues/32业务数据脱敏解决方案探究2024-01-15T01:30:08.183614+00:00业务数据脱敏解决方案探究

    使用背景

    • @@ -2726,7 +2732,7 @@ Actual SQL: ds ::: SELECT id,name,age,encrypt_email AS email,encrypt_email FROM

      我个人的感觉是 sharding-jdbc 确实做到了屏蔽底层对数据的脱敏处理 ,但是要接入 sharding-jdbc 的前提是,团队有制定严格的SQL规范 ,这样可能接入数据库中间件的时候,才会出现比较少的问题,对于一些老系统,动辄几百行的SQL,各种复杂函数,还是放弃接入的好,到时候只会是一步一个坑。

      另外如果想要满足文章开头的第二个需求,也就是把生产库的数据同步到预发布,同时要屏蔽部分敏感数据,大部分的云厂商,都有提供脱敏工具,比如我们自己在用的腾讯云的 DBbrain,就可以支持数据脱敏,但是实际使用还不是怎么完善,有待改进。

      示例代码:shardingsphere-encrypt-jdbc-demo

      -]]>2021-07-08T02:10:47+00:00https://github.com/superleeyom/blog/issues/31聊聊我整牙的那些事儿2024-01-08T01:39:41.456109+00:00聊聊我整牙的那些事儿 +]]>2021-07-08T02:10:47+00:00https://github.com/superleeyom/blog/issues/31聊聊我整牙的那些事儿2024-01-15T01:30:08.319106+00:00聊聊我整牙的那些事儿

      矫正动机

      马上再过几天,就可以拆牙套了,想记录下自己这快两年整牙的辛酸史,顺便给想矫正牙齿的朋友分享点经验。因为我小时候,门牙就不太整齐,牙齿比较拥挤,并且家里当时条件也不太好,所以就没有去医院矫正,长大后,这也就成了我的一块心病,导致向人微笑的时候,常常抿嘴,不够自信。后面参加工作后,自己有了一定的积蓄后,我便开始准备着手矫正牙齿的事情,我在 19 年的国庆节向父母提了这个事情,他们当时还是挺支持我的,只是表示你要自己能受得了这份罪就去弄,不要后悔就行,就这样,我开始了我的牙齿矫正之路。

      前期准备

      @@ -2804,7 +2810,7 @@ Actual SQL: ds ::: SELECT id,name,age,encrypt_email AS email,encrypt_email FROM

      一些心得

      矫正牙齿我觉得是我人生中比较重要的一件事情 ,虽然过程确实挺痛苦的,但是能带来一口整齐的牙齿和灿烂的笑容,我觉得挺值的。人类的可塑性和适应能力是很强的,哪怕是根深蒂固的牙齿,依然借助外力也可以矫正过来。所以如果你有矫正的想法,现在就开始行动吧!因为:

      -]]>
      2021-07-05T16:05:13+00:00
      https://github.com/superleeyom/blog/issues/30我的跑步感悟2024-01-08T01:39:41.597153+00:00我的跑步感悟 +]]>2021-07-05T16:05:13+00:00https://github.com/superleeyom/blog/issues/30我的跑步感悟2024-01-15T01:30:08.430334+00:00我的跑步感悟

      前言

      之前有看到 @yihong 发表的《程序员跑步指南》博客,突然也想写写最近这几年自己跑步的一些感悟,一直拖到现在,因为这只是我作为一名业余跑步爱好者的一些经验和感悟,这些建议可能缺乏专业性,毕竟每个人所处的环境,身体状况都不一样,所以仅供参考哈。

      个人概况

      @@ -2886,7 +2892,7 @@ Actual SQL: ds ::: SELECT id,name,age,encrypt_email AS email,encrypt_email FROM

      明明这么痛苦,这么难过,为什么就是不能放弃跑步?因为全身细胞都在蠢蠢欲动,想要感受强风迎面吹拂的滋味。––《强风吹拂》

      -]]>
      2021-06-30T14:59:17+00:00
      https://github.com/superleeyom/blog/issues/29为Docker Alpine添加中文字体2024-01-08T01:39:41.741047+00:00 +]]>2021-06-30T14:59:17+00:00https://github.com/superleeyom/blog/issues/29为Docker Alpine添加中文字体2024-01-15T01:30:08.536526+00:00
    • 首先提前将需要安装的字体拷贝到 Jenkins 所在的机器上(/media/front/目录下)

      cd /media/front/
      @@ -2936,7 +2942,7 @@ cd /home/jenkins/data/soft/model/${MODEL_NAME}${BUILD_ID}/${MODEL_NAME}/target
       
    • -]]>2021-04-26T03:18:03+00:00https://github.com/superleeyom/blog/issues/28[笔记]指数基金投资指南2024-01-08T01:39:41.886787+00:00指数基金投资指南 +]]>2021-04-26T03:18:03+00:00https://github.com/superleeyom/blog/issues/28[笔记]指数基金投资指南2024-01-15T01:30:08.631060+00:00指数基金投资指南

      作者:银行螺丝钉;数量:33个笔记;时间:2021-04-19 22:17:00

      @@ -3096,7 +3102,7 @@ cd /home/jenkins/data/soft/model/${MODEL_NAME}${BUILD_ID}/${MODEL_NAME}/target
    -]]>
    2021-04-19T14:37:59+00:00
    https://github.com/superleeyom/blog/issues/27k8s实现Spring Cloud服务平滑升级解决方案2024-01-08T01:39:42.050817+00:00背景 +]]>2021-04-19T14:37:59+00:00https://github.com/superleeyom/blog/issues/27k8s实现Spring Cloud服务平滑升级解决方案2024-01-15T01:30:08.753673+00:00背景

    目前公司的服务是用 Spring Cloud 框架,且服务采用 k8s 进行部署,但是有新的服务需要升级的时候,虽然采用目前采用的滚动更新的方式,但是由于服务注册到 Eureka 上去的时候,会有30秒到1分钟左右不等的真空时间,这段时间会造成线上服务短时间的不能访问,所以在服务升级的时候,让服务能平滑升级达到用户无感的效果这是非常有必要的。

    原因分析

    在 Spring Cloud 的服务中,用户访问的一般都是网关(Gateway 或 Zuul),通过网关进行一次中转再去访问内部的服务,但是通过网关访问内部服务时需要一个过程,一般流程是这样的:服务启动好了后会先将自己注册信息(服务名->ip:端口)注册(上报)到 Eureka 注册中心,以便其他服务能访问到它,然后其他服务会定时访问(轮询 fetch 的默认时间间隔是 30s )注册中心以获取到 Eureka 中最新的服务注册列表。

    @@ -3337,7 +3343,7 @@ public class GracefulShutdownUndertowWrapper implements HandlerWrapper {
  • Spring Cloud Zuul重试机制探秘
  • Ribbon超时与重试
  • -]]>
    2021-04-16T09:43:38+00:00
    https://github.com/superleeyom/blog/issues/26关于多表关联查询的优化思路2024-01-08T01:39:42.209952+00:00问题分析 +]]>2021-04-16T09:43:38+00:00https://github.com/superleeyom/blog/issues/26关于多表关联查询的优化思路2024-01-15T01:30:08.868531+00:00问题分析

    最近在帮同事优化一个慢查询,这张主表的数量在 100w+,它具体的问题就是,查询条件非常多,大约有 30 多个可选的查询条件,这些查询的字段分散在数据库的各个表中,导致 left join 的表特别多,大约 left join 七八张表,这种情况下分页查询,查询时间在 5~6 秒,非常的影响查询体验。

    -- 示例伪 sql
     select  o.id
    @@ -3440,7 +3446,7 @@ return page;
     
  • 在数据量比较大的情况下,多表关联查询,拆解为多个单表查询,可以提高整体的查询效率
  • for 循环里面,不能有查询 DB 的操作,应该在 for 循环外批量从 DB 取出后,映射到内存中,然后 for 循环从内存中读取
  • -]]>2021-03-26T11:26:27+00:00https://github.com/superleeyom/blog/issues/25[笔记]人生海海2024-01-08T01:39:42.366676+00:00《人生海海》这本书真的写的太棒了,麦家老师的文笔优美,平易近人,接地气,同时风趣幽默,最后看完本书后,鼻子酸酸的,满心的感受,上校的人生经历扑朔迷离,里面有一句话特别感动:

    +]]>
    2021-03-26T11:26:27+00:00
    https://github.com/superleeyom/blog/issues/25[笔记]人生海海2024-01-15T01:30:08.964057+00:00《人生海海》这本书真的写的太棒了,麦家老师的文笔优美,平易近人,接地气,同时风趣幽默,最后看完本书后,鼻子酸酸的,满心的感受,上校的人生经历扑朔迷离,里面有一句话特别感动:

    世上只有一种英雄主义,就是在认清了生活真相后依然热爱生活。

    @@ -3567,7 +3573,7 @@ return page; -]]>
    2021-03-20T03:35:02+00:00
    https://github.com/superleeyom/blog/issues/24关于prometheus无法采集服务指标的问题总结2024-01-08T01:39:42.528288+00:00名词解析 +]]>2021-03-20T03:35:02+00:00https://github.com/superleeyom/blog/issues/24关于prometheus无法采集服务指标的问题总结2024-01-15T01:30:09.074734+00:00名词解析

    context-path

    对应的 Spring Boot 后台服务,如果增加了 server.servlet.context-path 配置,则会指定项目路径,是构成 url 地址的一部分,比如,在没有加此配置前,我们获取用户列表接口是这样访问:

    http://127.0.0.1:8090/user/list
    @@ -3644,7 +3650,7 @@ return page;
     
  • 使用 Prometheus & Grafana 监控你的 Spring Boot 应用
  • Eureka详解
  • -]]>2021-03-12T10:32:04+00:00https://github.com/superleeyom/blog/issues/23[笔记]最好的告别2024-01-08T01:39:42.886773+00:00最好的告别:关于衰老与死亡,你必须知道的常识 +]]>2021-03-12T10:32:04+00:00https://github.com/superleeyom/blog/issues/23[笔记]最好的告别2024-01-15T01:30:09.372349+00:00最好的告别:关于衰老与死亡,你必须知道的常识

    作者:阿图·葛文德;数量:23个笔记;时间:2021-03-10 10:12:36

    @@ -3762,7 +3768,7 @@ return page; -]]>
    2021-03-10T02:16:53+00:00
    https://github.com/superleeyom/blog/issues/22Maven中关于SNAPSHOT版本的总结2024-01-08T01:39:43.051732+00:00Maven中的SNAPSHOT版本 +]]>2021-03-10T02:16:53+00:00https://github.com/superleeyom/blog/issues/22Maven中关于SNAPSHOT版本的总结2024-01-15T01:30:09.505817+00:00Maven中的SNAPSHOT版本

    假设有两个小组负责维护两个组件,example-serviceexample-ui,这两个组件不在同一个代码仓库,example-service 的版本号信息:

    <artifactId>example-service</artifactId>
     	<version>1.0</version>
    @@ -3813,7 +3819,7 @@ return page;
     
  • maven(15),快照与发布,RELEASE与SNAPSHOT
  • MAVEN规约
  • -]]>2021-02-24T09:25:10+00:00https://github.com/superleeyom/blog/issues/20为Git和Maven设置代理加速2024-01-08T01:39:43.206577+00:00Git +]]>2021-02-24T09:25:10+00:00https://github.com/superleeyom/blog/issues/20为Git和Maven设置代理加速2024-01-15T01:30:09.618900+00:00Git

    由于 GFW 的缘故,有时候要去 Github 上克隆代码,半天 git clone 不下来,改过 host,设置过代理镜像,发现根本不管用,最后整来整去,花钱买个好点的梯子,设置好 Git 代理,要省不少事情。

    全局代理

    Git 设置全局代理(前提你已经买了比较好的梯子),根据代理协议的不同,在终端执行如下命令:

    @@ -3877,7 +3883,7 @@ Resolving deltas: 100% (302817/302817), done. </proxies>

    设置完毕后,依赖下载丝滑流畅😂,更加具体配置的可以参考 Maven 官方配置文档:Configuring a proxyfuck GFW!!!

    -]]>
    2021-02-04T01:31:45+00:00
    https://github.com/superleeyom/blog/issues/19GitHub Actions 实战之监控梯子流量2024-01-08T01:39:43.345334+00:00

    +]]>
    2021-02-04T01:31:45+00:00
    https://github.com/superleeyom/blog/issues/19GitHub Actions 实战之监控梯子流量2024-01-15T01:30:09.720381+00:00

    起因

    最近也开通了 Netflix,Netflix 其实挺费流量的,为了防止梯子的流量超标,所以打算借助 Github Actions + telegram 做一个简单的监控,整体的思路其实很简单,没啥太大的难度,就是模拟梯子服务网站的登录,然后爬取页面的流量汇总数据,然后每天 9:30 将流量的使用情况发送到 telegram,同时如果可使用的流量少于 20% 的时候,推送报警到 telegram,代码目前放到了 github 上 proxy-traffic-monitor,实现细节就不讲了,代码比较简单,直接看代码就行。

    开发环境

    @@ -3972,7 +3978,7 @@ loginRequest.setProxy(proxy);

    声明

    本源码只用于学习和交流,禁止用于商业目的。

    -]]>
    2021-02-01T06:22:00+00:00
    https://github.com/superleeyom/blog/issues/18咕咚和keep跑步数据导入Nike Run Club2024-01-08T01:39:43.496410+00:00起初是 yihong 在v站推广他的开源跑步项目 running_page,我那天在v站刷帖无无意看到了,就点进去了解了下,发现确实挺不错的项目,可以抓取各个平台的跑步数据,汇总聚合在一起,生成一个精美的跑步主页。后面通过 twitter 联系上了 yihong,yihong 是个非常热情,乐于助人的人,在他的帮助下,我成功了拿到了咕咚和 keep 上的跑步数据,并且在他的安利下,加上本身实在是受不了国内运动软件上各种广告,正式从 keep 换到了 Nike Run Club(后面简称 nrc)。

    +]]>
    2021-02-01T06:22:00+00:00
    https://github.com/superleeyom/blog/issues/18咕咚和keep跑步数据导入Nike Run Club2024-01-15T01:30:09.824525+00:00起初是 yihong 在v站推广他的开源跑步项目 running_page,我那天在v站刷帖无无意看到了,就点进去了解了下,发现确实挺不错的项目,可以抓取各个平台的跑步数据,汇总聚合在一起,生成一个精美的跑步主页。后面通过 twitter 联系上了 yihong,yihong 是个非常热情,乐于助人的人,在他的帮助下,我成功了拿到了咕咚和 keep 上的跑步数据,并且在他的安利下,加上本身实在是受不了国内运动软件上各种广告,正式从 keep 换到了 Nike Run Club(后面简称 nrc)。

    切换到 nrc 后,之前其实我有折腾过想把之前在咕咚和 keep 上的数据导入到 nrc,毕竟积累了好几千公里的跑量,放弃掉实在太可惜。后面通过 yihong 的提供的思路,可以尝试将咕咚、keep 的跑步数据导出 gpx,然后再把 gpx 导入到类似 Garmin Connect 等平台,然后在 nrc 上与佳明进行绑定,通过曲线救国,就可以将数据导入进 nrc。

    @@ -4019,7 +4025,7 @@ loginRequest.setProxy(proxy);
  • 我的跑步主页:https://running.leeyom.top/
  • 我的 Nike Run Club id:635709492@qq.com,欢迎互相关注鼓励
  • -]]>2021-01-27T08:31:57+00:00https://github.com/superleeyom/blog/issues/17redis大key内存分析2024-01-08T01:39:43.645842+00:00最近 redis 的内存占用比较高,需要分析下哪些 key 内存占用率比较高,所以整理下分析的思路和笔记。

    +]]>
    2021-01-27T08:31:57+00:00
    https://github.com/superleeyom/blog/issues/17redis大key内存分析2024-01-15T01:30:09.944823+00:00最近 redis 的内存占用比较高,需要分析下哪些 key 内存占用率比较高,所以整理下分析的思路和笔记。

    bigkeys

    使用 redis 自带的查询工具:

    redis-cli -p 6379 -a 密码 --bigkeys
    @@ -4168,7 +4174,7 @@ retail_biz_config_data:provider_product,486796
     
  • Redis内存分析方法
  • 找到 Redis 上大量占用内存的 key
  • -]]>2021-01-19T02:49:56+00:00https://github.com/superleeyom/blog/issues/16主流分布式id方案总结2024-01-08T01:39:43.796935+00:00在简单系统中,我们常常使用 db 的 id 自增方式来标识和保存数据,随着系统的复杂,数据的增多,分库分表成为了常见的方案,db 自增已无法满足要求。这时候全局唯一的 id 生成系统就派上了用场。当然这只是 id 生成其中的一种应用场景。

    +]]>
    2021-01-19T02:49:56+00:00
    https://github.com/superleeyom/blog/issues/16主流分布式id方案总结2024-01-15T01:30:10.051242+00:00在简单系统中,我们常常使用 db 的 id 自增方式来标识和保存数据,随着系统的复杂,数据的增多,分库分表成为了常见的方案,db 自增已无法满足要求。这时候全局唯一的 id 生成系统就派上了用场。当然这只是 id 生成其中的一种应用场景。

    1. 全局唯一的 id:无论怎样都不能重复,这是最基本的要求了
    2. 高性能:基础服务尽可能耗时少,如果能够本地生成最好
    3. @@ -4328,7 +4334,7 @@ PRIMARY KEY(ID)
    4. 这可能是讲雪花算法最全的文章
    5. 大型互联网公司分布式ID方案总结
    6. -]]>2021-01-10T08:15:02+00:00https://github.com/superleeyom/blog/issues/15常用linux进程查询命令2024-01-08T01:39:43.960590+00:00ps 命令详解 +]]>2021-01-10T08:15:02+00:00https://github.com/superleeyom/blog/issues/15常用linux进程查询命令2024-01-15T01:30:10.167784+00:00ps 命令详解

      ps命令详解

      根据进程名查询进程信息

      ps  -ef | grep {processName}
      @@ -4369,7 +4375,7 @@ ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head
       # 查看最消耗内存的进程
       ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%mem | head
       
      -]]>
      2021-01-03T02:07:59+00:00
      https://github.com/superleeyom/blog/issues/14[笔记]失明症漫记2024-01-08T01:39:44.123085+00:00最近看完了诺贝尔文学奖获得者葡萄牙作家萨拉马戈的《失明症漫记》,比较有意思的是,整书没有感叹号,引号等标题符号,就只有逗号,和句号。所以刚开始看的时候,还有点不太适应,有点怎么说呢,叫断片?后面慢慢习惯后,才发现,可能作者的意图是想让读者更能站在角色得角度审视全书。

      +]]>
      2021-01-03T02:07:59+00:00
      https://github.com/superleeyom/blog/issues/14[笔记]失明症漫记2024-01-15T01:30:10.278326+00:00最近看完了诺贝尔文学奖获得者葡萄牙作家萨拉马戈的《失明症漫记》,比较有意思的是,整书没有感叹号,引号等标题符号,就只有逗号,和句号。所以刚开始看的时候,还有点不太适应,有点怎么说呢,叫断片?后面慢慢习惯后,才发现,可能作者的意图是想让读者更能站在角色得角度审视全书。

      这本书挺契合当前形势的,跟今年的武汉肺炎差不多,讲的是全世界的人都得了一种失明症,整个社会文明秩序崩塌的事情。

      整书让我比较印象深刻,当看到被关在精神病院的女人们,为了食物,答应那些盲人歹徒们的肮脏行为,心里非常气愤,在想女人们和他们的男人们为什么不奋起反抗,但是想想,在整个社会秩序文明崩塌的时候,人的本能,活下去才是唯一目的吧!在看到盲人中唯一能看的见的女人,医生的妻子,站起来反抗,拿着剪刀杀了盲人歹徒首领,真是看的让人拍手称快。书中非常让人心疼了就是医生的妻子了,全世界唯一一个能看得见的人,带着一群盲人,从恐怖的精神病院逃出来,在看到那种炼狱般的世界后,依然坚强的活着,给大家带来光明的希望。

      全书的最后那句:“我想我们没有失明,我想我们现在是盲人;能看得见的盲人;能看但又看不见的盲人。”,何尝不是啊?现如今,虽然我们生理上能看得见,但是灵魂和心里我们很多人都是盲人。如果有一天我们真的失明了,你有活下去的勇气吗?以下便是看书过程中一些比较印象深刻的句子:

      @@ -4420,7 +4426,7 @@ ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%mem | head

      我想我们没有失明,我想我们现在是盲人;能看得见的盲人;能看但又看不见的盲人。

      -]]>
      2020-12-31T00:14:27+00:00
      https://github.com/superleeyom/blog/issues/13关于Redis缓存穿透、缓存雪崩、缓存击穿问题探究2024-01-08T01:39:44.265694+00:00缓存穿透 +]]>2020-12-31T00:14:27+00:00https://github.com/superleeyom/blog/issues/13关于Redis缓存穿透、缓存雪崩、缓存击穿问题探究2024-01-15T01:30:10.393173+00:00缓存穿透

      拿一个不存在的 key 去查询数据,如果缓存里面查询不到,就会去数据库里面查询,如果有人恶意拿不存在的 key 疯狂请求,会把数据库压垮,这就是缓存穿透,下面用一段伪代码:

      List<String> cacheList = redis.get(key);
       if(CollUtil.isEmpty(cacheList)){
      @@ -4497,7 +4503,7 @@ return cacheList;
       }
       

      其实对于这些热点 key,最好还是有个独立的服务,去定时的刷新缓存,这样的话,很大的程度上可以避免这种问题。

      -]]>
      2020-12-23T11:45:12+00:00
      https://github.com/superleeyom/blog/issues/125分钟快速理解Redis的内存回收机制2024-01-08T01:39:44.454158+00:00设置键的生存时间 +]]>2020-12-23T11:45:12+00:00https://github.com/superleeyom/blog/issues/125分钟快速理解Redis的内存回收机制2024-01-15T01:30:10.495638+00:00设置键的生存时间
      • EXPIRE key seconds:用于设置秒级精度的生存时间,它可以让键在指定的秒数之后自动被移除
      • PEXPIRE key milliseconds:用于设置毫秒级精度的生存时间,它可以让键在指定的毫秒数之后自动被移除
      • @@ -4589,7 +4595,7 @@ PTTL key
      • 《Redis使用手册》
      • 《Redis设计与实现》
      -]]>
      2020-12-16T13:49:56+00:00
      https://github.com/superleeyom/blog/issues/11同一浏览器不同用户登录冲突问题探究2024-01-08T01:39:44.603169+00:00问题 +]]>2020-12-16T13:49:56+00:00https://github.com/superleeyom/blog/issues/11同一浏览器不同用户登录冲突问题探究2024-01-15T01:30:10.615659+00:00问题

      由于业务扩展问题,目前公司有 a 和 b 两个账号中心服务,分别对应的是运营端和服务商端,这两个账号系统的访问域名分别是a.aqara.cnb.aqara.cn,其中 b 账号中心由其他的团队负责开发,用户登录成功后,会返回用户的信息(userInfo)和访问令牌(token),前端会将他们缓存在客户端的 Cookies里面,由于共用同一个二级域名(.aqara.cn),前端Cookies 里面缓存的数据是共用的。

      就会存在这种问题:同一个浏览器,用户在标签 A 登录A用户,然后又重新打开标签页 B,登录用户 B,这样就会导致,第二个用户会把第一个用户的信息覆盖掉,但是此时用户无感知,Cookies 里面存储的令牌和用户信息就会被覆盖掉。这样的话假如请求的数据(比如查看个人信息)是基于 token 拿用户信息的话,由于后台的网关层,有把 token 作为键,用户信息作为 value,缓存用户用户信息,有时候就会导致 A 用户拿到 B 用户的数据。如果恰好 a 用户和 b 用户都有访问某接口的权限,就会造成,怎么我操作后,显示的操作人确实另外一个人的名字。

      解决方案

      @@ -4668,7 +4674,7 @@ if(!userIdFromToen.equal(userId)){
    7. java 怎么让同一浏览器登录多个用户但是不共用session?
    8. 有关 Session 的那些事儿
    9. -]]>
      2020-12-13T03:36:15+00:00
      https://github.com/superleeyom/blog/issues/10GitHub Actions 实战之Chrome书签同步2024-01-08T01:39:44.747310+00:00之前对 GitHub Actions 不是特别熟悉,以为它适合于跑类似于脚本语言 Python,不太适合与 Java 这类需要借助于 JVM 的语言,恰好最近有一个简单的想法就是想把 Chrome 书签同步到 Github,并将书签生成 README.md 文件,就尝试下用 GitHub Actions 去构建 Java,实际验证了其实是可行的,GitHub Actions 完全可以跑 Java做一些自动化操作。

      +]]>
      2020-12-13T03:36:15+00:00
      https://github.com/superleeyom/blog/issues/10GitHub Actions 实战之Chrome书签同步2024-01-15T01:30:10.719230+00:00之前对 GitHub Actions 不是特别熟悉,以为它适合于跑类似于脚本语言 Python,不太适合与 Java 这类需要借助于 JVM 的语言,恰好最近有一个简单的想法就是想把 Chrome 书签同步到 Github,并将书签生成 README.md 文件,就尝试下用 GitHub Actions 去构建 Java,实际验证了其实是可行的,GitHub Actions 完全可以跑 Java做一些自动化操作。

      什么是 GitHub Actions

      官网的定义就是:

      @@ -4803,7 +4809,7 @@ private static final String README_PATH = "README.md";
    10. Chrome 书签同步到GitHub
    11. Java-Markdown-Generator
    12. -]]>2020-12-07T02:12:13+00:00https://github.com/superleeyom/blog/issues/95分钟快速理解Redis的持久化2024-01-08T01:39:44.906698+00:00Redis 的持久化指的是把内存中存储的数据以文件形式存储到硬盘上,而服务器也可以根据这些文件在系统停机之后实施数据恢复,让服务器的数据库重新回到停机之前的状态。为了满足不同的持久化需求,Redis 提供了RDB持久化AOF持久化RDB-AOF混合持久化等多种持久化方式以供用户选择。如果用户有需要,也可以完全关闭持久化功能,让服务器处于无持久化状态

      +]]>
      2020-12-07T02:12:13+00:00
      https://github.com/superleeyom/blog/issues/95分钟快速理解Redis的持久化2024-01-15T01:30:10.849735+00:00Redis 的持久化指的是把内存中存储的数据以文件形式存储到硬盘上,而服务器也可以根据这些文件在系统停机之后实施数据恢复,让服务器的数据库重新回到停机之前的状态。为了满足不同的持久化需求,Redis 提供了RDB持久化AOF持久化RDB-AOF混合持久化等多种持久化方式以供用户选择。如果用户有需要,也可以完全关闭持久化功能,让服务器处于无持久化状态

      RDB持久化

      RDB 的全称是 Redis DataBaseRDB持久化是 Redis 默认使用的持久化功能,通过创建以.rdb后缀结尾的二进制文件,该文件包含了服务器在各个数据库中存储的键值对数据等信息。Redis 提供了三种创建 RDB 文件的方法,分别是:手动执行SAVE命令、手动执行BGSAVE命令、通过配置选项自动创建等三种方式。

      那 RDB 文件的结构是咋样的呢?它由如下几部分组成:

      @@ -5023,7 +5029,7 @@ save 3600 1

      如果用户给定的是 save 选项,那么无论服务器是否启用了持久化功能,服务器都会在关闭之前执行一次持久化操作。如果用户给定的是 nosave 选项,那么服务器将不执行持久化操作,直接关闭服务器。在这种情况下,如果服务器在关闭之前曾经修改过数据库,那么它将丢失那些尚未保存的数据。

      总结

      总的来说,在数据持久化这个问题上,Redis 4.0 及之后版本的使用者都应该优先使用 RDB-AOF 混合持久化;对于 Redis 4.0 之前版本的使用者,因为 RDB 持久化更接近传统意义上的数据备份功能,而 AOF 持久化则更接近于传统意义上的数据持久化功能,所以如果用户不知道自己具体应该使用哪种持久化功能,那么可以优先选用 AOF 持久化作为数据持久化手段,并将 RDB 持久化用作辅助的数据备份手段。

      -]]>
      2020-12-02T16:21:25+00:00
      https://github.com/superleeyom/blog/issues/8基于Docker实现nginx-keepalived双机热备机制2024-01-08T01:39:45.064745+00:00基本概念 +]]>2020-12-02T16:21:25+00:00https://github.com/superleeyom/blog/issues/8基于Docker实现nginx-keepalived双机热备机制2024-01-15T01:30:10.960160+00:00基本概念

      LVS

      LVS 是一个开源的软件,可以实现传输层四层负载均衡。LVS 是 Linux Virtual Server 的缩写,意思是 Linux 虚拟服务器。目前有三种 IP 负载均衡技术(VS/NAT、VS/TUN和VS/DR);八种调度算法:轮询、加权轮询、源地址散列、目标地址散列、最小连接数、加权最少连接数、最短期望延迟、最少队列调度。

        @@ -5289,7 +5295,7 @@ systemctl restart keepalived.service
      • systemctl stop keepalived.service:停止
      • systemctl status keepalived.service :查看服务状态
      -]]>
      2020-11-23T03:03:49+00:00
      https://github.com/superleeyom/blog/issues/7[笔记]睡眠革命2024-01-08T01:39:45.219610+00:00睡眠革命:如何让你的睡眠更高效 +]]>2020-11-23T03:03:49+00:00https://github.com/superleeyom/blog/issues/7[笔记]睡眠革命2024-01-15T01:30:11.065785+00:00睡眠革命:如何让你的睡眠更高效

      作者:尼克·利特尔黑尔斯;数量:13个笔记;时间:2020-11-22 11:18:11

      @@ -5337,7 +5343,7 @@ systemctl restart keepalived.service -]]>
      2020-11-22T03:22:50+00:00
      https://github.com/superleeyom/blog/issues/6Hackintosh黑苹果折腾之旅2024-01-08T01:39:45.408296+00:00

      +]]>
      2020-11-22T03:22:50+00:00
      https://github.com/superleeyom/blog/issues/6Hackintosh黑苹果折腾之旅2024-01-15T01:30:11.176820+00:00

      硬件配置

      其实我这台黑苹果,今年年初三月份的时候就装好了,周末趁着有空,把系统升级到了 macOS Big Sur ,在此总结下自己的整个的安装的一些心得。

      我这台黑苹果主机的整体配置清单如下:

      @@ -5395,7 +5401,7 @@ systemctl restart keepalived.service
    13. opencore-configurator
    14. Hackintool
    15. -]]>
      2020-11-15T08:15:07+00:00
      https://github.com/superleeyom/blog/issues/5nginx负载均衡原理之ip_hash哈希算法探究2024-01-08T01:39:45.564318+00:00关于 ip_hash nginx 官网是这样定义的:

      +]]>
      2020-11-15T08:15:07+00:00
      https://github.com/superleeyom/blog/issues/5nginx负载均衡原理之ip_hash哈希算法探究2024-01-15T01:30:11.294035+00:00关于 ip_hash nginx 官网是这样定义的:

      Specifies that a group should use a load balancing method where requests are distributed between servers based on client IP addresses. The first three octets of the client IPv4 address, or the entire IPv6 address, are used as a hashing key. The method ensures that requests from the same client will always be passed to the same server except when this server is unavailable. In the latter case client requests will be passed to another server. Most probably, it will always be the same server as well.

      @@ -5431,7 +5437,7 @@ systemctl restart keepalived.service

      如上图,圆环上有 0-2^32-1 个节点,每个节点,按顺时针方向排列递增,用户的请求 ip,通过哈希算法,会落在圆环上的某个节点上。按顺时针方向,用户1、用户2会访问节点1,用户3、用户4会访问节点2,用户5、用户6会访问节点3,用户7访问到节点4。假如此时删除了节点3,那么原本的用户5和用户6的请求,则会落到节点4上,其他用户的访问均不会受到影响,只会有用户5和用户6的会话信息会丢失,不会造成全局的变动。

      另外还有一个优点,如果发现节点1访问量很大,负载高于其他节点,这就说明节点1存储的数据是热点数据。这时候,为了减少节点1的负载,我们可以在热点数据位置再加入一个node,用来分担热点数据的压力。

      -]]>
      2020-11-05T06:24:49+00:00
      https://github.com/superleeyom/blog/issues/4nginx基础指令及初始配置解析2024-01-08T01:39:45.708352+00:00nginx 常用命令 +]]>2020-11-05T06:24:49+00:00https://github.com/superleeyom/blog/issues/4nginx基础指令及初始配置解析2024-01-15T01:30:11.398234+00:00nginx 常用命令
      • ./nginx -s stop :强制停止nginx

        @@ -5726,7 +5732,7 @@ proxy_cache_path /usr/local/nginx/upstream_cache keys_zone=mycache:5m max_size=1
    -]]>
    2020-10-20T01:39:07+00:00
    https://github.com/superleeyom/blog/issues/3白话解说之 BIO、NIO、AIO、异步阻塞的区别2024-01-08T01:39:45.885147+00:00白话解说 +]]>2020-10-20T01:39:07+00:00https://github.com/superleeyom/blog/issues/3白话解说之 BIO、NIO、AIO、异步阻塞的区别2024-01-15T01:30:11.528684+00:00白话解说

    首先明白这个几个简称的含义:

    • BIO(Blocking IO):同步阻塞
    • @@ -5750,7 +5756,7 @@ proxy_cache_path /usr/local/nginx/upstream_cache keys_zone=mycache:5m max_size=1

      总结就是:异步的优势显而易见,大大优化用户体验, 非阻塞使得系统资源开销远远小于阻塞模式,因为系统不需要创建新的进程(或线程),大大地节省了系统资源。

      专业解说

      发现一篇解说的很清楚的文章:《常见的IO模型有哪些?Java中的BIO、NIO、AIO 有啥区别?》

      -]]>2020-10-17T09:19:18+00:00https://github.com/superleeyom/blog/issues/2Java8函数式编程中比较实用的操作语法2024-01-08T01:39:46.021876+00:00java8-stream

      +]]>
      2020-10-17T09:19:18+00:00
      https://github.com/superleeyom/blog/issues/2Java8函数式编程中比较实用的操作语法2024-01-15T01:30:11.641762+00:00java8-stream

      分组(一对多)

      假如有如下的一个数据结构:

      [
      @@ -5927,7 +5933,7 @@ System.out.println(citiesCommaSeparated);
       
      -]]>2020-10-09T10:22:49+00:00https://github.com/superleeyom/blog/issues/1Java泛型的回顾之旅2024-01-08T01:39:46.165313+00:00“泛型”的字面意思就是广泛的类型。类、接口和方法代码可以应用于非常广泛的类型,代码与它们能够操作的数据类型不再绑定在一起,同一套代码可以用于多种数据类型,这样,不仅可以复用代码,降低耦合,而且可以提高代码的可读性和安全性。在实际开发中,经常会使用到泛型,但语法非常令人费解,而且容易混淆对于其中的一些细节的地方,所以翻书去回顾下。

      +]]>
      2020-10-09T10:22:49+00:00
      https://github.com/superleeyom/blog/issues/1Java泛型的回顾之旅2024-01-15T01:30:11.744045+00:00“泛型”的字面意思就是广泛的类型。类、接口和方法代码可以应用于非常广泛的类型,代码与它们能够操作的数据类型不再绑定在一起,同一套代码可以用于多种数据类型,这样,不仅可以复用代码,降低耦合,而且可以提高代码的可读性和安全性。在实际开发中,经常会使用到泛型,但语法非常令人费解,而且容易混淆对于其中的一些细节的地方,所以翻书去回顾下。

      泛型类

      首先看一段简单代码:

      public class Pair<T> {