HTTP Server-Sent Events 简单使用
SSE
介绍
Server-Sent Events(SSE)是一种基于 HTTP 的服务器推送技术,它允许服务器向客户端实时发送数据
通过SSE,服务器可以主动推送数据给客户端,而无需客户端发起请求
SSE 建立在 HTTP 协议之上,使用了长连接(持久连接)来实现服务器和客户端之间的实时通信
规则引擎简单介绍
介绍
如果你一直在开发一种产品或业务,那么经常发生的场景就是不断变化的业务需求;开发人员基于一组条件构建解决方案,随着时间的推移,这些逻辑条件可能会因业务需求或其他外部市场因素的变化而发生改变
规则引擎是解决此类问题的有效方法
Guide to Rule Engines – Mohit Khare
美团外卖的 CRM 业务步入成熟期,规则类需求几乎撑起了这个业务所有需求的半边天;一方面规则唯一不变的是 “多变”,另一方面开发团队对 “规则开发” 的感受是乏味、疲惫和缺乏技术含量
如何解决规则开发的效率问题,最大化解放开发团队成为目前的一个 KPI
什么是规则引擎
业务规则引擎是在执行一个或多个业务规则的系统,这些规定可能来自各种业务规则:
- 员工可以因任何原因或无原因被解雇,但不能因非法原因
- 所有一次性消费超过 100 美元的客户都将获得 10% 的折扣
Redisson RateLimiter
背景
对于单机限流,可以使用 Guava 等工具
如果需要对所有服务进行限流,就需要使用依赖同一个数据资源
简单的方案可以使用 Redis 记录限流相关信息进行实现,Redisson 的
RRateLimiter
就是基于 Redis
实现的全局限流工具,使用了令牌桶的思想
基本使用
观察者模式 - Observer
背景
观察者模式(Observer Pattern)用来处理某个值得关注的状态的对象状态变更,进而执行相应的操作
将自身的状态改变通知给其他对象, 我们也将其称为 发布者 (publisher)
所有希望关注发布者状态变化的其他对象被称为 订阅者 (subscribers)
所有订阅者都必须实现同样的接口, 发布者仅通过该接口与订阅者交互, 接口中必须声明通知方法及其参数, 这样发布者在发出通知时还能传递一些上下文数据
DNS 解析导致的 ssh connect to host github.com port 22 Connection refused
背景
一段时间没有使用 github SSH 操作,今天突然发现 Hexo deploy 无法正常 push 到仓库
报错信息为
1 | ssh: connect to host github.com port 22: Connection refused |
开始以为是 SSH 配置存在问题,但是检查了配置以及仓库情况并没有发现问题