![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringBoot/springcloud
文章平均质量分 78
攻城狮Luke(刘健彬)
在深圳某IOT企业任职技术专家,擅长的技术领域包括Spring Cloud、Spring Cloud Alibaba、微服务架构、Docker、Kubernetes、分布式事务、高并发多线程、消息队列、数据库、数据结构与算法、网络数据安全、JVM、DevOps等,拥有丰富的互联网一线开发与架构经验。开源分布式事务框架milo作者,CSDN知名博主。
展开
-
SpringBoot自动装配原理
引言不论在工作中,亦或是求职面试,Spring Boot已经成为我们必知必会的技能项。除了某些老旧的政府项目或金融项目持有观望态度外,如今的各行各业都在飞速的拥抱这个已经不是很新的Spring启动框架。当然,作为Spring Boot的精髓,自动配置原理的工作过程往往只有在“面试”的时候才能用得上,但是如果在工作中你能够深入的理解Spring Boot的自动配置原理,将无往不利。Spring Boot的出现,得益于“习惯优于配置”的理念,没有繁琐的配置、难以集成的内容(大多数流行第三方技术都被集成),转载 2020-07-09 23:49:18 · 197 阅读 · 0 评论 -
主流微服务注册中心浅析和对比
开源产品受开发者热捧,是因为其代码透明、可以参与共建、有社区进行交流和学习,当然更重要的是开源产品的接入成本低。个人开发者或者中小型公司往往会将开源产品作为选型首选。开发者通过阅读源代码,理解产品的功能设计和架构设计,同时也可以通过本地部署来测试性能,随之而来的是对各类开源产品的对比,用以选型。不过当前关于微服务注册中心的对比,大多聚焦在功能上的对比,对架构或者性能的深入探讨,比较少见。另一方...转载 2019-12-17 17:16:53 · 242 阅读 · 0 评论 -
Spring OAuth2数据库表
CREATE SCHEMA IF NOT EXISTS `oauth2` DEFAULT CHARACTER SET utf8 ;USE `oauth2` ;-- ------------------------------------------------------- Table `oauth2`.`clientdetails`-- -----------------------...原创 2018-09-25 20:50:24 · 4690 阅读 · 1 评论 -
理解@RequestBody和@ResponseBody
在SpringMVC中,可以使用@RequestBody和@ResponseBody两个注解,分别完成请求报文到对象和对象到响应报文的转换。下面分别来说明@RequestBody用法:一般放在controller层的具体请求方法的入参中。比如:@PostMapping("/url")public urlBo getUrlByPhoneNumber(@RequestBody Stri...原创 2018-09-28 14:07:37 · 5380 阅读 · 0 评论 -
springboot logback中动态获取application中配置项
在多环境的情况下,logback的日志路径需要进行针对性配置,也就是需要通过application.yml文件中进行配置。logback自身支持以下方式配置:<property name="USER_HOME" value="/home/sebastien" />但是怎样才能灵活的配置“/home/sebastien”参数呢,如果不同的环境此参数值不同,那么就需要通过ap...转载 2018-10-08 17:27:14 · 4056 阅读 · 2 评论 -
thymeleaf之设置属性的值
7.1 th:attr用于设置其他属性的值,但不是所有属性的值都能设置,如text。 <form action="subscribe.html" th:attr="action=@{/subscribe}"> <fieldset> <input type="text" name="email" />转载 2018-09-30 09:07:27 · 3639 阅读 · 0 评论 -
springSecurity之http Basic认证
引言:HTTP基础认证(BA)是一种简单的认证机制。当一个web客户端需要保护任何web资源的时候,服务器会发送一个带有401状态码(未授权)的HTTP回应,还有类似WWW-Authenticate: Basic realm=”realm here” 的 WWW-Authenticate HTTP头。而浏览器这时候就会弹出一个登录对话框,提示输入用户名和密码。1. 修改配置在spring ...转载 2018-10-18 17:33:33 · 5323 阅读 · 1 评论 -
springboot ajax 提交403错误
由于开启了csrf 我用ajax post上传图片出现了403错误$('#input-app-icon').change(function () { var formdata = new FormData(); var v_this = $(this); var fileObj = v_this.get(0).files; formdata.append("fil...转载 2018-10-16 14:39:13 · 1366 阅读 · 0 评论 -
内嵌式js微信扫码登录及自定义样式
关于微信扫码登录网站的功能介绍,请阅读官方文档【网站应用微信登录开发指南】根据官方文档我们知道微信扫码登录有两种方式一种是跳转到一个大黑屏二维码界面进行扫码登录:(参见博客:PHP实现跳转式微信扫码登录网站 )另外一种是把二维码内嵌到页面中,这样可以自定义一些样式,例如二维码的大小、是否有标题等,默认效果如下:(官方文档说的挺好,JS微信登录主要用途:网站希望用户在网站内就...转载 2018-10-19 15:04:13 · 3099 阅读 · 0 评论 -
Eureka承载大规模微服务原理
一、问题起源Spring Cloud架构体系中,Eureka是一个至关重要的组件,它扮演着微服务注册中心的角色,所有的服务注册与服务发现,都是依赖Eureka的。不少初学Spring Cloud的朋友在落地公司生产环境部署时,经常会问: Eureka Server到底要部署几台机器? 我们的系统那么多服务,到底会对Eureka Server产生多大的访问压力? E...转载 2018-12-04 11:04:06 · 874 阅读 · 0 评论 -
Spring Cloud 多网卡环境下Eureka服务注册IP选择问题
问题场景 服务器上分别配置了eth0, eth1和eth2三块网卡,只有eth1的地址可供其它机器访问,eth0和eth2的 IP 无效。在这种情况下,服务注册时Eureka Client会自动选择eth0作为服务ip, 导致其它服务无法调用由于官方并没有写明Eureka Client探测本机IP的逻辑,所以只能翻阅源代码。Eureka Client的源码在eureka-client模块下,...转载 2018-11-27 18:11:58 · 3324 阅读 · 0 评论 -
Eureka服务注册机制
我们一直在使用Eureka进行注册服务,然而你有可能很少关心服务在注册到Eureka Server时是采用的主机名的方式?还是IP地址的方式?构建项目我们把之前章节SpringCloud组件:将微服务提供者注册到Eureka服务中心的源码复制一份修改项目名称为hengboy-spring-cloud-eureka-register-away,并简单的对application.yml配置文件...转载 2018-11-28 09:12:38 · 1216 阅读 · 1 评论 -
zuul禁用FormBodyWrapperFilter
工作原理先介绍下zuul的工作原理,看图zuul中定义了四种filter分别是1.pre 在请求到达origin之前执行,在这一步可以做认证,选择转发地址,记录日志2.Routing 建立http请求,可以使用httpClient或者netflix的ribbon3.Post 返回请求,可以在这一步做统计收集,设置response的http heder,把请求返回个客户端4.Er...转载 2018-12-07 17:22:39 · 1794 阅读 · 0 评论 -
spring boot-拦截器和过滤器
拦截器与过滤器的区别:1、过滤器和拦截器触发时机不一样,过滤器是在请求进入容器后,但请求进入servlet之前进行预处理的。请求结束返回也是,是在servlet处理完后,返回给前端之前。 如下图: 2、拦截器可以获取IOC容器中的各个bean,而过滤器就不行,因为拦截器是spring提供并管理的,spring的功能可以被拦截器使用,在拦截器里注入一个service,可以调用业...转载 2018-12-13 17:41:45 · 304 阅读 · 0 评论 -
springcloud之三步实现eureka服务端
一、maven依赖 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.comp...原创 2019-04-15 09:56:34 · 178 阅读 · 0 评论 -
thymeleaf的下拉框(select option)回显选中
在开发一个足球联赛管理系统中,需要在修改页面使用thymeleaf模板引擎先从数据库中取出数据显示在页面中,然后再对要修改的数据分别进行修改。 在input或者textarea的回显都没有什么问题,只要之前传了对象过来,那么就在input标签里加上例如th:value="*{startDate}"即可,那么输入框里变会显示数据库中已有的数据,点击后可进行修改。 但是select标签相对会特殊一...转载 2018-09-20 11:56:30 · 41147 阅读 · 8 评论 -
OAuth2.0认证原理浅析
一.OAuth是什么? OAuth的英文全称是Open Authorization,它是一种开放授权协议。OAuth目前共有2个版本,2007年12月的1.0版(之后有一个修正版1.0a)和2010年4月的2.0版,1.0版本存在严重安全漏洞,而2.0版解决了该问题,下面简单谈一下我对OAuth2.0的理解。二.OAuth2.0有什么用? 引用一下O...转载 2018-08-31 15:03:51 · 534 阅读 · 0 评论 -
Thymeleaf+Spring整合(官方文档翻译)
官方英文文档地址https://www.thymeleaf.org/doc/tutorials/2.1/thymeleafspring.html前言这个教程介绍了Thymeleaf与Spring框架的集成,特别是SpringMvc框架。注意Thymeleaf支持同Spring框架的3.和4.版本的集成,但是这两个版本的支持是封装在thymeleaf-spring3和thymelea...转载 2018-08-10 17:25:23 · 8066 阅读 · 2 评论 -
springcloud之Feign的基本使用
一、使用FeignFeign 提供声明式REST调用。一开始我们还在懊恼,dubbo都已经提供了配置式的服务调用了,为什么SpringCloud没有相应的解决方案?有SpringCloud提供了Feign声明式事务,使用Feign有个非常大的好处就是,只要你属性SpringMVC的annotation配置,Feign就没有什么学习成本。事不宜迟,我们首先将Feign整合到我们的微服务当中:<...转载 2018-03-20 17:41:13 · 3663 阅读 · 0 评论 -
FeignClient中使用熔断机制hystrix
一, Feign是自带断路器的feign.hystrix.enabled=true 是否开启熔断器hystrix.command.default.execution.timeout.enabled=true 是否开启超时熔断, 如果为false, 则熔断机制只在服务不可用时开启hystrix.command.default.execution.isolation.thread.timeoutI...转载 2018-04-09 11:18:56 · 8180 阅读 · 0 评论 -
Hystrix仪表盘--Unable to connect to Command Metric Stream
Unable to connect to Command Metric Stream 这个是错误是链接不上,错误原因可能是缺少jar包或者没有Enable相关服务。针对ribbon实现断路由监控1.则pom中需要加入以下jar包[java] view plain copy<dependency> <groupId>org.springframew...转载 2018-04-09 11:20:05 · 2142 阅读 · 0 评论 -
改变eureka server中注册的服务的健康检测方式
默认情况下注册到eureka server的服务是通过心跳来告知自己是UP还是DOWN,并不是通过spring-boot-actuator模块的/health端点来实现的,这样其实不是很合理。默认的心跳实现方式可以有效的检查eureka客户端进程是否正常运作,但是无法保证客户端应用能够正常提供服务。由于大多数微服务应用都会有一些其他的外部资源依赖,比如数据库,REDIS缓存等,如果我们的应用与这些...转载 2018-05-15 21:43:08 · 314 阅读 · 0 评论 -
spring cloud服务发现注解之@EnableDiscoveryClient与@EnableEurekaClient
在之前的一篇文章Spring Cloud feign使用中在使用服务发现的时候提到了两种注解,一种为@EnableDiscoveryClient,一种为@EnableEurekaClient,用法上基本一致,今天就来讲下两者,下文是从stackoverflow上面找到的对这两者的解释:There are multiple implementations of "Discovery Service"...转载 2018-05-16 20:11:38 · 3127 阅读 · 0 评论 -
Spring-boot集成通用Mapper以及pagehelper分页插件
配置POM文件<parent><groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.6.RELEASE</version> &转载 2018-05-29 15:57:24 · 710 阅读 · 0 评论 -
Spring-boot中读取config配置文件
了解过spring-Boot这个技术的,应该知道Spring-Boot的核心配置文件application.properties,当然也可以通过注解自定义配置文件的信息。Spring-Boot读取配置文件的方式:一.读取核心配置文件信息application.properties的内容 核心配置文件是指在resources根目录下的application.properties或applic...转载 2018-06-01 09:08:23 · 1073 阅读 · 0 评论 -
springcloud之healthcheck导致配置更新出错
软件版本Java代码 spring-boot-starter-parent 1.5.6.RELEASE spring.cloud.version Dalston.RELEASE 配置中心文件修改调用服务配置更新Java代码 curl-X POST http://192.168.108.199:6130/refresh 报异常Java代码 { "timestamp": 15...转载 2018-07-02 21:44:56 · 7363 阅读 · 1 评论 -
springcloud之配置中心(1)-通过git
随着线上项目变的日益庞大,每个项目都散落着各种配置文件,如果采用分布式的开发模式,需要的配置文件随着服务增加而不断增多。某一个基础服务信息变更,都会引起一系列的更新和重启,运维苦不堪言也容易出错。配置中心便是解决此类问题的灵丹妙药。市面上开源的配置中心有很多,BAT每家都出过,360的QConf、淘宝的diamond、百度的disconf都是解决这类问题。国外也有很多开源的配置中心Apache的A...转载 2018-06-28 15:51:32 · 138 阅读 · 0 评论 -
springcloud之配置中心(2)-通过svn
上一篇springcloud(六):配置中心git示例留了一个小问题,当重新修改配置文件提交后,客户端获取的仍然是修改前的信息,这个问题我们先放下,待会再讲。国内很多公司都使用的svn来做代码的版本控制,我们先介绍以下如何使用svn+Spring Cloud Config来做配置中心。svn版本同样先示例server端的代码,基本步骤一样。1、添加依赖<dependencies> ...转载 2018-06-28 15:54:11 · 288 阅读 · 0 评论 -
springcloud之配置中心(3)-配置中心服务化和高可用
在前两篇的介绍中,客户端都是直接调用配置中心的server端来获取配置文件信息。这样就存在了一个问题,客户端和服务端的耦合性太高,如果server端要做集群,客户端只能通过原始的方式来路由,server端改变IP地址的时候,客户端也需要修改配置,不符合springcloud服务治理的理念。springcloud提供了这样的解决方案,我们只需要将server端当做一个服务注册到eureka中,cli...转载 2018-06-28 16:09:48 · 292 阅读 · 0 评论 -
springcloud之配置中心(4)-配置中心整合消息总线
我们在配置中心svn示例和refresh中讲到,如果需要客户端获取到最新的配置信息需要执行refresh,我们可以利用webhook的机制每次提交代码发送请求来刷新客户端,当客户端越来越多的时候,需要每个客户端都执行一遍,这种方案就不太适合了。使用Spring Cloud Bus可以完美解决这一问题。Spring Cloud BusSpring cloud bus通过轻量消息代理连接各个分布的节点...转载 2018-06-28 16:13:48 · 398 阅读 · 0 评论 -
springcloud之链路追踪
随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位服务故障点,以对症下药。于是就有了分布式系统调用跟踪的诞生。现今业界分布式服务跟踪的理论基础主要来自于 Google 的一篇论文《Dapper, a Large-Scale Distributed...转载 2018-07-22 21:19:30 · 5200 阅读 · 0 评论 -
springcloud之服务监控
什么是 SpringBoot Admin?Spring Boot Admin 是一个管理和监控你的 Spring Boot 应用程序的应用程序。 这些应用程序通过 Spring Boot Admin Client(通过 HTTP)注册或者使用 Spring Cloud(例如 Eureka)发现。 UI只是 Spring Boot Actuator 端点上的一个 AngularJs 应用程序。 ...转载 2018-08-09 16:34:00 · 21531 阅读 · 1 评论 -
Spring Boot+Mybatis+Pagehelper分页
Spring Boot 集成MyBatis和Pagehelper分页插件mybatis-spring-boot-starter依赖树如下:pom配置project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"转载 2017-09-27 08:48:17 · 686 阅读 · 0 评论