# 第一章 分布式服务架构
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、什么币都买、山寨交易所、听信砖家、受情绪控制。