星辰大海

My Conquest Is the Sea of Stars.


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 站点地图

  • 搜索

善用google guava提高编程效率

发表于 2020-03-18 | 分类于 JAVA
本文字数: 334k | 阅读时长 ≈ 5:03

工具类 就是封装平常用的方法,不需要你重复造轮子,节省开发人员时间,提高工作效率。谷歌作为大公司,当然会从日常的工作中提取中很多高效率的方法出来。所以就诞生了guava。。

  • 高效设计良好的API,被Google的开发者设计,实现和使用
  • 遵循高效的java语法实践
  • 使代码更刻度,简洁,简单
  • 节约时间,资源,提高生产力

Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:

  1. 集合 [collections]
  2. 缓存 [caching]
  3. 原生类型支持 [primitives support]
  4. 并发库 [concurrency libraries]
  5. 通用注解 [common annotations]
  6. 字符串处理 [string processing]
  7. I/O 等等。
阅读全文 »

B+树和数据库索引原理简述

发表于 2020-02-27 | 更新于 2020-02-28 | 分类于 数据库
本文字数: 12k | 阅读时长 ≈ 11 分钟

所以下面我们就从二叉树到平衡二叉树,再到 B- 树,最后到 B+ 树来一步一步了解数据库索引底层的原理!

二叉树(Binary Search Trees)

二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(Left Subtree)和“右子树”(Right Subtree)。二叉树常被用于实现二叉查找树和二叉堆。

二叉树有如下特性:

  • 每个结点都包含一个元素以及 n 个子树,这里 0≤n≤2。
  • 左子树和右子树是有顺序的,次序不能任意颠倒。左子树的值要小于父结点,右子树的值要大于父结点。
阅读全文 »

微服务-API网关

发表于 2020-02-27 | 更新于 2020-02-28 | 分类于 微服务
本文字数: 20k | 阅读时长 ≈ 18 分钟

API 网关

什么是 API 网关

既然需要 API 网关为我所用,首先就让我们来了解一下什么是 API 网关。

什么是 API 网关

网关一词最早出现在网络设备,比如两个相互独立的局域网之间通过路由器进行通信,中间的路由被称之为网关。

任何一个应用系统如果需要被其他系统调用,就需要暴露 API,这些 API 代表着一个一个的功能点。

如果两个系统中间通信,在系统之间加上一个中介者协助 API 的调用,这个中介者就是 API 网关。

阅读全文 »

数据库软件架构设计

发表于 2020-02-26 | 分类于 数据库
本文字数: 37k | 阅读时长 ≈ 34 分钟

基本概念

概念一:单库

img

概念二:分片

img

分片解决“数据量太大”这一问题,也就是通常说的“水平切分”。

一旦引入分片,势必面临“数据路由”的新问题,数据到底要访问哪个库。路由规则通常有3种方法:

阅读全文 »

【转载】多次尝试学习,终于搞懂了微服务架构

发表于 2020-02-25 | 分类于 架构设计
本文字数: 12k | 阅读时长 ≈ 11 分钟

什么是微服务?

微服务 Microservices 之父,马丁.福勒,对微服务大概的概述如下:

就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition of this architectural style ) 。

但通常在其而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。

服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API ) 。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。

另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务。可以使用不同的语言来编写服务,也可以使用不同的数据存储。

阅读全文 »

【转载】我花了10个小时,写出了这篇K8S架构解析

发表于 2020-02-25 | 分类于 架构设计
本文字数: 21k | 阅读时长 ≈ 19 分钟

互联网技术飞速发展的今天,为了承载请求的高并发和业务的多样性,微服务的架构成了各个公司的标配。

每个微服务通过 Docker 进行发布,随着业务的发展,系统中遍布着各种各样的容器。于是,容器的资源调度,部署运行,扩容缩容就是我们要面临的问题。

基于 Kubernetes 作为容器集群的管理平台被广泛应用,今天我们一起来看看 Kubernetes 的架构中有那些常用的组件以及运行原理。

阅读全文 »

【转载】神一样的CAP理论被应用在何方

发表于 2020-02-24 | 更新于 2020-02-25 | 分类于 架构设计
本文字数: 16k | 阅读时长 ≈ 15 分钟

对于开发或设计分布式系统的架构师工程师来说,CAP是必须要掌握的理论。

(but:这个文章的重点并不是讨论CAP理论和细节,重点是说说CAP在微服务中的开发怎么起到一个指引作用,会通过几个微服务开发的例子说说明,尽量的去贴近开发)

CAP定理又被成为布鲁尔定理,是加州大学计算机科学家埃里克·布鲁尔提出来的猜想,后来被证明成为分布式计算领域公认的定理。不过布鲁尔在出来CAP的时候并没有对CAP三者(Consistency,Availability,Partition tolerance)进行详细的定义,所以在网上也出现了不少对CAP不同解读的声音。

阅读全文 »

【转载】30张图带你彻底理解红黑树

发表于 2020-02-24 | 更新于 2020-02-25 | 分类于 算法
本文字数: 17k | 阅读时长 ≈ 16 分钟

在10亿数据中只需要进行10几次比较就能查找到目标时,不禁感叹编程之魅力!人类之伟大呀! > - 学红黑树有感。

终于,在学习了几天的红黑树相关的知识后,我想把我所学所想和所感分享给大家。红黑树是一种比较难的数据结构,要完全搞懂非常耗时耗力,红黑树怎么自平衡?什么时候需要左旋或右旋?插入和删除破坏了树的平衡后怎么处理?等等一连串的问题在学习前困扰着我。如果你在学习过程中也会存在我的疑问,那么本文对你会有帮助,本文帮助你全面、彻底地理解红黑树!

阅读全文 »

[译]StackOverflow: 你没见过的七个最好的Java答案

发表于 2020-02-24 | 更新于 2020-02-25 | 分类于 Java
本文字数: 9.1k | 阅读时长 ≈ 8 分钟

StackOverflow(后边简称so)发展到目前,已经成为了全球开发者的金矿。它能够帮助我们找到在各个领域遇到的问题的最有用的解决方案,同时我们也会从中学习到很多新的东西。这篇文章是在我们审阅了so上最流行的Java问题以及答案后从中挑出来的。即使你是一个有丰富经验的开发者,也能从中学到不少东西。

阅读全文 »

Java性能优化和JVM GC(垃圾回收机制)详解

发表于 2020-02-24 | 更新于 2020-02-25 | 分类于 Java
本文字数: 18k | 阅读时长 ≈ 16 分钟

Java的性能优化,JVM GC(垃圾回收机制)在学习Java GC 之前,我们需要记住一个单词:stop-the-world 。它会在任何一种GC算法中发生。stop-the-world 意味着JVM因为需要执行GC而停止了应用程序的执行。当stop-the-world 发生时,除GC所需的线程外,所有的线程都进入等待状态,直到GC任务完成。GC优化很多时候就是减少stop-the-world 的发生。

阅读全文 »
123…6
Vincent

Vincent

The King is dead, long live the King!

55 日志
23 分类
72 标签
RSS
GitHub E-Mail
© 2020 Vincent | 629k | 9:31
由 Hexo 强力驱动 v3.9.0
|
主题 — NexT.Muse v6.3.0