上文我们讲述了如何使用
本文我们讲述如何使用 Sharding-JDBC
实现读写分离。为了节省时间,我们项目结构仍然沿用上文的,只需要增加读写分离的配置就好了。
从本文开始我们一起学习一下如何使用当前比较成熟的分库分表框架 Sharding-JDBC 实现分库分表,读写分离,以及自定义分库分表算法。
今天这一篇文章我们来说下 Java 的动态代理。
在讲动态代理之前,我先梳理一下什么是代理模式。代理模式就是 给委托对象提供一个代理对象,并由代理对象控制对委托对象的引用 简单来说就是客户端 A 想要调用服务提供方 B 的某个服务,但是 A 又不直接调用 B, 而是调用代理方 C, 然后 C 再调用 B,将调用结果返回给 A。 说的比较绕,我们先分析一下代理模式中涉及到的几个对象:
调用流程: 客户端 -> 代理对象 -> 委托对象
学习 Java Web 编程之后,一直对过滤器,拦截器,监听器这三个概念很纠结,感觉他们很显然是有区别的,但是又说不出有多明显的区别, 尤其是过滤器和拦截器,在很多时候几乎可以相互替代的解决方案。花了几个时间查找资料和思考,得出一些理解,记录下来。
最近公司在考虑公司的java项目的分布式架构的技术选型问题,初步讨论之后选择了 SpringCloud,但是在对 SpringCloud 进行一些的组件测试之后发现 一个问题,就是 SpringCloud 的eureka分布式服务在调用的时候还是有些不方便的地方,她主要是采用 http 协议实现 restful API,这样在调用的时候 一个是效率不高,第二是参数的序列化是个问题,经测试发现她目前对远程服务的调用只能接收一个复杂类型的参数,也就是第一个参数可以是复杂类型 的参数,其他参数都要是基本类型的,那就意味着,如果想要传入多个复杂类型参数,比如传入一个 User 类型的和一个 Order 类型,就必须自己手动将 参数打包成一个复杂的参数。这样无端为编码带来了很多额外的工作量。因此架构组在再三考虑之下决定用 dubbo 替换 SpringCloud 自带的分布式服务框架。
Spring Boot
是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。