技术阅读周刊,每周更新。
历史更新
- 20231013:第一期
- 20231022:第二期
- 20231027:第三期
Technology trends for Spring projects : java
URL: https://www.reddit.com/r/java/comments/17ixfzf/technology_trends_for_spring_projects/ 这是一个 Reddit
帖子,讨论了 Spring
项目的技术趋势,以下是一些点赞较高的回复:在招聘的时候还会 Spring
考虑周边的技术栈:比如 Linux、Docker、kubernetes
、Git 等,但如果你具备 Spring Security 和 OpenSSL 的话会更受欢迎。
这点在国内感受貌似并不明显,不确定是不是国外更看重一些。
Kotlin 在服务端目前还处于一个较小的规模,特别是如今 Java 发版节奏加快,对于大部分人来说没有足够的理由来摆脱 Java。
Spring
依然是 Java 领域最流行的服务端框架,不管你是否喜欢。
不用花太多时间去追寻学习新技术,更重要的是确保你已经打好基础了,比如数据库几乎不会发生变化,Spring 底层依然是基于 Servlet 实现的,理解这些基础技术是如何运作的,从而避免一些常见问题。现在 Spring 已经没有使用 servlet,而是该用 WebFlux 替代
比较认可这个观点,还是更应该花时间到不会变的技术栈上,上层技术如何改变学起来也会更容易。
其中有两个评论比较有意思:Spring 团队花了大量的时间来接入 Kotlin,比如 coroutines 和一些其他资源 在 Spring3 发布的时候,spring 团队也投入了大量时间到 Groovy
确实当下 Groovy
使用的越来越少了,所以技术潮流确实会随时间变化,还是抓住不可变的性价比更高。
Service mesh data plane vs. control plane | by Matt Klein | Envoy Proxy
URL: https://blog.envoyproxy.io/service-mesh-data-plane-vs-control-plane-2774e720f7fc
服务网格中的数据库面和控制面对比,数据面主要包含以下功能:
- 健康检测
- 路由
- 负载均衡
- 身份验证
- 可观测性
控制面主要包含以下功能:
- 服务注册发现
- 各种控制面的配置管理
常见的数据面产品有:Linkerd, NGINX, HAProxy, Envoy, Traefik控制面产品有:Istio, Nelson, SmartStack数据面和控制面是松耦合的,可以替换不同的数据面产品。
Kubewatch: A Kubernetes Watcher for Observability and Monitoring | by Seifeddine Rajhi | Oct, 2023 | Medium
URL: https://medium.com/@seifeddinerajhi/kubewatch-a-kubernetes-watcher-for-observability-and-monitoring-d6dea1dbeb06 介绍了一个名为 kubewatch 的开源项目。
可以将各种资源变化的事件通过 webhook 的方式发出通知,可以让维护者请求 kubernetes
的运行状态。
namespaceToWatch: "default"
resourcesToWatch:
deployment: false
replicationcontroller: false
replicaset: false
daemonset: false
services: true
pod: true
job: false
node: false
clusterrole: true
clusterrolebinding: true
serviceaccount: true
persistentvolume: false
namespace: false
secret: false
configmap: false
ingress: false
coreevent: false
event: true
这类开源项目其实还蛮多的,我之前也写过一个用于监听我们应用 Pod 的变化的事件,然后将这些消息发送给 Pulsar,只是这个项目做的更全了。
Bye-bye, ChatGPT: AI Tools That Are As Good As ChatGPT (But Few People Use) | by ArticleAce | Medium
URL: https://medium.com/@Article_Ace/bye-bye-chatgpt-ai-tools-that-are-as-good-as-chatgpt-but-few-people-use-9df4dcdf5ab0 作者分享了一些除了 ChatGPT 之外的工具,大部分是一些垂直应用。
Auto-GPT
https://github.com/Significant-Gravitas/Auto-GPT
这个工具已经很流行了,可以自己给自己输入 Prompt 直到完成你的目标为止。
OpenAI-Playground
ChatGPT 目前只能让我们选择使用的模型(3.5/4)但我们可以使用 playground 来自定义一些输出。https://platform.openai.com/playground
Jasper
Jasper 是一个用于为社交媒体、广告、博客、邮件生成内容的 AI 工具,相当于是一些不同的垂直领域。https://www.jasper.ai/
作者会用它来生成一些创意、和视频脚本。
Quillbot
https://quillbot.com/这个也是我自己用的较多的工具,可以用来润色我们的英文表达。但我需要在 GitHub 上提一些比较复杂的 issue 、PR 或者是英文邮件时,就会用这个工具进行润色,效果还是很不错的。
如何用Go实现一个异步网络库?
URL: https://mp.weixin.qq.com/s/UBcDrPwEdFz7JOfj0UP2Uw 本文主要讲解了一些场景的网络模型以及 Go 原生网络模型的原理,并对如何实现一个网络库提供了一些思路 网络库通常是为了解决两个问题:
- C10K/100K 问题,如何应对海量的并发连接
- 服务端如何在高并发的时候正确响应 对此有三种网络模型:
- 传统 IO 阻塞模型
- Reactor 模型
- Proactor 模型
Go 原生模型其实已经很强了,可以把他理解为 Reactor 模型。
可以基于以下三层设计进行设计:
也可以参考一些开源的网络库:
- https://github.com/panjf2000/gnet
- https://github.com/Allenxuxu/gev
- https://github.com/aceld/zinx
文章链接:
- https://www.reddit.com/r/java/comments/17ixfzf/technology_trends_for_spring_projects/
- https://blog.envoyproxy.io/service-mesh-data-plane-vs-control-plane-2774e720f7fc
- https://medium.com/@seifeddinerajhi/kubewatch-a-kubernetes-watcher-for-observability-and-monitoring-d6dea1dbeb06
- https://medium.com/@Article_Ace/bye-bye-chatgpt-ai-tools-that-are-as-good-as-chatgpt-but-few-people-use-9df4dcdf5ab0
- https://mp.weixin.qq.com/s/UBcDrPwEdFz7JOfj0UP2Uw