ChatGPT 的出现惊艳了世界,它通过了图灵测试,让人们分不清回答问题的是人还是机器。大家不甘于只在官方的对话页面问答,想利用 GPT 模型的自然语言能力结合私有数据做更多的应用场景,解决模型训练的数据不是实时的问题,同时也解决 OpenAI API tokens 限制的的问题。本文先来分析下这些基本问题如何解决,理解了这个基本原理,就能了解到 ChatGPT 衍生的很多产品,甚至去打造适合自己场景的应用。

阅读全文 »

为了方便快速熟悉 Kubernetes 相关功能特性,拥有一个私人的 Kubernetes 集群是非常方便的。一般在会推荐在本地使用 minikube,我也尝试过多次,不过还是有点委屈我的 16GB 的 Macbook Pro。年前在考 CKAD 时用 Google Cloud 免费的 300 刀直接创建了 GKE,本地 kubectl 直接连接使用非常方便。由于官方文档比较多,为了方便,当时记录了连接 GKE 的相关步骤及资料,希望对相关同学有所帮助。

阅读全文 »

春节马上就到了,而我因为年底比较忙碌一直没抽出空来写下年终总结。2022 是个值得记录的一年,因为它很特别,我在这一年也经历了许多事情,希望还是停下脚步回望这过去的一年,在新的一年再接再厉,去实现自己想做的事。

阅读全文 »

最早在推动公司应用容器化过程一直使用内部的容器云平台,由于内部的容器云平台做了一层封装,对 Kubernetes 一些原生的功能开放性不足。近期准备调研 Service Mesh,需要一套干净的 Kubernetes 集群作为 POC 环境做测试,通过查找一些资料,最终选择了用 Rancher 来搭建 Kubernetes,花了半天就搭建完成了。现在搭建一套 Kubernetes 集群来测试学习还是挺方便的,这里做些记录分享,尽管这类型的内容比较容易过时,还是希望对读者有些帮助。

阅读全文 »

近期Log4j2的安全漏洞影响了全世界Java技术生态的大部分软件系统,在之后的几天发布了若干个版本修复安全漏洞。公司内部的框架近期也在逐步升级,供各业务团队直接使用,在这个过程中顺便梳理了下Java日志框架生态。很多同学分不清楚Log4j,Logback,SLF4j,Log4j2等框架,对于相关的依赖包简直是一头雾水,本文结合之前的一些记录,完整梳理了当前流行的日志框架及推荐使用方式。

阅读全文 »

最近在内部准备一个消息中间件的实践分享,顺便整理下RocketMQ的存储设计。存储设计是整个Broker最为重要的部分之一,好比你着手了解一个业务系统的逻辑时,如果先了解其DB表结构设计,再去理解业务代码逻辑就容易的多了。本文通过本地实验及相关文档参考,整理其核心概念的存储设计。

阅读全文 »

Apache Pulsar是一款支持多租户,高性能的端到端的消息中间件。最早由Yahoo开发,目前该项目已经是Apache基金会的项目之一。当前世面上已经有一些优秀的消息中间件,如Kafka、RabbitMQ,RocketMQ等,为什么Pulsar还会横空出世?很多人对Pulsar有一些误解,认为这只是另一种消息传输方式而已,但每个新鲜事物的诞生,必定有其要解决的场景,了解其背后设计的动机是非常值得的。本文侧重点主要给大家介绍Pulsar的消息处理模型,其更多特性后续另外介绍。

阅读全文 »

在复杂微服务架构体系下,不可避免的就是跨语言通信场景下,而在日常的开发又可能面临着跨平台通信。gRPC是Google在2015年开源的跨平台,跨语言的通信框架,结合Protocol Buffers工具做序列化,拥有很好的性能表现。有兴趣可以了解下grpc的动机与设计原则。在Java领域已经有Dubbo这种较为全面的服务治理型的RPC框架,为什么还要重视起gRPC?未来微服务架构会走向Mesh,所有服务治理的功能会下层到Sidecar,客户端会轻量到只能最基础的通信功能,再加上应用层的逻辑;以及越来越多的偏基础层组件需要满足上层多语言的请求并保证高性能,这都会使得gRPC得到广泛的应用。

阅读全文 »

前阵子有人评判SkyWalking的客户端的实现设计上不符合业界规范,说Java客户端存在导致JVM OOM的缺陷。抛开争论,我们先来研究下SkyWalking的轻量级队列设计,再来讨论此具备争议性的话题。(本文基于SkyWalking 8.2.0版本源码,及Trace数据上报为例)

阅读全文 »

在企业内部关于代码项目的类型大致可以分为两类,业务型代码框架型代码业务型代码即以业务快速迭代,有完善的业务测试并交付;框架型代码主要是对针对所有业务代码做一些通用型下层,或一些工具类,或开源项目扩展集成等。这两类项目在Git分支协作使用方式上,还是有点不同。

阅读全文 »
0%