云计算架构

计算架构和云计算架构的二维视角

云平台操作系统

阅读更多
Java String 深入理解

StringStringBufferStringBuilder 的区别

可变性

  1. String 是不可变的(详细原因后面分析)
  2. StringBuilderStringBuffer 都继承自 AbstractStringBuilder 类,在该类中也是使用 char 数组来保存字符串(JDK9 之后改为了使用 byte 数组,后面会介绍),对于这个数组,在 AbstractStringBuilder 中没有使用 privatefinal 的关键字修饰(在 String 类当中有 privatefinal 修复,不过这其实并不是导致 String 不可变的原因),同时 AbstractStringBuilder 提供了很多修改字符串的方法,比如 append()insert()delete()replace() 等。
阅读更多
Java equals() and hashcode()

equals() 的性质

  1. Refleive(自反性):对于任意一个对象 a,a.euals(a) 总是返回 true
  2. Symmetric(对称性):对于任意两个对象 a,b,如果 a.equals(b) 返回 true,那么 b.equals(a) 一定也会返回 true
  3. Transitive(传递性):对于任意三个对象 a,b,c:如果 a.equals(b)b.equals(c) 都返回 true,那么 a.equals(c) 一定也会返回 true
  4. Consistent(持续性):对于任意两个对象 a,b,多次调用 a.equals(b) 返回的都是 true 或者返回的都是 false(即多次调用都只会返回相同的结果,前提是没有修改过 a 或 b)
阅读更多
自动化测试 - 变异测试

背景

两个测试人员关心的问题

  1. 如何编写能够暴露缺陷的测试用例 \rightarrow 如何引导测试
  2. 如何评估测试套件的质量(提升测试可信度)\rightarrow 如何评估测试
阅读更多
云计算-Overview

云计算定义

  • 综合的概念 – 并不存在一个权威的定义 – 盲人摸象,各有侧重
  • 分析师和分析机构对云计算的理解
    • 非常抽象,不涉及任何实现,普通用户的视角
    • 一个集中的环境,统一提供各种 IT 服务,用户按需付费 – 通过资源共享节约成本
阅读更多
需求与商业模式创新-Introduction

问题域与解系统

软件系统通过影响问题域,能够帮助人们解决问题,称为解系统。

软件解决问题的基础:模拟与共享

阅读更多
HTML 笔记

概述

HTML, Hyper Text Markup Language 超文本标记语言

超文本:包括文字、图片、音频、视频、动画等。HTML5 提供了一些新的元素和一些有趣的新特性,同时也建立了一些新的规则。这些元素、特性和规则的建立,提供了许多新的网页功能,如使用网页实现动态渲染图形、图标、图像和动画,以及不需要安装任何插件直接使用网页播放视频等

阅读更多
Nacos config server and OpenFeign

Nacos 配置管理

统一配置管理

为什么需要配置管理

  1. 配置更新会导致服务重启
  2. 多个服务的相同配置更新需要修改多个地方,可修改性不足。
阅读更多
Ribbon and Nacos

Ribbon 负载均衡

负载均衡原理

Ribbon 源码。

  1. LoadBalancerInterceptor 负载均衡拦截器拦截 HTTP 请求
  2. RibbonLoadBalancerClient 获取url中的服务id(hostname,即前面所说的user-service),交给 DynamicServerListLoadBalancer 来获取该服务id对应的服务列表
  3. DynamicServerListLoadBalancer 到 Eureka 获取对应的服务列表,通过 IRule 接口对应的规则来获得负载均衡选择到的服务
  4. 返回给 RibbonLoadBalancerClient 进行请求,返回结果
阅读更多
服务注册与服务发现

服务拆分

服务拆分的注意事项

根据功能模块进行服务拆分,随着扩展可能会继续拆分

阅读更多