编程基础
雨花山人
阿里巴巴 程序员
展开
-
多网卡下获取本机IP的方式。
多网卡下获取本机IP的方式。方式一:public class NetworkUtils { public static final String localHostIp = "127.0.0.1"; public static final String LOCALHOST = "localhost"; public static String currentI...原创 2020-01-07 14:44:48 · 1081 阅读 · 0 评论 -
在service上通过注解实现对远程应用服务的统一拦截AOP
一、增加注解增加一个作用于类及方法上的注解,并且参数中可以指明这是对哪个应用的拦截。@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)public @interface ProxyInterceptor { /** * 第三方应用唯一标识 *...原创 2019-11-01 16:06:39 · 357 阅读 · 0 评论 -
一致性hash与分库分表
分库分表的原则:1、当数据量较大时,需要分库分表。通常为保证某个用户的数据在同一个库同一个表中,都是按照customerId进行分库分表的。2、有时每天产生大量数据,这些数据只是为了对账,也可以按月分库,按天分表。比如分为12个库,366张表(考虑闰年),但数据每天用完后,可以把这些数据再迁移到历史表中,或者类似hdfs这样的表中。3、分库分表后考虑数据库的扩容问题,同时还要保证在业务...原创 2019-11-01 15:51:04 · 3048 阅读 · 1 评论 -
Spring编程式事务管理案例
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.transaction.TransactionStatus;import org.springframework.transaction.support.TransactionCallback;impor...原创 2017-01-18 16:50:50 · 595 阅读 · 0 评论 -
多线程异步调用等待响应结果后继续处理
1、在有响应的时候,使用ResponseFuture对象,并在onResponse方法中,将响应设置到Futrue中。import com.google.common.util.concurrent.AbstractFuture;public classResponseFuture<JsonProtocol> extends AbstractFuture<J...原创 2017-02-07 19:14:04 · 4642 阅读 · 0 评论 -
秒懂JAVA泛型
泛型方法必须在方法前加上<T>来标记是个泛型方法入参为泛型<T> String query(T param) ,不限定入参类型<T extends People> String query(T parma),限定入参类型必须是People的子类泛型接口public interface ButtonElementBizService&...原创 2017-10-02 11:10:56 · 457 阅读 · 0 评论 -
使用CountDownLatch进行并发处理
比如后台需要并发刷新很多元素,逐个刷新比较慢,可以使用CountDownLatch进行并发刷新。当请求特别多时候,很容易造成线程池满,此时应该考虑有一种线程保护机制,采用快速失败的方式对外抛出特定的异常。上层业务感知该异常后,可提示前端繁忙,请稍后再试一试。线程保护机制是创建线程执行器时候,采用SynchronousQueue队列,当请求超过线程池最大队列时候,线程池会直接抛出Reje...原创 2019-11-01 14:39:54 · 779 阅读 · 0 评论 -
关于门面服务统一拦截,统一异常处理的方法
一、定义一个通用的Result类目的是保证整个系统有一个通用的响应对象,这样统一处理会比较方便public class Result<T> implements Serializable{ private boolean success = true;//业务是否处理成功 private String code;//业务处理的错误码 pr...原创 2019-11-01 14:26:26 · 187 阅读 · 0 评论