技术阅读周刊第第四期

2023-11-06 15:27:05 浏览数 (1)

技术阅读周刊,每周更新。

历史更新

  • 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 的运行状态。

代码语言:javascript复制
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

0 人点赞