sentry:一个跨平台的代码诊断与日志分析工具

Sentry是一个提供错误跟踪和性能监控的平台,其Java SDK的源码托管在GitHub上。Sentry的核心优势在于能够实时捕获应用程序中的错误并提供详细的错误跟踪信息,同时也可以监控应用程序的性能表现。该平台具有官方网站和GitHub仓库,分别为https://sentry.io和https://github.com/getsentry/sentry-java。
阅读更多

Netty源码剖析

本文介绍了如何通过导入Netty源码并使用Maven构建项目,创建基于EventLoop的线程组。NioEventLoopGroup是多个EventLoop的抽象,每个EventLoop维护一个Selector实例,实现了多线程利用和事件循环。文章主要解释了线程组的创建流程和NioEventLoop的内部实现,包括子线程的创建、选择策略、任务队列等。
阅读更多

Netty高级进阶之Netty编解码器

本文介绍了Netty中的高级编解码器概念,包括编码(序列化)和解码(反序列化)的作用,以及Java序列化的特点和限制。Netty的编解码器分为编码器和解码器两部分,可以通过ChannelPipeline连接多个编解码器实现复杂的转换逻辑。文章还介绍了Netty提供的抽象基类和实现,如ByteToMessageDecoder、ReplayingDecoder和MessageToMessageEncoder等。最后,演示了如何在Netty中添加自定义的解码器和编码器。
阅读更多

Netty核心API介绍

本文介绍了Netty核心API中的ChannelHandler及其实现类,以及它们之间的关系。在Netty开发中,通过定义实现了ChannelHandler接口或其子类的handler类,并重写相关方法来实现业务逻辑。文章解释了常用的事件处理方法,如channelActive、read、readComplete、exceptionCaught等。另外,文章讨论了ChannelPipeline的作用,它负责处理和拦截入站和出站事件,形成了一个责任链。每个处理节点通过ChannelHandlerContext进行调用。此外,还介绍了ChannelOption的设置、ChannelFuture的使用,以及EventLoopGroup在多线程处理中的应用。
阅读更多

Netty入门与异步模型

本文介绍了使用Netty框架编写异步网络服务器的入门案例。文章通过创建BossGroup和WorkerGroup线程组,设置服务端通道实现为NIO,添加自定义业务处理Handler等步骤,实现了一个简单的Netty服务端。同时,文章还提及了关闭通道和连接池的操作。自定义的Netty服务端Handler处理通道读取、读取完成、异常等事件。
阅读更多

Netty核心原理

Netty是基于事件驱动的异步网络应用程序框架,用于快速开发高性能、高可靠性的网络IO程序。它解决了原生NIO的繁琐和复杂性,简化了网络应用的开发过程。Netty的核心优势包括零拷贝、可扩展的事件模型、支持多种协议、安全传输、高性能和灵活的线程模型等。该框架在互联网、大数据、分布式计算、游戏和通信等领域广泛应用。
阅读更多

介绍一个Go实现的内网穿透神器frp

本文介绍了内网穿透的用途,特别是在需要外网访问的服务测试和共享接口测试方面的便利。作者推荐了使用frp工具进行内网穿透的方法,包括服务端和客户端的配置步骤。通过简单的配置,可以实现通过域名访问本地的HTTP服务,同时添加新服务只需新增域名解析和客户端配置。
阅读更多

使用GitHub Actions完成ci自动化部署

本文介绍了使用GitHub Actions 实现自动部署的方法。通过在GitHub 仓库中配置 CI 任务脚本,将代码推送到仓库后,GitHub Actions 将自动触发脚本执行。文章详细说明了任务脚本编写步骤,以及如何配置 GitHub Actions。需要注意的是要配置正确的 GitHub Token 以实现访问权限。
阅读更多

使用SSH方式操作GitHub

本文介绍了在使用SSH密钥连接GitHub的过程。首先使用ssh-keygen生成密钥,然后将公钥添加到GitHub账户。详细步骤包括生成密钥、复制公钥内容、在GitHub设置中添加新SSH密钥并提交。完成后即可通过SSH方式操作GitHub。
阅读更多

架构设计基本原则之开闭原则(OCP)

开闭原则(OCP)是架构设计的基本原则之一,其核心思想是软件实体应该对扩展开放,对修改关闭。通过抽象约束封装变化,通过接口或抽象类定义稳定的抽象层,将可变因素封装在具体实现中。开闭原则的作用在于提高代码的可复用性和可维护性,使软件实体具备适应性、灵活性、稳定性和延续性。实例中以学校课程为例,通过接口和实现类的组织,应对了促销活动的变化,展示了开闭原则的实际应用。
阅读更多