
其它
文章平均质量分 57
忧伤的比目鱼
这个作者很懒,什么都没留下…
展开
-
负载均衡算法总结
常见的负载均衡算法轮询法(Round Robin)加权轮询(Weight Round Robin)随机算法(Random)源地址HASH算法(当同一IP地址客户端后端服务器列表不变时,每次都会路由到相同的服务器hashCode % serverListSize)加权随机法(Weight Random)最小连接数法(Least Connections)随机(Random)算...原创 2018-05-09 23:10:18 · 359 阅读 · 0 评论 -
springboot admin监控告警
概述Spring Boot Actuator提供了对单个Spring Boot的监控,信息包含:应用状态、内存、线程、堆栈等等,比较全面的监控了Spring Boot应用的整个生命周期;如果Spring Boot应用集群非常大,每个应用都需要调用不同的接口来查看监控信息,国外一个大神开源了一个平台Spring Boot Admin可以用来监控springboot应用集群; 如果结合注册中心可...原创 2018-06-07 18:41:01 · 11391 阅读 · 2 评论 -
【转载】Jar包冲突问题及解决方案
作者:sherlockyb 链接:https://www.jianshu.com/p/100439269148 关于JAR包冲突问题,几乎是码农经常会遇到的问题,博客看到这篇文章,总结的非常棒,以下是转载的原文概述Jar包冲突是老生常谈的问题,几乎每一个Java程序猿都不可避免地遇到过,并且也都能想到通常的原因一般是同一个Jar包由于maven传递依赖等原因被引进了多个不同的版...转载 2018-06-08 13:02:34 · 2916 阅读 · 0 评论 -
【转载】Maven中-DskipTests和-Dmaven.test.skip=true的区别
本文转载至《Maven中-DskipTests和-Dmaven.test.skip=true的区别》 在使用mvn package进行编译、打包时,Maven会执行src/test/java中的JUnit测试用例,有时为了跳过测试,会使用参数-DskipTests和-Dmaven.test.skip=true,这两个参数的主要区别是: -DskipTests,不执行测试用例,但编译测试用例类生...转载 2018-06-02 14:45:55 · 505 阅读 · 0 评论 -
一致性hash算法学习
概述在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求,起到负载均衡的作用。但是普通的余数hash(hash(比如用户id)%服务器机器数)算法伸缩性很差,当新增或者下线服务器机器时候,用户id与服务器的映射关系会大量失效。一致性hash则利用hash环对其进行了改进一致性哈希算法特性一致性哈希算法在199...原创 2018-06-09 23:56:36 · 254 阅读 · 0 评论 -
分享一款“暗黑系列”Idea主题插件Material Theme
偶然发现一款“暗黑系列”idea主题插件,感觉非常不错,分享一下~ github:https://github.com/equinusocio/material-theme安装plugins -> browse repositories -> search “material-theme” 安装完重启idea设置切换主题Editor -> Color Sc...原创 2018-06-29 18:19:18 · 79408 阅读 · 22 评论 -
记Jedis客户端并发问题
先来看问题,在对分布式锁进行压测时抛出异常:java.lang.ClassCastException: java.lang.Long cannot be cast to [B at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:239) at redis.clients.jedis.Jedis...原创 2018-08-18 23:32:28 · 1328 阅读 · 0 评论 -
【转】Jedis常见异常汇总
【转载】Jedis常见异常汇总,总结的相当详细!! 详见:https://yq.aliyun.com/articles/236384?spm=a2c4e.11153940.blogcont236383.20.d17a1c96Lm3AHM#cc8转载 2018-08-28 21:52:49 · 1781 阅读 · 0 评论 -
CAP理论&ZK&Eureka
如果我们期待实现一套严格满足ACID(Atomicity原子性、Consistency一致性、Isolation隔离性、Durability持久性)的分布式事务,很可能的情况就是系统的可用性和严格一致性出现冲突。在可用性和一致性之间永远无法存在一个两全其美的方案。CAP理论2000年7月,加州大学伯克利分校Eric Brewer教授提出了著名的CAP猜想。2年后,来自麻省理工学院的Se...原创 2018-09-01 17:57:43 · 989 阅读 · 0 评论 -
Socket三次握手四次挥手
Socket 起源于 Unix,而Unix基本哲学之一就是一切皆文件,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。Socket就是该模式的一个实现,网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符通信模型: s erver的生命周期大致如下:创建socket。绑定(bind)地址端口监听网络...原创 2018-09-03 15:05:00 · 5941 阅读 · 0 评论 -
缓存穿透与缓存雪崩
缓存穿透缓存穿透:缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透解决方案: 1. 最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被 这个bitmap拦截掉,从而避免了对底层存储系统的查询压力; 2. 如果一个查询返...原创 2018-06-14 16:29:50 · 400 阅读 · 0 评论 -
Redis淘汰策略
失效策略上,Redis支持多大6种的数据淘汰策略: 1. volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰; 2. volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰; 3. volatile-random:从已设置过期时间的数据集(server.db...原创 2018-06-14 16:26:52 · 1794 阅读 · 0 评论 -
静态代理与动态代理
静态代理定义:代理和被代理对象在代理之前是确定的.他们都实现相同的接口或者继承相同的抽象类两种实现机制继承 聚合模式: 静态代理的优点和缺点优点: 扩展原功能,不侵入原代码缺点:如果通过继承方式实现,因为JAVA类只能继承一个父类,所以需要有多个代理类;如果通过聚合实现,当要实现多个接口代理时,代码会比较臃肿,需要为每个代理接口编写实现代码动态代理...原创 2018-04-26 22:50:30 · 164 阅读 · 0 评论 -
XML与JSON比较
XML定义:扩展标记语言 (Extensible Markup Language, XML)用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。XML是标准通用标记语言 (SGML) ...原创 2018-05-12 11:50:23 · 444 阅读 · 1 评论 -
负载均衡学习笔记之HTTP重定向负载均衡
HTTP重定向负载均衡原理:HTTP重定向服务器是一台普通的应用服务器,其唯一个功能就是根据用户的HTTP请求计算出一台真实的服务器地址,并将该服务器地址写入HTTP重定向响应中(重定向响应状态码为302)返回给用户浏览器。用户浏览器在获取到响应之后,根据返回的信息,重新发送一个请求到真实的服务器上利用HTTP重定向协议实现负载均衡大概工作原理如下图: PS:图片来源于网络HTT...原创 2018-05-06 00:30:34 · 1088 阅读 · 0 评论 -
负载均衡学习笔记之DNS域名解析负载均衡
DNS域名解析负载均衡DNS(Domain Name System)是因特网的一项服务,它作为域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。人们在通过浏览器访问网站时只需要记住网站的域名即可,而不需要记住那些不太容易理解的IP地址。在DNS系统中有一个比较重要的的资源类型叫做主机记录也称为A记录,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地...原创 2018-05-06 01:10:56 · 3739 阅读 · 0 评论 -
【转载】Hystrix熔断原理
在实际的工程实践中,这四种模式既可以单独使用,也可以组合使用,为了让读者更好的理解这些模式的应用,下面以Netflix的开源组件Hystrix的流程为例说明。 图中流程的说明: 1. 将远程服务调用逻辑封装进一个HystrixCommand。 2. 对于每次服务调用可以使用同步或异步机制,对应执行execute()或queue()。 3. 判断熔断器(circuit-breaker)是...转载 2018-05-27 18:47:28 · 5559 阅读 · 0 评论 -
应用可用性衡量标准
应用可用性衡量标准对于互联网应用和企业大型应用而言,多数都尽可能地要求做到7*24小时不间断运行,而要做到完全的不间断运行可以说“难于上青天”。 为此,对应用的可用性程度一般衡量标准有三个9到五个9:原创 2016-12-31 00:26:37 · 2680 阅读 · 0 评论 -
【转载】分布式之数据库和缓存双写一致性方案解析
【转载】文章来源:https://segmentfault.com/a/1190000014960784 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下午的流程来进行业务操作: 但是,在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存?又或者是先删除缓存,再更新数据库?其实这一块是存在很大的争议。二、文章结构讲解缓存...转载 2018-05-30 20:47:31 · 265 阅读 · 0 评论 -
zuul路由配置总结
根据SpringCloud的介绍Zuul是Netflix的基于JVM的路由器和服务器端负载均衡器。 先说明两个概念:路由配置和路由规则,路由配置是指配置某请求路径路由到指定的目的地址;路由规则是指匹配到路由配置之后,再进行自定义的规则判断,规则判断可以更改路由目的地址 zuul的配置: 1. zuul默认的路由配置是将path:/user/**的请求转发到service-id=user的服务...原创 2018-06-01 20:51:37 · 18201 阅读 · 0 评论 -
程序猿解决BUG之总结
今天看到一遍博文(老程序员解Bug的通用办法),提到程序猿解决BUG的思路和方法,结合自己的经验总结一些;对待BUG,广大程序猿态度不同,解决方法也不同,各人有各人的法宝,但总结一下,希望对新入行的同学有所帮助!先来张搞笑图轻松一下(IT人员对待BUG的反应)^_^ PS:图是网上扒的查异常日志 最直接的方式就是查日志,尤其线上问题,第一步先看是否有异常日志。包括日志文件和日志系统,...原创 2018-06-07 13:08:14 · 2174 阅读 · 0 评论 -
常见的缓存失效策略
常见的缓存失效策略常见的几种缓存失效策略,总结一下:FIFO ,first in first out ,最先进入缓存的数据在缓存空间不够情况下(超出最大元素限制时)会被首先清理出去LFU , Less Frequently Used ,一直以来最少被使用的元素会被被清理掉。这就要求缓存的元素有一个hit 属性,在缓存空间不够得情况下,hit 值最小的将会被清出缓存。LRU ,Least ...原创 2018-09-19 13:30:03 · 3221 阅读 · 0 评论