# 第一章 分布式服務架構
gRPC是Google的一個高性能、開源和通用的RPC框架,面向移動和HTTP/2設計,HTTP/2有雙向流、流控、頭部壓縮、單TCP連接上的多復用請求等特性;序列化方式默認使用Protocol Buffers,是Google開源的一套成熟的結構數據序列化機制。protobuf3的IDL主要由message(消息)、enum(枚舉)、map(映射)、service(服務)等數據結構或者元素構成。
SOA設計原則:標準化服務契約,服務松散耦合,服務抽象,服務可重用性,服務自治,服務無狀態性,服務可發現性,服務可組合性。SOA由服務提供端、服務消費端、服務注冊中心、服務治理四個部分組成。
RPC框架序列化與反序列化實現:Java默認序列化(注意transient);XML序列化(XStream和自帶方式);JSON序列化(Jackson和阿里的fastjson,還有GSON);Hessian跨語言的二進制序列化協議;protobuf序列化框架(獨立語言平臺);protostuff基于protobuf,但是不用編寫proto文件;thrift支持的序列化協議TBinaryProtocol, TCompactProtocol, TJSONProtocol;Avro序列化框架支持二進制和JSON編碼兩種方式;JBoss Marshalling兼容原生Java序列化,兼容java.io.Serializable基礎之上增加了一些可調參數和附加特性;
區塊鏈經濟的核心不做技術,而在商業邏輯的重構。2009年1月3日,創始區塊;區塊鏈的本質每個人都是數據庫。3大特征:核心思想是去中心化,最大的顛覆性在于信用的建立,集體維護可以降低成本。區塊鏈1.0:可編程貨幣;區塊鏈2.0:可編程金融;區塊鏈3.0:可編程社會。劣勢:效率低、費電、隱私保護、博弈問題(非法);5大坑:亂投ICO、什么幣都買、山寨交易所、聽信磚家、受情緒控制。