Today I Learned. 今天分享内容:使用Spring Security实现OAuth2授权和认证。
最近在开发 Spring Cloud 微服务时,需要对 OAuth2 的异常处理进行定制,从网上搜到一个 github 仓库:oauth2。这篇仓库的代码实现了 OAuth2 的四种授权模式、I18N 国际化、异常处理、JWT Token,我 fork 了一份代码,做了一些改动,去掉了 webflux、eureka 相关代码。
More »Java, Spring Boot, Microservice, Cloud, Architecture and DevOps Tutorials
Today I Learned. 今天分享内容:JNDI InitialContext源码分析、ClassLoader加载机制。
javax.naming
More »这是一篇双语翻译的文章,原文出自 grok_system_design_interview.pdf 的一篇文章《Designing Twitter》设计 Twitter。
Let’s design a Twitter-like social networking service. Users of the service will be able to post tweets, follow other people, and favorite tweets. Difficulty Level: Medium
More »Today I Learned. 今天分享内容:购买新的 VPS 服务器、最近在做什么。
今天看到搬瓦工上的 VPS 还有一个月到期,该 VPS 配置是 40 GB SSD、2 GB RAM、2 TB Bandwidth、3x Intel Xeon CPU、1 Gigabit Network,一年费用是 99 美元。
More »最近在一些开源项目中看到了 MicroProfile ,于是在网上查阅了相关资料加深对 MicroProfile 的理解,并做了笔记形成此文。
MicroProfile是一个开放的企业级Java微服务框架,旨在简化和标准化基于微服务架构的应用程序开发。它是由Eclipse Foundation主导的一个开源项目,致力于提供轻量级、可移植和可互操作的Java微服务规范和实现。
More »Today I Learned. 今天分享内容:发布到 Maven 中央仓库的第一个项目。
最近在 Github 上创建了一个 Pom 类型的 Maven 项目 chensoul-parent,该项目主页 https://chensoul.github.io/chensoul-parent/ ,这是我的第一个发布对 Maven 中央仓库的项目。
More »Today I Learned. 今天我学了:RMI、Java漏洞安全、Semgrep漏洞检测。
RMI(Remote Method Invocation)是Java语言提供的一种远程调用机制,用于在分布式系统中实现对象之间的远程通信。
More »很多业务有生成唯一 ID 并作为数据库主键的需求。数据库会在这个字段上建立聚集索引(参考 MySQL InnoDB),即该字段会影响各条数据再物理存储上的顺序。
ID还要尽可能短,节省内存,让数据库索引效率更高。基本上64位整数能够满足绝大多数的场景,但是如果能做到比64位更短那就更好了。需要根据具体业务进行分析,预估出ID的最大值,这个最大值通常比64位整数的上限小很多,于是我们可以用更少的bit表示这个ID。
查询的时候,往往有分页或者排序的需求,所以需要给每条数据添加一个时间字段,并在其上建立普通索引(Secondary Index)。但是普通索引的访问效率比聚集索引慢,如果能够让ID按照时间粗略有序,则可以省去这个时间字段。为什么不是按照时间精确有序呢?因为按照时间精确有序是做不到的,除非用一个单机算法,在分布式场景下做到精确有序性能一般很差。
More »这是一篇双语翻译的文章,原文出自 grok_system_design_interview.pdf 的一篇文章《Designing Dropbox》设计 Dropbox。
Let’s design a file hosting service like Dropbox or Google Drive. Cloud file storage enables users to store their data on remote servers. Usually, these servers are maintained by cloud storage providers and made available to users over a network (typically through the Internet). Users pay for their cloud data storage on a monthly basis. Similar Services: OneDrive, Google Drive Difficulty Level: Medium
More »这是一篇双语翻译的文章,原文出自 grok_system_design_interview.pdf 的一篇文章《Designing Facebook Messenger》设计 Facebook Messenger。
Let’s design an instant messaging service like Facebook Messenger where users can send text messages to each other through web and mobile interfaces. 让我们设计一个像 Facebook Messenger 这样的即时消息服务,用户可以通过网络和移动界面互相发送短信。
More »