- 博客(13)
- 收藏
- 关注
原创 使用函数式接口解决if-else代码
用Function这个Java 8新增的函数式接口结合下Map,即可优雅的实现和策略模式类似的效果。不过,用这种方式,我个人建议是把同一类行为进行统一封装,而不是像策略模式那样对同一类对象进行封装。
2022-02-10 15:19:08 623
原创 使用策略模式选择同一个接口的不同适配实现
使用策略模式选择同一个接口的不同适配实现,此种方式,在例如支付收银台场景中,支付是一个通用的行为,它的具体实现可以是支付宝、微信、云闪付、银联等,可以让代码更加优雅,后续的可阅读性和可维护性相对友好(当然你要是觉得if-else就是天,那你说得对)
2022-02-10 15:01:00 640
原创 Spring Cloud-在Ribbon中使用断路器监控Hystrix
在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫...
2018-09-14 15:54:19 516 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 303 1
原创 微服务-数据库设计原则
数据和应用分离:①数据库位置透明,应用系统只依赖于逻辑数据库;②不直接访问其他宿主的数据库,只能通过服务访问 数据库主备从:①数据库必须配置备库;②不同业务域用不同的Schema隔离 不过度依赖缓存:①数据库性能满足性能需求时,尽量不引入缓存;②合理使用内存,可以提高系统的扩展性;过度依赖,会降低系统的可用性并且提高复杂程度...
2018-08-29 14:42:42 1973 1
原创 微服务-服务设计原则
服务提供方需要确保服务调用的幂等性,并且提供服务的方向操作服务。 服务消费方有责任记录调用的过程,捕捉各种异常,调用反向操作服务做补偿,对调用失败重试。 异常处理以及日志追踪:服务的异常或日志记录应集中处理,方便做服务的性能分析、异常追踪、SLA监控。 服务权限管控范围:服务只对服务消费者身份(可以是应用身份或者个人身份)进行认证和授权,服务不对数据读写范围进行授权,数据读写范围的授权由服务...
2018-08-29 11:47:27 259
原创 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 273
原创 Spring Cloud服务治理-Eureka/Ribbon+RestTemplate服务消费者
上篇讲了如何简单搭建Eureka服务提供方,现在来谈下如何搭建一个简单的服务消费者。Netflix Ribbon:客户端负载均衡,基于HTTP和TCP的客户端负载均衡器。主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon属于进程内LB(Load Balancer),它只是一个类库,集成于消费方进程,消费方通过它来获取到服务提供方的地址。另一种是...
2018-07-30 11:23:40 221
原创 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 226
原创 Spring Cloud服务治理-Eureka服务端
Spring Cloud支持多种不同的服务治理框架,比如:Netflix Eureka、Consul、Zookeeper。在Spring Cloud服务治理抽象层的作用下,可以无缝切换服务治理实现,并且不影响任何其他的服务注册、服务发现、服务调用等逻辑。Spring Cloud Netflix是Spring Cloud子项目之一,它包括:服务发现(Eureka),断路器(Hystrix),...
2018-07-27 10:39:20 219
原创 使用Spring Data JPA完成审计功能-对新增人、新增时间、最后更新人、最后更新时间实现统一自动处理
1.建议使用STS工具自带插件建立Spring Starter Project工程,操作截图步骤如下:到上面即可Finish完成项目创建,完整项目接口图如下: 2.编写application.yml配置文件: # 数据库连接信息spring: datasource: # 连接地址 url: jdbc:mysql://localhost:...
2018-07-25 13:39:53 5987 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 638
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人