随笔分类 - 个人作品
摘要:# 一、背景 前段时间了解了泛化调用这个玩意儿,又想到自己之前写过一个RPC框架(参考《[手写一个RPC框架](https://www.cnblogs.com/2YSP/p/13545217.html)》),于是便想小试牛刀。 # 二、泛化调用简介 **什么是泛化调用** 泛化调用就是在不依赖服务方
阅读全文
摘要:# 一、前言 2018年写过一篇分库分表的文章《[SpringBoot使用sharding-jdbc分库分表](https://www.cnblogs.com/2YSP/p/9746981.html)》,但是存在很多不完美的地方比如: - sharding-jdbc的版本(1.4.2)过低,现在gi
阅读全文
摘要:一、Sentinel简介 Sentinel是阿里开源的面向服务流量治理的框架,官方原文是Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 Sen
阅读全文
摘要:一、背景 作为Java开发,经常需要根据数据库某个字段获取对应的枚举类,然后就要在枚举类添加如下的方法: public static TestEnum getByCode(Integer code) { return Arrays.asList(values()).stream().filter(i
阅读全文
摘要:一、背景 21年发布的开源项目ship-gate收获了100+start,但是作为网关它还缺少一项重要的能力——集群化部署的能力,有了这个能力就可以无状态的横向扩展,再通过nginx等服务器的反向代理就能极大提升网关的吞吐量。 本文主要介绍如何实现ship-gate的集群化改造,不了解该项目的童鞋可
阅读全文
摘要:一、背景 之前写了一篇《手写事件发布订阅框架》,虽然可以用但代码写的比较粗糙,且存在优化的空间,于是对其进行了重构主要包括以下几点: 面向接口编程,包结构更加清晰。 框架改成spring-boot-starter的形式实现即插即用。 对核心类EventManager的代码进行了部分剥离,使其更符合职
阅读全文
摘要:一、前言 发布订阅模式也叫观察者模式,利用该模式可以进行代码解耦,很多框架都用到该设计模式,比如Spring的事件机制,guava的EventBus(事件总线)等,不清楚观察者模式的话可以查看本人之前写的博客《设计模式之观察者模式》。 为了更好的了解现有的事件框架实现原理,便手写了一个简单的
阅读全文
摘要:一、前言 最近在github上看了soul网关的设计,突然就来了兴趣准备自己从零开始写一个高性能的网关。折腾了大概三周时间,网关ship-gate核心功能基本都已完成,写这篇文章是记录我是如何从零开始手写一个网关的。 二、设计 2.1技术选型 网关是所有请求的入口,所以要求有很高的吞吐量,为了实
阅读全文