摘要:
整合Zuul 为什么要使用Zuul? 易于监控 易于认证 减少客户端与各个微服务之间的交互次数 1. 引入依赖 2. 配置文件 可不配置,具体配置参数见下文 3. 开启注解 启动类上加@EnableZuulProxy 备注:不配置任何配置文件时,启动zuul服务,zuul可以通过服务名去访问到其他服 阅读全文
摘要:
整合hystrix 1. 加入依赖 2. 开启注解 主类上加@EnableFeignClients 3. 配置文件中开启(E、F版本默认关闭) feign.hystrix.enabled=true 4. 测试代码 测试: 调用http://localhost:8003/user/test?id=2 阅读全文
摘要:
[toc] 从零搭建一个SpringCloud项目之Eureka搭建 一、父项目创建 1. 在idea上点击new project创建一个新项目,并删除他的src目录(父项目不需要写代码)。 2. 在pom文件里引入 3. 父项目主要进行版本控制和项目聚合 二、 搭建一个Eureka Server 阅读全文
摘要:
1. 完整启动debug流程如下: 描述: SpringBoot项目启动会调用Spring刷新容器方法,然后会调用到onRefresh方法,此方法是一个空方法,被子类ServletWebServerApplicationContext覆写,然后他会调用创建web容器的方法,然后创建出一个Tomcat 阅读全文
摘要:
Bean的扩展 1. 这两个接口都是可以在Bean创建过程中进行拦截,那么他们有什么区别呢? 示例如下: InitializingBean 接口实现类: BeanPostProcessor 接口实现类: 启动项目,运行结果如下: 结果分析: InitializingBean 接口实现类只执行了一次, 阅读全文
摘要:
Java 字节码技术 一、Java Agent 1. Javaagent是java1.5以后引入的特性,其主要作用是在class被加载之前对其加载,以插入我们想要修改的代码 2. javaagent最后展示形式是一个jar包,具有以下特性 必须在META INF/MANIFEST.MF中指定Prem 阅读全文
摘要:
分布式事务 一、概念 1. 何为分布式事务 一个事务包含多个操作,多个操作操作了多个数据源,这样的事务称为分布式事务。 2. CAP定理 画图举例说明: 例:用户在北京服务器下了单。 一致性 :要想保证一致性,那么如果用户查询订单请求路由到了上海,因为上海没有这笔订单数据,所以只能报错来拒绝服务,让 阅读全文
摘要:
动态分库分表 1.方案简述 动态分库+取模分表的方式,解决扩容时数据迁移,分表数据热点问题。 根据数据库配置的规则来计算会路由到哪个数据库里面去。例:我对user表进行了分库分表。当user数据量小于30我就只插入db0这个数据库。大于30小于60我就插入db1这个数据库。 id | start|e 阅读全文
摘要:
基于Sharding JDBC的读写分离 1.引入pom.xml 2.建立实体类 3.建立mapper 4.建立service 5.建立controller 6.写配置文件 7.启动类 8.测试 先在浏览器中测试新增是否是走主库 http://localhost:8080/addUser?name= 阅读全文
摘要:
Sychronized原理 用法: 方法 代码块 在JDK 1.6之前,synchronized只有传统的锁机制,因此给开发者留下了synchronized关键字相比于其他同步机制性能不好的印象。在JDK 1.6引入了两种新型锁机制:偏向锁和轻量级锁,它们的引入是为了解决在没有多线程竞争或基本没有竞 阅读全文