在 Windows 系统中,存在多驱动器盘符概念,例如固态硬盘可以整个分为 C 盘,当系统盘使用;机械硬盘可以整个分为 D 盘,当数据盘使用。但是在 Linux 系统中,没有盘符这个概念,只有一个根目录,所有的文件都存在根目录下,根目录用 / 标识。那我要把机械硬盘放在 Linux 系统中使用,就相当于我要把这个硬盘当作一个目录,目录名字可以叫做 data ,把其放在根目录下面,然后把机械硬盘映射到 data 目录。这个就叫做挂载硬盘。fstab 文件说明Linux 系统中,/etc/fstab 文件包含了电脑上的存储设备信息及其对应的文件信息。每次 Linux 系统启动时,将读取这个文件来挂载对应的文件系统。我们可以通过修改这个文件信息,在每次系统启动时,自动将机械硬盘挂载到 data 目录。/etc/fstab 新增挂载信息,需要按照特定的格式写入: <file system> <mount point> <type> <options>
原文:https://www.liaocp.cn/archives/67.html常见的 Java 源代码,首先通过 javac 编译成字节码(bytecode),然后字节码通过 JVM 解释为机器码执行。此时 JVM 可以理解为解释执行模式。这也是常见的说法:Java 是解释执行的语言。但是在常见的 JVM 中,例如 Oracle JDK 的 Hotspot JVM ,里面提供了 JIT(Just-In-Time)编译器,也就是通常所说的动态编译器,JIT 能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行,而不是解释执行。解释执行使用 -Xint 参数,可以指定 JVM 只通过解释执行,不对代码进行编译。这种模式会降低运行速度,因为它抛弃了 JIT 的性能优势。java -Xint -version java version "1.8.0_71" Java(TM) SE Runtime Environment (build 1.8.0_71-b15) Java HotSpot(TM) 64-Bit Server VM (build 25.7
Feign是声明式的 Web Service客户端,它让微服务之间的调用变得更简单了,类似 Controller 调用 Service。Spring Cloud 集成了 Ribbon 和 Eureka ,可在使用 Feign 时提供负载均衡的 HTTP 客户端。使用方法添加依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> 编写接口@FeignClient("userservice") public interface UserClient { @GetMapping("/user/{id}") User findById(@PathVariable("id") Long id); } 调用接口@Autowired private Us
新增配置 DataID:需要唯一不重复,建议使用 微服务名称 + 环境名 + 后缀名(yaml等) 启动流程 项目启动 读取 Nacos 配置文件,通过 bootstrap.yml 文件 读取本地配置文件 application.yml 创建 Spring 容器 加载 bean …… 读取配置 引入客户端依赖 <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> 在项目的 resource 目录新增 bootstrap.yml 文件,此文件是引导文件,优先级高于 application.yml spring: application: name: userservic
角色注册中心一般有三种角色: 服务提供者:启动时,向 Nacos 注册服务信息。 服务消费者:定时(间隔30s)拉取服务(pull),将拉取的信息缓存在服务列表中。同时 Nacos 发现服务信息变更,会主动推送变更消息 (push)。 注册中心:Nacos 。 实例Nacos 会将服务提供者划分为 临时实例 和 非临时实例 ,Nacos 对这两种实例的健康监测是不一样的。默认情况下:所有的实例都是临时实例。推荐临时实例,非临时实例对服务器压力大。 临时实例:采用心跳监测。如果服务不存在,从列表中删除。 非临时实例:Nacos 发起请求检测。如果服务不存在,并不会从列表中删除,而是标记不健康,等待恢复健康。 配置非临时实例,通过更改项目配置spring: cloud: nacos: server-addr: localhost:8848 discovery: cluster-name: GZ namespace: 62c75d23-5839
Eureka 是 Netflix 开发的服务发现框架,本身是一个基于 REST 的服务,主要用于定位运行在 AWS 域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。 Spring Cloud 将它集成在其子项目 spring-cloud-netflix 中,以实现 Spring Cloud 的服务发现功能。Eureka 角色在 Eureka 架构中,微服务角色有两类:Eureka Server:服务端,注册中心 记录服务信息 心跳监控 Eureka Client:客户端 Provider:服务提供者 注册自己的信息到 Eureka Server 每隔 30 秒向 Eureka Server 发送心跳 Consumer:服务消费者 根据服务名称从 Eureka Server 拉取服务列表 基于服务列表做负责均衡,选中一个微服务后发起远程调用 搭建 Eureka Server 创建项目,引入下面依赖 <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spr
转载:https://mp.weixin.qq.com/s/BhfjVuMwXkFFQhgvw2KypA日常开发中,为了更好管理线程资源,减少创建线程和销毁线程的资源损耗,我们会使用线程池来执行一些异步任务。但是线程池使用不当,就可能会引发生产事故。线程池默认使用无界队列,任务过多导致OOMJDK 为开发者提供了线程池的实现类,我们基于 Executors 组件,就可以快速创建一个线程池。日常工作中,一些小伙伴为了开发效率,反手就用Executors 新建个线程池。写出类似以下的代码:public class NewFixedTest { public static void main(String[] args) { ExecutorService executor = Executors.newFixedThreadPool(10); for (int i = 0; i < Integer.MAX_VALUE; i++) { executor.execute(() ->
服务拆分注意事项 不同微服务,不要重复开发相同业务。 微服务数据独立,不要访问其它微服务的数据库。 微服务可以将自己的业务暴露为接口,供其它微服务调用。 远程调用提供者与消费者 服务提供者:一次业务中,被其它微服务调用的服务(提供接口给其它微服务)。 服务消费者:一次业务中,调用其它微服务的服务(调用其它微服务提供的接口)。
微服务是一种经过良好架构设计的分布式架构方案,微服务具有以下特征: 单一职责:微服务拆分粒度更小,每个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发。 面向服务:微服务对外暴露业务接口。 自治:团队独立、技术独立、数据独立、部署独立。 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题。 架构优缺点单体架构简单方便、高度耦合、扩展性差,适合小型项目。将业务的所有功能集中在一个项目中开发,打成一个包部署。优点 架构简单 部署成本低 缺陷 耦合度高 分布式架构松耦合,扩展性好。但架构复杂,难度大。适合大型互联网项目。微服务是一种良好的分布式架构方案。优点 降低耦合度 有利于服务升级扩展 缺点 复杂度增加 部署难度增加 技术栈作用 \ 框架DubboSpring CloudSpring Cloud Alibaba注册中心ZooKeeper、RedisEureka、ConsulNacos、Eureka服务远程调用Dobbo 协议Feign (http 协议)Dubbo、Feign配置中心无Spring Cloud ConfigSpring C
此间少年
事以密成,语以泄败