03 2021 档案
摘要:profile.d在profile中加载 在 /etc/profile 这个文件中有这么一段 shell, 会在每次启动时自动加载 profile.d 下的每个配置 if [ -d /etc/profile.d ]; then for i in /etc/profile.d/*.sh; do if
阅读全文
摘要:给两个表,tSub课程表,tSC学生成绩表,然后去将二者字段联合查询出来,并按照总成绩进行排序 如果使用分区查询,rank这种,无法聚合查询总成绩 左联子查询,在子查询中使用 order by 对总成绩进行排序 select A.sid, A.sname, A.subid, D.subname, A
阅读全文
摘要:只需要在每个语句后面加上分号即可
阅读全文
摘要:Oracle表空间 基本概念 ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构 一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件 表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回
阅读全文
摘要:官方地址:https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/constraint.html 六种约束 使用约束来定义完整性约束限制数据库中的值的规则 Oracle数据库允许您创建六种类型的约束,并允许以两种方式声明
阅读全文
摘要:安装拓展的时候提升 Composer 的安装速度 其原理是使用多进程下载的方式来解决 composer global require hirak/prestissimo 如果安装的时候报错了,是一个404错误。那是因为 Composer 源没有,更换一个 Composer 源即可,该源是 Compo
阅读全文
摘要:配置中心 概念 为什么需要配置中心 单体应用,配置写在配置文件中,没有什么大问题 如果要切换环境,可以切换不同的profile(2种方式),但在微服务中 微服务比较多,成百上千,配置很多,需要集中管理 管理不同环境的配置 需要动态调整配置参数,更改配置不停服 配置中心介绍 分布式配置中心包括3个部分
阅读全文
摘要:链路追踪 分布式计算八大误区 网络可靠 延迟为零 带宽无限 网络绝对安全 网络拓扑不会改变 必须有一名管理员 传输成本为零 网络同质化(操作系统,协议) 链路追踪的必要性 如果能跟踪每个请求,中间请求经过哪些微服务,请求耗时,网络延迟,业务逻辑耗时 我们就能更好地分析系统瓶颈、解决系统问题,因此链路
阅读全文
摘要:网关 完成一个复杂的业务,可能需要多个微服务合作来完成,比如下单,需要用户服务,支付服务,地图服务,订单服务 一般是我们对外服务的窗口,进行服务内外隔离 一般微服务都在内网,不做安全验证 微服务没有网关,会有下面的问题 客户端请求多个微服务,增加了客户端复杂性,每个微服务都要做用户认证,限流等,避免
阅读全文
摘要:普通for循环 @Test public void testInsertBatch2() throws Exception { long start = System.currentTimeMillis(); User user; SqlSession sqlSession = sqlSession
阅读全文
摘要:分布式事务 运行在分布式系统中的事务,是由多个不同的机器上的事务组合而成的 只有分布式系统中所有事务执行了才能是成功,否则失败 事务的基本特征ACID 原子性(Atomicity) 一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做 一致性 指事务执行前和执行后,数据是完整的
阅读全文
摘要:官方地址:https://redis.io/topics/distlock 红锁 千万级流量以上的项目,基本上都会用redis 需要锁的条件 多任务环境下(进程,线程) 任务都对同一共享资源进行写操作 对资源的访问是互斥的 操作周期 竞争锁,获取锁后才能对资源进行操作 占有锁 其他竞争者,任务阻塞
阅读全文
摘要:在 macOS 上安装Git 在 Mac 上安装 Git 有多种方式。 最简单的方法是安装 Xcode Command Line Tools Mavericks (10.9) 或更高版本的系统中,在 Terminal 里尝试首次运行 git 命令即可 $ git --version 会弹框提示安装
阅读全文
摘要:悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁 传统的关系型数据库里边就用到了很多这种锁机制 行锁 表锁 读锁 写锁 都是在做操作之前先上锁,再比如Java里面的同步原语synchronized关键字的实现也是
阅读全文
摘要:Feign声明式REST调用 OpenFeign是Netflix 开发的声明式、模板化的HTTP请求客户端,可以更加便捷、优雅地调用http api。 OpenFeign会根据带有注解的函数信息构建出网络请求的模板,在发送网络请求之前,OpenFeign会将函数的参数值设置到这些请求模板中 feig
阅读全文
摘要:Ribbon概念 Ribbon是Netflix开发的客户端负载均衡器,为Ribbon配置服务提供者地址列表后,Ribbon就可以基于某种负载均衡策略算法,自动地帮助服务消费者去请求提供者 Ribbon默认为我们提供了很多负载均衡算法,例如轮询、随机等,我们也可以实现自定义负载均衡算法 Ribbon作
阅读全文
摘要:Eureka服务间调用 微服务中,很多服务系统都在独立的进程中运行,通过各个服务系统之间的协作来实现一个大项目的所有业务功能 服务系统间 使用多种跨进程的方式进行通信协作,而RESTful风格的网络请求是最为常见的交互方式之一 http 思考:如果让我们写服务调用如何写。 硬编码,不合适,ip域名写
阅读全文
摘要:Eureka监听事件 EurekaInstanceCanceledEvent 服务下线事件 EurekaInstanceRegisteredEvent 服务注册事件 EurekaInstanceRenewedEvent 服务续约事件 EurekaRegistryAvailableEvent 注册中心
阅读全文
摘要:健康检查效果 由于server和client通过心跳保持服务状态,而只有状态为UP的服务才能被访问 看eureka界面中的status 比如心跳一直正常,服务一直UP,但是此服务DB连不上了,无法正常提供服务 我们需要将微服务的健康状态也同步到server 只需要启动eureka的健康检查就行 这样
阅读全文
摘要:ip注册 eureka: instance: prefer-ip-address: true 表示将自己的ip注册到EurekaServer上。不配置或false,表示将操作系统的hostname注册到server 服务器有多个网卡 eh0,eh1,eh2,只有eh0可以让外部其他服务访问进来,而E
阅读全文
摘要:红色警告 EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE N
阅读全文
摘要:获取元数据信息 从Eureka Server获取 元数据举例 <application> <name>SERVICE-SMS</name> <instance> <instanceId>30.136.133.11:service-sms:8002</instanceId> <hostName>30.
阅读全文
摘要:Eureka Server功能 接受服务注册 接受服务心跳 服务剔除 服务下线 集群同步 获取注册表中服务实例信息 需要注意的是,Eureka Server同时也是一个Eureka Client,在不禁止Eureka Server的客户端行为时,它会向它配置文件中的其他Eureka Server进行
阅读全文
摘要:EurekaClient.class // // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) // package com.netflix.discov
阅读全文
摘要:Eureka架构图 角色分析 服务提供者 是一个eureka client,向Eureka Server注册和更新自己的信息,同时能从Eureka Server注册表中获取到其他服务的信息 服务注册中心 提供服务注册和发现的功能 每个Eureka Cient向Eureka Server注册自己的信息
阅读全文
摘要:在spring-boot项目中pom文件里面添加的依赖中的bean,是如何注册到spring-boot项目的spring容器中的呢? spring.factories文件 帮助spring-boot项目包以外的bean(即在pom文件中添加依赖中的bean)注册到spring-boot项目的spri
阅读全文
摘要:HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616 HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的
阅读全文
摘要:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. 无法配置DataSource:未指定'url'属性,也无法配置嵌入数据
阅读全文
摘要:Paxos 参考文章:https://www.douban.com/note/208430424/ 参考文章:https://zh.wikipedia.org/zh-cn/Paxos%E7%AE%97%E6%B3%95 参考文章:https://www.cnblogs.com/BigBender/p
阅读全文
摘要:转自:https://www.jianshu.com/p/e233bb37d2e6 countDownLatch是在java1.5被引入,跟它一起被引入的工具类还有CyclicBarrier、Semaphore、concurrentHashMap和BlockingQueue CountDownLat
阅读全文
摘要:转自https://www.cnblogs.com/frankltf/p/10392151.html ZAB协议 ZAB协议是专门为zookeeper实现分布式协调功能而设计,zookeeper主要是根据ZAB协议是实现分布式系统数据一致性 zookeeper根据ZAB协议建立了主备模型完成zook
阅读全文
摘要:问题和假设 分布式系统中的节点通信存在两种模型 共享内存(Shared memory)和 消息传递(Messages passing) 基于消息传递通信模型的分布式系统,不可避免的会发生以下错误 进程可能会慢、被杀死或者重启 消息可能会延迟、丢失、重复 在基础 Paxos 场景中,先不考虑可能出现消
阅读全文
摘要:为什么用Zookeeper 官方地址:https://zookeeper.apache.org/doc/current/zookeeperOver.html redis不能保证实时一致性和强一致性(最终一致性) ZooKeeper实施对高性能,高可用性,严格排序的访问给予了高度重视 ZooKeepe
阅读全文
摘要:MySQL锁的基本介绍 锁是计算机协调多个进程或线程并发访问某一资源的机制(os的pv操作) 在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。 如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性
阅读全文
摘要:General datadir=/var/lib/mysql 数据文件存放的目录 socket=/var/lib/mysql/mysql.sock mysql.socket表示server和client在同一台服务器 使用localhost进行连接,就会使用socket进行连接 pid_file=/
阅读全文
摘要:将表分成多个文件存储 官方地址:https://dev.mysql.com/doc/refman/5.7/en/partitioning-overview.html 分区表应用场景 表非常大以至于无法全部都放在内存中 只在表的最后部分有热点数据,其他均是历史数据 分区表的数据更容易维护 批量删除大量
阅读全文
摘要:查询慢的原因 网络 CPU IO 上下文切换 系统调用 生成统计信息 锁等待时间 优化数据访问 减少访问数据量的方式进行优化 确认应用程序是否在检索大量超过需要的数据 确认mysql服务器层是否在分析大量超过需要的数据行 是否向数据库请求了不需要的数据 查询不需要的记录 多表关联时返回全部列 总是取
阅读全文
摘要:SELECT * FROM film JOIN film_actor ON (film.film_id = film_actor.film_id) SELECT * FROM film JOIN film_actor USING (film_id) SELECT * FROM film, film_
阅读全文
摘要:索引的优点 大大减少了服务器需要扫描的数据量 帮助服务器避免排序和临时表 将随机io变成顺序io 索引的用处 快速查找匹配WHERE子句的行 从consideration中消除行,如果可以在多个索引之间进行选择,mysql通常会使用找到最少行的索引 如果表具有多列索引,则优化器可以使用索引的任何最左
阅读全文
摘要:MySQL索引长度和区分度 索引长度和区分度是相互矛盾的 索引长度太短,那么区分度就很低,索引长度加长,区分度就高,但是索引也是要占内存的 需要找到一个平衡点 比如用户表有个字段username ,要给他加索引,问题是索引长度多少合适? 如果设置索引长度为1,占内存少,但是区分度低,区分度低索引的效
阅读全文
摘要:使用索引扫描来做排序 mysql有两种方式可以生成有序的结果:通过排序操作或者按索引顺序扫描 如果explain出来的type列的值为index,则说明mysql使用了索引扫描来做排序 扫描索引本身是很快的,因为只需要从一条索引记录移动到紧接着的下一条记录 但如果索引不能覆盖查询所需的全部列,那么
阅读全文
摘要:前缀索引 有时候需要索引很长的字符串,这会让索引变的大且慢 通常情况下可以使用某个列开始的部分字符串,这样大大的节约索引空间,从而提高索引效率,但这会降低索引的选择性 索引的选择性是指不重复的索引值和数据表记录总数的比值,范围从1/#T到1之间 索引的选择性越高则查询效率越高,因为选择性更高的索引可
阅读全文
摘要:范式设计 列不可分 不能传递其他依赖 依赖主键 反范式设计 约定大于规定 主键选择 自然主键 事务属性中自然唯一标识 代理主键 与业务无关,无意义的数字 推荐使用,不与业务耦合,维护成本低 减少需求源码量 字符集选择 utf8,只能存储两个字节的汉字 所以需要设置成utf8mb4 纯拉丁字符,选择l
阅读全文