自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

陌猎的博客

做人就要做一个徘徊在牛A和牛C之间的人!

  • 博客(13)
  • 收藏
  • 关注

原创 使用函数式接口解决if-else代码

用Function这个Java 8新增的函数式接口结合下Map,即可优雅的实现和策略模式类似的效果。不过,用这种方式,我个人建议是把同一类行为进行统一封装,而不是像策略模式那样对同一类对象进行封装。

2022-02-10 15:19:08 584

原创 使用策略模式选择同一个接口的不同适配实现

使用策略模式选择同一个接口的不同适配实现,此种方式,在例如支付收银台场景中,支付是一个通用的行为,它的具体实现可以是支付宝、微信、云闪付、银联等,可以让代码更加优雅,后续的可阅读性和可维护性相对友好(当然你要是觉得if-else就是天,那你说得对)

2022-02-10 15:01:00 596

原创 Spring Cloud-在Ribbon中使用断路器监控Hystrix

在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫...

2018-09-14 15:54:19 492 1

原创 Spring Cloud服务治理-Eureka/服务消费者 Feign

上篇讲了如何使用Ribbon+RestTemplate服务消费者,现在来谈下如何通过Feign去消费服务。Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解,它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解,Feign支持可插拔的编码器和解码器,Feign默认集成了Ribbon,并和Eureka结合,默认实现...

2018-09-11 14:03:52 282 1

原创 微服务-数据库设计原则

数据和应用分离:①数据库位置透明,应用系统只依赖于逻辑数据库;②不直接访问其他宿主的数据库,只能通过服务访问 数据库主备从:①数据库必须配置备库;②不同业务域用不同的Schema隔离 不过度依赖缓存:①数据库性能满足性能需求时,尽量不引入缓存;②合理使用内存,可以提高系统的扩展性;过度依赖,会降低系统的可用性并且提高复杂程度...

2018-08-29 14:42:42 1930 1

原创 微服务-服务设计原则

服务提供方需要确保服务调用的幂等性,并且提供服务的方向操作服务。 服务消费方有责任记录调用的过程,捕捉各种异常,调用反向操作服务做补偿,对调用失败重试。 异常处理以及日志追踪:服务的异常或日志记录应集中处理,方便做服务的性能分析、异常追踪、SLA监控。 服务权限管控范围:服务只对服务消费者身份(可以是应用身份或者个人身份)进行认证和授权,服务不对数据读写范围进行授权,数据读写范围的授权由服务...

2018-08-29 11:47:27 224

原创 Mybatis代码生成插件配置文件generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator...

2018-07-31 10:58:57 252

原创 Spring Cloud服务治理-Eureka/Ribbon+RestTemplate服务消费者

上篇讲了如何简单搭建Eureka服务提供方,现在来谈下如何搭建一个简单的服务消费者。Netflix Ribbon:客户端负载均衡,基于HTTP和TCP的客户端负载均衡器。主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon属于进程内LB(Load Balancer),它只是一个类库,集成于消费方进程,消费方通过它来获取到服务提供方的地址。另一种是...

2018-07-30 11:23:40 199

原创 Spring Cloud服务治理-Eureka服务提供方

上篇讲了如何简单搭建Eureka服务端,现在来谈下如何搭建一个简单的服务提供方。服务提供方:将自身服务注册到 Eureka 注册中心,从而使服务消费方能够找到。简单搭建步骤如下:1.在pom.xml中需要引入的依赖如下,其中spring-cloud-starter-netflix-eureka-client,spring-boot-starter-web为必要依赖,没有spring-b...

2018-07-27 12:34:52 201

原创 Spring Cloud服务治理-Eureka服务端

Spring Cloud支持多种不同的服务治理框架,比如:Netflix Eureka、Consul、Zookeeper。在Spring Cloud服务治理抽象层的作用下,可以无缝切换服务治理实现,并且不影响任何其他的服务注册、服务发现、服务调用等逻辑。Spring Cloud Netflix是Spring Cloud子项目之一,它包括:服务发现(Eureka),断路器(Hystrix),...

2018-07-27 10:39:20 197

原创 使用Spring Data JPA完成审计功能-对新增人、新增时间、最后更新人、最后更新时间实现统一自动处理

1.建议使用STS工具自带插件建立Spring Starter Project工程,操作截图步骤如下:到上面即可Finish完成项目创建,完整项目接口图如下: 2.编写application.yml配置文件: # 数据库连接信息spring:  datasource:    # 连接地址    url: jdbc:mysql://localhost:...

2018-07-25 13:39:53 5902 5

原创 Spring Boot对数据文件的加载机制-加载顺序

1.在命令行中传入的参数 2.SPRING_APPLICATION_JSON中的属性。SPRING_APPLICATION_JSON是以JSON格式配置在系统环境变量中的内容。 3.java:comp/env中的JNDI属性。 4.Java的系统属性,可以通过System.getProperties()获得的内容。 5.操作系统的环境变量。 6.通过random.*配置的随机属性。 7...

2018-07-23 10:11:46 617

转载 Java线程状态

2018-07-13 08:20:40 98

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除