原创 太陽聖火自動播放
源碼位置: 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