06 2022 档案
摘要:进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
阅读全文
摘要:让软件分发部署过程从传统的发布安装包、靠人工部署转变为直接发布已经部署好的、包含整套运行环境的虚拟化镜像。 ISA兼容:目标机器指令集兼容性,ARM,X86架构 ABI兼容:目标系统或者依赖库的二进制兼容性,Windows,Linux 环境兼容:目标环境的兼容性,譬如没有正确设置的配置文件、环境变量
阅读全文
摘要:事件日志 记录系统运行期间发生过的离散事件。 复杂的分布式系统往往还要有专门的全局查询和可视化功能。 从打印日志到分析查询之间,还隔着收集、缓冲、聚合、加工、索引、存储等若干个步骤。 输出 “错误的做法” 避免打印敏感信息,不过,日志中应当包含必要的非敏感信息,譬如当前用户的 ID 避免引用慢操作,
阅读全文
摘要:服务容错 一个大的服务集群中,程序可能崩溃、节点可能宕机、网络可能中断。 容错策略和容错设计模式,最终目的是为了避免服务集群中某个节点的故障导致整个系统发生雪崩效应。 容错策略 “面对故障,我们该做些什么” 故障转移 服务具备幂等性!! 如果调用的服务器出现故障,系统不会立即向调用者返回失败结果,而
阅读全文
摘要:服务发现 使用全限定名(Fully Qualified Domain Name,FQDN)、端口号与服务标识所构成的三元组来确定一个远程服务的精确坐标。 全限定名:网络中某台主机的精确位置 端口:主机上某一个提供了 TCP/UDP 网络服务的程序 服务标识:该程序所提供的某个具体的方法入口(REST
阅读全文
摘要:认证 系统正确分辨出操作用户的真实身份 授权 系统控制一个用户该看到哪些数据、能操作哪些功能 确保授权的过程可靠:OAuth2 确保授权的结果可控:RBAC 基于角色的访问控制 Role-Based Access Control 谁(User)拥有什么权限(Authority)去操作(Operati
阅读全文
摘要:请求从浏览器出发,在域名服务器的指引下找到系统的入口,经过网关、负载均衡器、缓存、服务集群等一系列设施,最后触及到末端存储于数据库服务器中的信息,然后逐级返回到用户的浏览器之中。 本地缓存、内容分发网络、反向代理:客户端或网络的边缘,能够迅速响应用户的请求,避免给后方的 I/O 与 CPU 带来压力
阅读全文
摘要:保证系统中所有的数据都是符合期望的,且相互关联的数据之间不会产生矛盾,即数据状态的一致性(Consistency)。 A、I、D 是手段,C 是目的 本地事务 实现原子性和持久性 Commit Logging 以日志的形式——即仅进行顺序追加的文件写入的形式(这是最高效的写入方式)先记录到磁盘中。只
阅读全文
摘要:远程服务调用 Remote Procedure Call RPC 位于互不重合的内存地址空间中的两个程序,在语言层面上,以同步的方式使用带宽有限的信道来传输程序控制信息 最初目的:为了让计算机能够跟调用本地方法一样去调用远程方法 解决的三个基本问题: 表示数据:序列化与反序列化(将交互双方所涉及的数
阅读全文
摘要:Nacos是一个服务发现组件,同时也是一个配置服务器,它解决了两个问题: 1.服务A如何发现服务B 2.管理微服务的配置 将应用注册到Nacos: 1.加依赖 <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-c
阅读全文
摘要:Feign性能优化 1. 使用HttpClient 连接池,提升15% 2. 使用合适的日志级别
阅读全文
摘要:使用Java代码实现Ribbon细粒度配置的坑(父子上下文): Ribbon配置类不能与SpringBootApplication放在同个包下,防止被其扫描到,从而被当成Ribbon全局配置,而无法实现细粒度配置。 实现Ribbon细粒度配置:正常情况下,使用属性配置方式,而非Java代码方式 Ri
阅读全文
摘要:解法:将虚拟机上的DNS地址设置为宿主机所用网络的DNS服务器地址 win+r -> cmd -> ipconfig,获取宿主机 DNS服务器地址。 在虚拟机上vi /etc/sysconfig/network-script/ifcfg-ens33,将DNS设置为宿主机DNS服务器地址。 DNS1=
阅读全文