12 2018 档案
摘要:1、TCC分布式事务原理 使用springcloud微服务,也有可能各个服务之间,没有形成一个整体的事务。 分步实现: 1)、try阶段:多个服务之间,在操作的时候对数据库的操作都是一个"预"操作阶段,锁定某个资源,冻结某部分资源等(把改变的数据先存临时表)。 2)、confirm阶段:如果服务全部
阅读全文
摘要:1、微服务的发展 单体应用(进程内部调用) RPC接口(远程方法调用)。将臃肿的单体应用拆分为细粒化的服务(项目)。随着敏捷开发、持续交付、DevOps 理论的发展和实践,以及基于Docker容器化技术的成熟,微服务的应用越来越广。 举个例子,之前我们的项目是打包为war包部署,所有的代码在一个项目
阅读全文
摘要:1、解决redis远程连接不上的问题 redis安装成功后,在本地连接redis的时候是连接到127.0.0.1(针对于服务器自身最基本的Ip)。原因是在redis的配置文件redis.conf中,配置了该127.0.0.1的IP地址,并且是处于保护模式。 1)、将bind 127.0.0.1注解掉
阅读全文
摘要:1、部署springboot项目 第一步: 新建一个Dockerfile文件,和jar包放一个文件夹下。Dockerfile内容: FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD eureka.jar app.jar RUN sh -c 't
阅读全文
摘要:1、Eureka承载大规模系统每天千万级访问的原理 1)、首先每个服务的eureka client组件默认30秒发送一个请求到eureka server拉取最近有变化的服务信息; 2)、eureka还有一个心跳机制,各个eureka client每隔30秒会发送一个心跳到eureka server告
阅读全文
摘要:1、消息的优缺点、选择哪种 常见的消息插件有Kafka、ActiveMQ、RabbitMQ、RocketMQ... 优点: 解耦,使得子系统之间的耦合关系降低,只需要关注消息的发送与接收,不用担心子系统1挂了以后对子系统2产生影响; 异步,系统直接的数据传输不需要直接请求,直接发送消息,其他系统接收
阅读全文
摘要:1、线程的五种状态 1)、新建 当new创建一个线程,例如new thread(r),线程还没开始运行,处于新建状态; 2)、就绪 新建的新线程并不会自动运行,要执行需要调用start()方法创建线程运行的系统资源,返回后,此时线程就处于就绪状态; 但是处于就绪状态的线程也并不是就能立即执行run(
阅读全文
摘要:1、分布式锁 需要满足的要求 1)、排他性:同一时间只会有一个客户端能获取到锁,其他客户端同时不能获取; 2)、避免死锁:锁在一段时间后一定会被释放; 3)、高可用:获取或释放锁的机制必须高可用且性能佳。 实现方式: a、基于数据库实现 基于数据库的乐观锁:在数据库表中引入一个版本号字段。在修改数据
阅读全文
摘要:1、如何对每秒上千场景下的分布式锁高并发优化 如果对一个商品不加锁,就可能出现库存超卖的情况(库存15,2个用户各买10个,没有锁的情况可能出现-5的最终库存)。所以我们可以用: 悲观锁、乐观锁、分布式锁、队列串行化、异步队列分散、Redis原子操作等等... 现在限定了分布式锁,有个问题:如果一套
阅读全文
摘要:踩的坑: 1)、springcloud框架中,依赖一直报错,很可能是没有添加springcloud的依赖,或者是依赖的版本号过低。并且springboot也有一个父依赖。 2、springcloud的hystrix,针对频繁的请求或者断了的连接,可以做熔断机制。 并且在熔断类里,做一个错误信息的插入
阅读全文
摘要:1、web登录的安全性 现阶段安全的方式:数字签名 发送方:报文 + 签名(私人秘钥加密 哈希函数对报文生成报文摘要) 接收方:相同哈希函数从报文中计算得到报文摘要,再用公用秘钥解密签名得到报文摘要 结合了:非对称秘钥加解密 + 数字摘要 例子:username+MD5(password) + to
阅读全文

浙公网安备 33010602011771号