03 2019 档案
摘要:虽然springcloud全家桶里面包含了很多优秀的技术,包括负载均衡,路由选举,断路器,熔断机制,零配置,分布式锁,链路追踪等,但是在实现的过程中它的运维成本却大大增加。 一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务。由两个组件组成:Eureka服务器和Eurek
阅读全文
摘要:布隆过滤器是一种数据结构,比较巧妙的概率型数据结构,特点是高效地插入和查询。它是一个 bit 向量或者说 bit 数组。 核心思想: BloomFilter的准确性尽管BloomFilter已经尽可能的减小hash碰撞的概率了,但是,并不能彻底消除,因此正如上面提到的:如果对应的bit位值都为1,那
阅读全文
摘要:在多台服务器需要对某一个共享资源进行多线程同步访问的时候,就需要分布式锁 分布式锁具备的条件: 1、在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行; 2、高可用的获取锁与释放锁; 3、高性能的获取锁与释放锁; 4、具备可重入特性; 5、具备锁失效机制,防止死锁; 6、具备非阻塞锁
阅读全文
摘要:失血模型:模型仅仅包含数据的定义和getter/setter方法,业务逻辑和应用逻辑都放到服务层中。这种类在java中叫POJO。 贫血模型:贫血模型中包含了一些业务逻辑,但不包含依赖持久层的业务逻辑。这部分依赖于持久层的业务逻辑将会放到服务层中。可以看出,贫血模型中的领域对象是不依赖于持久层的。
阅读全文
摘要:XA协议的两阶段提交方案 第一阶段是表决阶段,所有参与者都将本事务能否成功的信息反馈发给协调者;第二阶段是执行阶段,协调者根据所有参与者的反馈,通知所有参与者,步调一致地在所有分支上提交或者回滚。 但是两阶段提交方案锁定资源时间长,对性能影响很大,基本不适合解决微服务事务问题。 TCC方案 其将整个
阅读全文
摘要:背景 :函数上千行代码,类巨大,高耦合。业务发展到一定阶段,原来的程序设计不能满足业务需求,或者经过多遍更改后,存在大量冗余的逻辑代码;新的架构设计,进行业务拆分。 重构是在不改变项目现有的业务逻辑或者代码逻辑的基础上对程序进一步提炼或者扩展,使其结构化,代码规范化,弱耦合。非常重要的一点。 糟糕的
阅读全文
摘要:1、 用户发送请求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给Dispa
阅读全文
摘要:hashmap允许null key和value ,属于fail-fast,因此会抛出ConcurrentModificationException异常。当存储过多数据时,就会转成红黑树进行存储,就像java.util.TreeMap。内部维护的是一个node数组。 给hashmap进行put数据时,
阅读全文
摘要:1、适配器模式 适配器模式就是把一个类的接口变换成客户端所能接受的另一种接口,从而使两个接口不匹配而无法在一起工作的两个类能够在一起工作。通常被用在一个项目需要引用一些开源框架来一起工作时,这些框架的内部都有一些关于环境信息的接口,需要从外部引入,但是外部的接口不一定能匹配,在这种情况下,就需要适配
阅读全文
摘要:public ThreadPoolExecutor(int corePoolSize, //核心线程数,超过这个值时要在线程池中等待 int maximumPoolSize, //最大线程数,超过这个线程数则执行拒绝策略 long keepAliveTime, //活跃线程数大于核心线程数时,空闲的
阅读全文
摘要:Filter的创建和销毁也是由WEB服务器负责。不过与Servlet区别的是,它是1>在应用启动的时候就进行装载Filter类(与Servlet的load-on-startup配置效果相同)。2>容器创建好Filter对象实例后,调用init()方法。接着被Web容器保存进应用级的集合容器中去了等待
阅读全文
摘要:代码优化的目标是: 1、减小代码的体积 2、提高代码运行的效率 代码优化细节 (1)尽量指定类、方法的final修饰符 带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以
阅读全文
摘要:不要迷信union all 就比 or及in 快,要结合实际情况分析到底使用哪种情况。 对于索引列来最好使用union all,因复杂的查询【包含运算等】将使or、in放弃索引而全表扫描,除非你能确定or、in会使用索引 对于只有非索引字段来说你就老老实实的用or 或者in,因为 非索引字段本来要全
阅读全文
摘要:foreach是for的增强,是一个语法糖,对其反编译发现它其实依赖while循环和Iterator实现。 对List而言会触发fail-fast机制,抛出ConcurrentModificationException异常。考虑到并发修改。 解决方案; 1.普通for循环 2.Iterator提供r
阅读全文

浙公网安备 33010602011771号