设计模式中单例模式设计时需要注意的5个问题

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。使用的时候需要注意有状态和无状态单例的使用场景,多个JVM中会产生多个单例对象,同一个JVM中多个类加载器加载可能会导致出现多个单例对象,使用单例不能实现Cloneable和Serializable接口,否则会出现多个单例对象。一个饿汉式单例类在多线程调用的时候,在生成的时候要使用synchronized对该方法进行线程同步,否则会导致不同的线程将单例的对象属性数据进行相互覆盖。

如何使用SpringCloud进行灰度发布?

灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。本文主要讲解了使用SpringCloud进行灰度发布。

Spring Cloud配置跨域访问的五种方案?你用的是哪一种呢?

在使用SpringCloud实现微服务时,经常会碰到前端页面访问多个二级域名的情况,跨域是首先要解决的问题。 解决这个问题,可以从两方面入手,一种方案是在微服务各自的业务模块中实现,即在SpringBoot层实现,另外一种方案就是在Gateway层实现。

如何十步解耦你的系统?

耦合性,是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。

微服务中消息总线架构设计应用1

当一个O2O电商系统到达一定规模之后,就需要考虑系统的可扩展性、松耦合和组件化。一般采用的都是基于时下比较流行SpringCloud和Dubbo的分布式的微服务的架构模式,虽然模块间能够独立部署了,但是模块间的还是强依赖关系,每次改动都需要重新发版上线,产品迭代速度又快,使用分布式的消息总线设计就可以解决这些问题。

看更多