《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 http://www.iocoder.cn/Fight/Today-a-early-rise-a-wave-of-baidu-is-Java-project/ 「芋道源码」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

今儿 7 点一大早,早起群的死变态已经纷纷打卡起来学习了。

菜逼互啄群

吓得艿艿这个小帅胖,翻了一圈“年龄”,赶紧起来 = =。

点了一套煎饼果子,看到《百度开源的 71 款项目》文章,于是乎去百度的 https://github.com/baidu 愁一愁有哪些和 Java 相关的,还是有点东东的。。。

1. 分布式配置管理平台 Disconf

https://github.com/knightliao/disconf

Distributed ConfigurationManagement Platform(分布式配置管理平台)专注于各种 分布式系统配置管理 的通用组件/通用平台, 提供统一的配置管理服务。

目前已经不维护,建议采用 Apollo 或者 Nacos 作为配置中心。

2. 分布式 ID 生成器 UidGenerator

https://github.com/baidu/uid-generator

UidGenerator 是Java实现的, 基于Snowflake算法的唯一ID生成器。

UidGenerator 以组件形式工作在应用项目中, 支持自定义workerId位数和初始化策略, 从而适用于 docker 等虚拟化环境下实例自动重启、漂移等场景。

在实现上, UidGenerator 通过借用未来时间来解决sequence天然存在的并发限制; 采用 RingBuffer 来缓存已生成的UID, 并行化 UID 的生产和消费, 同时对CacheLine补齐,避免了由 RingBuffer 带来的硬件级「伪共享」问题. 最终单机QPS可达 600 万。

有胖友读过 UidGenerator 的源码实现,还是非常不错的,值得撸一撸

3. 高性能 RPC 框架 BRPC-Java

https://github.com/baidu/brpc-java

brpc-java 是 baidu rpc 的 java 版本实现,支持 baidu rpc、nshead、sofa、hulu、http、stargate、dubbo 等协议。

目前 BRPC 的 C++ 版本已经进入 Apache 进行孵化,详细可见:https://github.com/apache/incubator-brpc

不过问了一圈,貌似木有胖友在使用~

4. 微服务框架 Spring Cloud Formula

https://github.com/baidu/spring-cloud-formula

基于 Spring Boot 兼容 Spring Cloud 生态开发的微服务框架,是百度云 CNAP(云原生微服务应用平台 Cloud-Native Application Platform)的面向客户提供的 Java 微服务框架设施。

里面提供了各种增强的 Starter,胖友可以选择看看。

例如说,RateLimiter Spring Boot Starter 基于 resilience4j 或 令牌桶算法,提供了服务限流的功能。

Route Spring Boot Starter 兼容 OpenFeign,Ribbon,RestTemplate 组件,支持按请求的 IP,tag,路由到一个或者多个 tag (按比例分配)的集群。

5. 工具库 JProtobuf

https://github.com/jhunters/jprotobuf

jprotobuf 是针对 Java 程序开发一套简易类库,目的是简化java语言对 protobuf 类库的使用。

使用 jprotobuf 可以无需再去了解 .proto 文件操作与语法,直接使用 Java 注解定义字段类型即可。

6. 基于 Protobuf 的 RPC 框架 Jprotobuf-rpc-socket

https://github.com/baidu/Jprotobuf-rpc-socket

Protobuf RPC 是一种基于 TCP 协议的二进制高性能RPC通信协议实现。

它以 Protobuf 作为基本的数据交换格式,支持完全基于POJO的发布方式,极大的简化了开发复杂性。

= = 发现 RPC 框架是真的多~

7. 百度 BI 平台 BiPlatform

https://github.com/baidu/BIPlatform

百度开源,业内领先的Holap敏捷BI分析平台,提供高性能、准实时、可扩展的、一站式的BI建模、分析平台。

看了下最后时间是 3 年前,可能…

文章目录
  1. 1. 1. 分布式配置管理平台 Disconf
  2. 2. 2. 分布式 ID 生成器 UidGenerator
  3. 3. 3. 高性能 RPC 框架 BRPC-Java
  4. 4. 4. 微服务框架 Spring Cloud Formula
  5. 5. 5. 工具库 JProtobuf
  6. 6. 6. 基于 Protobuf 的 RPC 框架 Jprotobuf-rpc-socket
  7. 7. 7. 百度 BI 平台 BiPlatform