原创 太陽聖火自動播放

源碼位置: https://bjtysh.chinahrt.cn/share/player.js?2020 var i = 0; setInterval(function () { player.sdk.seekTo(i

原创 Hashids 原理及實現

Hashids是一個將數字轉化爲長度較短、唯一且不連續的值的庫。特點是: 對非負整數都可以生成唯一短id 可以設置不同的鹽,具有保密性 遞增的輸入產生的輸出無法預測 代碼較短,且不依賴於第三方庫 原理 進制轉換:將10進制的整

原创 Netty中Channel、ChannelPipeline、ChannelHandler、ChannelHandlerContext之間的關係

public interface Channel extends AttributeMap, ChannelOutboundInvoker, Comparable<Channel> { // ... ChannelPipelin

原创 調試中遇到的一個 bug

ConstantPool.getStringAt() # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb)

原创 mac 編譯 openjdk11

下載 openjdk 鏡像 hg clone https://hg.openjdk.java.net/jdk/jdk11/ 或者在 http://jdk.java.net/下載 下載前置依賴 brew install F

原创 thrift-protocol

// Thrift 消息類型 public final class TMessageType { public static final byte CALL = 1; // 調用遠程方法,並且期待對方發送響應 pu

原创 thrift-編解碼流程

Thrift protocol 層需要進行 4 次編解碼操作: 客戶端對請求進行編碼,服務端對請求進行解碼 服務端對響應進行編碼,客戶端對響應進行解碼 helloservice.thrift namespace jav

原创 Thrift 生成文件解析

thrift 文件 namespace java com.meituan.model struct Pair { 1: required string key; 2: required strin

原创 使用 thrift 遇到的一個 bug

org.apache.thrift.protocol.TProtocolException: Required field 'statusCode' was not found in serialized data! Struct

原创 Thrift0.8當接口返回類型i16/i32/i64/bool時,客戶端無法捕獲服務端拋出的異常

測試代碼: namespace java com.meituan.service exception BugTestException{ 1: required i32 code; 2: required str

原创 查找服務器可用端口號

import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.ServerS

原创 RPC 學習筆記

RPC RPC(Remote Procedure Call) 是一種進程間通信方式。它允許程序調用另一個地址空間的過程或函數,而不用程序員顯式編碼這個遠程調用的細節。即程序員無論是調用本地的還是遠程的,本質上編寫的調用代碼基本相同

原创 使用springboot 搭建Web框架

https://github.com/N3verL4nd/demo 未完待續。

原创 git 誤傳二進制文件

git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -5 git rev-list --objects --all | grep 86ba

原创 JDK8 實現重試

@FunctionalInterface public interface Supplier<T> { T get(); } @FunctionalInterface public interface Predicate