摘要:
现在绝大多数企业,为了保护公司利益,都会在内网进行代码开发,内网肯定是无法上网的。对于 .net 来说,如果能够使内网的机器,通过 Nuget 下载到外网的第三方类库,是一件很重要的事情,这关系着开发工作效率。Nexus 是一款很不错的私服代理工具,能够为 Visual Studio 的 Nuget 阅读全文
摘要:
Nexus 是 Sonatype 公司的一款用于搭建私服的产品,使用非常广泛。不仅可以为 Java 搭建 Maven 私服,也可以为 .net 搭建 Nuget 私服,当然这是后面博客要介绍的,本篇博客主要是介绍 Nexus 私服的安装和自身的配置。下面就介绍一下搭建安装细节,非常简单。 一、下载 阅读全文
摘要:
工作中很多情况下需要进行精确的小数运算,,在 Java 中使用 float 和 double 这两种浮点数类型进行小数运算时,往往很难达到令人满意的效果,小数点后面总是存在很多位的小数,看起来令人费解,因此不推荐使用这两种浮点数类型进行小数运算。BigDecimal 就是专门用来进行精确计算的,使用 阅读全文
摘要:
SpringCloud Gateway 是目前非常流行的网关中间件,类似于 nginx 一样,主要提供【路由转发】和【负载均衡】功能,目的是为微服务架构提供一种简单而有效的统一的 API 路由管理方式。 我们通常也会在网关中添加【身份认证】和【鉴权】,阻止非法请求访问后端服务。 SpringClou 阅读全文
摘要:
Hystrix 的降级熔断只是被迫的折中方案,并不是我们所期望的结果,我们还是期望系统能够永远健康运行。绝大多数情况下,一个系统有很多微服务组成,高峰期很可能个别微服务会发生降级熔断,我们必须能够通过监控才行,这样才能快速发现并解决问题。 Hystrix 是 Netflix 的产品,其提供的仪表盘监 阅读全文
摘要:
Hystrix 在服务端接口默认开启并支持了熔断机制,可以使用 @HystrixCommand 注解中的 commandProperties 进行熔断参数自定义配置,默认情况下对于一个接口来说,5 秒钟发生 20 次降级,或者失败率达到 50% 时,就会触发熔断机制。 所谓熔断机制,可以举一个简单的 阅读全文
摘要:
前面已经介绍了 Hystrix 服务端降级的实现方案,本篇博客将介绍 Hystrix 在客户端降级的实现方案。 由于我使用最新版的 SpringCloud(版本 2021.0.3)实现客户端降级没有成功,所以就拿相对比较稳定的 SpringCloud(版本 Hoxton.SR12)和对应的 Spri 阅读全文
摘要:
Hystrix 是 Netflix 公司提供的一个开源免费组件,主要用于降级熔断服务调用,防止系统出现级联失败(也就是通常所说的雪崩)。我们在实际开发中,需要在服务端和客户端都有降级措施,结合后续将要介绍的熔断,最大限度的保护系统的正常运行。 SpringCloud 从 2020.0.1 版本已经移 阅读全文
摘要:
Feign 组件最初由 Netflix 公司提供,由于不支持 SpringMVC 注解,所以 SpringCloud 对其封装并进行支持,因此产生了 OpenFeign 组件。Feign 是一个声明式的 REST 客户端,它采用基于接口的注解方式,具有代码简洁、使用方便的优势。 本篇博客仍然使用最新 阅读全文
摘要:
SpringCloud 在 2020.0.1 版本之前,服务的消费者在引入 spring-cloud-starter-netflix-eureka-client 的依赖后(该依赖内置了 Ribbon 依赖),就可以使用 Ribbon 客户端负载均衡了。Ribbon 支持 10 种客户端负载均衡策略, 阅读全文
摘要:
SpringCloud 从 2020.0.1 版本开始,从 Eureka 中移除了 Ribbon 组件,使用 LoadBalance 组件来代替 Ribbon 实现客户端负载均衡。LoadBalance 组件相对于 Ribbon 来说,仅支持两种负载均衡策略:【轮询策略】和【随机策略】,估计后续会增 阅读全文
摘要:
近年来微服务非常流行,鼎鼎大名的 SpringCloud 就是专门为微服务技术开发而提供的解决方案。 SpringCloud 是一系列框架的有序集合,它将市场上各个公司比较成熟的并且经过实战检验的服务进行组合,采用 SpringBoot 技术进行再次封装,屏蔽掉复杂的配置和底层实现细节,最终提供给开 阅读全文
摘要:
我们开发好的 SpringBoot 服务发布到公网上,肯定希望能够对其状态和资源消耗情况进行监控,特别是对每个接口访问情况的统计,以便在发生问题时能够快速排查和分析并解决问题。尤其是当 SpringBoot 服务比较多时,监控工作就尤为重要。 Spring Boot Admin 组件是第三方开发的一 阅读全文
摘要:
之前发布过一篇有关 Spring 采用纯注解整合 MyBatis 和 Junit 的博客,这次也拿来跟 SpringBoot 进行对比。 之前发布的博客地址为:https://www.cnblogs.com/studyjobs/p/16031344.html 本篇博客将采用 SpringBoot 实 阅读全文
摘要:
之前发布过一篇有关 Spring 使用 RedisTemplate 操作 Redis 的博客,正好可以拿来跟 SpringBoot 进行对比。 之前发布的博客地址为:https://www.cnblogs.com/studyjobs/p/16084948.html 本篇博客将采用 SpringBoo 阅读全文
摘要:
SpringBoot 通过 profile 实现在不同环境下的配置切换,比如常见的开发环境、测试环境、生产环境。 SpringBoot 常用配置文件主要有 2 种:properties 文件和 yml 文件。对于 properties 文件来说,主要通过多 profile 配置文件的方式来实现;对于 阅读全文
摘要:
SpringBoot 是基于 Spring 的简化配置方案,不是对 Spring 技术的升级,本质上是提供了一种快速使用 Spring 的开发方式。 SpringBoot 基于约定优于配置的思想,提供了大量的起步依赖,能够让开发人员快速搭建 Spring 项目,减少在配置与业务之间的思维切换,从而可 阅读全文
摘要:
我们如果只有一个程序,在运行时需要控制共享资源的并发访问时,只需要在程序中采用 synchronized 或者 Lock 的方式,解决多线程之间的代码同步问题即可,这时多线程都是在同一个 JVM 中运行的,不存在任何问题。但是如果我们是在分布式集群环境下运行相同的程序访问共享资源时,这就需要在多个 阅读全文
摘要:
Zookeeper 允许多个客户端在指定的一个或一些节点上添加监听事件,当被监听的节点发生状态变化时,Zookeeper 会把节点变化的细节通知到相应的客户端,这就是 Zookeeper 分布式协调机制的核心本质。 为了实现分布式协调功能,Zookeeper 引入了 Watcher 机制来进行事件监 阅读全文
摘要:
前面已经介绍了使用命令行操作 Zookeeper,方便我们对 Zookeeper 有一个整体的认识。 Zookeeper 本质上就是一个 NoSQL 数据库,只不过其存储的数据结构是树状结构形式,理解起来很简单。 对于一个新手小白来说,面对 Zookeeer,介绍一大堆概念,没啥用处,没有什么比代码 阅读全文