摘要: 依赖隔离 docker使用舱壁模式来实现进程的隔离,使容器与容器之间不会互相影响。而Hystrix则使用该模式实现线程池的隔离,它会为每一个Hystrix命令创建一个独立的线程池,这样就算在某个Hystrix命令包装下的依赖服务出现延迟过高的情况,也只是对该依赖服务的调用产生影响,而不会拖慢其他业务 阅读全文
posted @ 2018-06-06 15:11 海盗船长 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以互相调用,在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络 原因或者自身原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会 阅读全文
posted @ 2018-06-06 14:36 海盗船长 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 高可用 现在已经可以从配置中心读取配置文件了,当微服务很多时都从配置中心读取配置文件,这时可以将配置中心做成一个微服务,将其集群化,从而达到高可用。 改造config-server 加入eureka 并在application.yml中制定服务注册地址: 在启动类中增加@EnableDiscover 阅读全文
posted @ 2018-06-06 13:55 海盗船长 阅读(237) 评论(0) 推荐(0) 编辑
摘要: Spring Cloud Config 在分布式系统中,由于服务数量很多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,使用Spring Cloud Config来实现分布式配置中心,它支持配置服务放在配置服务的内存中(本地),也支持放在远程git 阅读全文
posted @ 2018-06-05 18:26 海盗船长 阅读(268) 评论(0) 推荐(0) 编辑
摘要: Spring Cloud Feign Spring Cloud Feign 是一套基于Netflix Feign实现的声明式服务调用客户端。它使得编写Web服务客户端变得更加简单,我们只需要创建接口并使用注解来配置它既可完成对web服务接口的绑定。它具备可插拔的注解支持,包括Feign注解、JAX- 阅读全文
posted @ 2018-06-05 16:28 海盗船长 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 在上一篇中使用LoadBalancerClient接口实现了获取某个服务的具体实例,并根据实例信息发起服务接口消费请求。但是这样的做法需要我们手工的区编写服务选取、连接拼接等繁琐的工作,对于开发人员来说非常不友好。所以使用Spring Cloud中针对客户端负载均衡的工具包:Spring Cloud 阅读全文
posted @ 2018-06-05 14:59 海盗船长 阅读(334) 评论(0) 推荐(0) 编辑
摘要: LoadBalancerClient 使用Spring Cloud提供的负载均衡器客户端来实现服务的消费。 首先创建一个服务消费者工程,命名为com.david.consumer,并在pom.xml中添加依赖: 配置application.yml指定eureka注册中心地址: 在工程的启动类中,通过 阅读全文
posted @ 2018-06-05 14:31 海盗船长 阅读(207) 评论(0) 推荐(0) 编辑
摘要: Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。 什么是微服务架构? 微服 阅读全文
posted @ 2018-06-05 13:48 海盗船长 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 除了使用拦截器、过滤器实现对没有权限访问的页面跳转到登陆页外,还可以通过框架实现:Spring Security。 使用Spring Security 完成登陆验证: 1.pom.xml添加依赖 2.创建spring security的配置类WebSecurityConfig.java 新增登陆请求 阅读全文
posted @ 2018-06-04 18:10 海盗船长 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 使用swagger可以与spring mvc程序配合组织出强大的restful api文档。它既可以减少我们创建文档的工作量,同时说明内容又整合入现实代码中,让维护文档和修改代码整合为一体,可以让我们在修改代码逻辑的同时方便的修改文档说明。另外swagger2也提供了强大的也卖弄测试功能来调试每个r 阅读全文
posted @ 2018-06-01 17:14 海盗船长 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 动态资源和静态资源 拦截器可以算是aop的一种实现,专门拦截对动态资源的后台请求,也就是拦截对控制层的请求,主要用于判断用户是否有权限请求后台。拦截器不会拦截静态资源,如spring boot默认静态目录resources/static。请求期目录下的html,js,img都不会被拦截。将一些静态资 阅读全文
posted @ 2018-05-31 11:11 海盗船长 阅读(485) 评论(0) 推荐(0) 编辑
摘要: servlet、filter、listener,在spring boot中配置方式有两种:一种是以servlet3开始提供的注解方式,另一种是spring的注入方式。 servlet注解方式 servlet3.0以前,servlet、filter、listener需要在web.xml中配置,从ser 阅读全文
posted @ 2018-05-31 10:56 海盗船长 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 通常我们在某网站发送邮件验证码时,首先会提示验证码已发送,然而此时可能没有收到验证码,过几秒种才真正的收到。如果是同步会先验证发送是否成功然后再通知,如果是异步可以先通知用户已发送,并释放请求,然后再去异步处理。 @Async和@EnableAsync实现异步 控制层 服务层 同步:这是在一个控制层 阅读全文
posted @ 2018-05-31 10:31 海盗船长 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 添加依赖 在application.yml中设置发送账号 简单发送 发送含附件的 阅读全文
posted @ 2018-05-30 17:19 海盗船长 阅读(208) 评论(0) 推荐(0) 编辑
摘要: Spring Boot 内部采用的是Commons Logging进行日志记录,但是在底层为Java Util Logging、Log4J2、Logback等日志框架提供了默认配置。 logback 虽然spring boot有很多可用的日志框架,一般来说,使用spring boot 默认的logb 阅读全文
posted @ 2018-05-30 16:26 海盗船长 阅读(1901) 评论(0) 推荐(0) 编辑
摘要: 继承spring-boot-parent 要成为一个spring boot项目,首先就必须在pom.xml中继承spring-boot-starter-parent,同时制定其版本 环境参数 在普通的maven项目中,需要在pom.xml中配置插件来修改jdk版本,utf-8编码等环境参数,在spr 阅读全文
posted @ 2018-05-30 15:22 海盗船长 阅读(484) 评论(0) 推荐(0) 编辑
摘要: 数据源配置源码 这里截取org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration的部分源码,主要介绍Tomcat和Hikari连接池如何自动配置切换,其他数据源配置也是一样的原理 Hikari数据源配置,注解意思同上 默 阅读全文
posted @ 2018-05-30 15:02 海盗船长 阅读(679) 评论(0) 推荐(0) 编辑
摘要: druid druid是和tomcat jdbc一样优秀的连接池,出自阿里巴巴。除了连接池,druid哈hi有一个很实用的监控功能。 pom.xml 添加了以下依赖后,会自动用druid连接池替代默认的tomcat jdbc连接池 参数配置 在application.yml中配置spring.dat 阅读全文
posted @ 2018-05-30 14:20 海盗船长 阅读(1746) 评论(0) 推荐(0) 编辑
摘要: 默认连接池 tomcat jdbc是从tomcat7开始推出的一个连接池,相比老的dbcp连接池要优秀很多,spring boot将tomcat jdbc作为默认的连接池,只要在pom.xml中引入了spring boot的jdbc组件,就会自动引入tomcat jdbc连接池。 默认参数 以下是o 阅读全文
posted @ 2018-05-30 12:27 海盗船长 阅读(1093) 评论(0) 推荐(0) 编辑
摘要: 一对多 查询category中的某一条数据,同时查询该分类下的所有Product。 Category.java product.java dao层 service层 测试: 一对一:把上面的@many=@Many换成one=@One即可 修改Product.java 增加属性 dao 多对多:把多个 阅读全文
posted @ 2018-05-29 20:49 海盗船长 阅读(589) 评论(0) 推荐(0) 编辑