1、坑1 api中feignclient中的名字
@FeignClient(name = "****") 和 该微服务名字不一样,调用api 会报feign.FeignException$ServiceUnavailable: [503 Service Unavailable] during GET …
解决方法: name = "user-server" 的名字要和 application.yaml中spring: application: name: user-server 一样
2、坑2 application.yaml中配置mybatis的mapper-locations,引入其他模块中的mapper.xml文件
mapper-locations: classpath:mybatis/mappers/*.xml 不加* 会导致 Invalid bound statement (not found)
解决方法:
将原来的 mapper-locations: classpath:mybatis/mappers/*.xml 替换为
mapper-locations: classpath*:mybatis/mappers/*.xml
3、 坑3 搭建微服务 springboot和springcloud的版本要对应,否则会报错
4、 坑4 执行maven install的时候 当执行到test命令时会报maven-surefire相关的错
在pom文件加入下面这个
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>
5、坑5 执行maven install的时候会报错
spring-boot-maven-plugin
解决方法: 在启动类的pom文件中加入
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
其他非启动类模块的pom文件,不要加入这个
6、 坑6 启动服务,springboot启动报错Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary...
解决方法: idea中菜单栏 Build —> Rebuild Project 即可
7、 坑7 使用druid 配置多数据源 和flyway兼容问题
解决方法:见
Flyway配置(包含多数据源配置)及使用规范_beautyofmath的博客-CSDN博客
8、坑8 配置多数据源,一定要注意各个配置项相互对应
9、spring-boot-admin-starter 和 spring-boot-starter-actuator关系
1、都是用来监控微服务的
2、spring-boot-admin-starter 中已经集成了 spring-boot-starter-actuator
SBA 全称 Spring Boot Admin 是一个管理和监控 Spring Boot 应用程序的开源项目。分为admin-server 与 admin-client 两个组件,admin-server通过采集 actuator 端点数据,显示在 spring-boot-admin-ui 上,已知的端点几乎都有进行采集,通过 spring-boot-admin 可以动态切换日志级别、导出日志、导出heapdump、监控各项指标 等等….
Spring Boot Admin 在对单一应用服务监控的同时也提供了集群监控方案,支持通过eureka、consul、zookeeper等注册中心的方式实现多服务监控与管理…
10、在搭建一个微服务中,同时引入flyway和seata 相关配置和包,启动该服务会报错,io.seata.common.exception.ShouldNeverHappenException: [xid:null]get tablemeta failed
解决方法:先引入flyway相关配置将服务启动成功后,再引入seata相关配置,启动服务
微服务
现在是最火的框架了,其中实现
微服务
的方式很多,我自己最近几个月一直在学习
spring
Cloud技术栈,在自己
搭建
高可用集群的过程中踩过的
坑
在这里记录一下
一、在对eureka注册中心添加security安全认证之后,在登陆的时候出现的问题:
security最初配置如下所示:
security:
basic:
enabled: true
user:
.
.
.
最近在做项目重构,原来的单体项目升级为
微服务
。在实现的过程中,经验缺乏导致走了很多弯路。下面列举一下这几天
踩得
坑
。
1、在将原项目
模块
拆分时,原计划是按功能拆。以用户
模块
来说,最开始就打算拆用户管理的,后来发现用户相关接口牵扯太多,导致越拆越多……菜单、日志记录、七七八八的一些功能都进来了。这个过程后,自我反思。拆分前应该做好接口梳理了,再开始干活。不要盲目拆分。
2、微
.
.
.
踩过
坑
的过来人,当时招生的老师告诉我一般要半年到八个月,我TM居然信了没有基础的人,系统学完
java
的时间几乎是固定的,比如说需要一年,如果要想半年教完怎么办呢,
两种办法,只讲一半的内容,或者双倍进度,而双倍进度往往意味着如果你不是每天熬夜,零基础的人几乎听不懂,也学不会。我培训那会,每天都很焦虑,老师上周讲的东西,下次要用的时候马上就想起来,对零基础的我来说,这几乎是不可能的,因此进度不可能快的起来。
可以这样说,如果现在让我去做培训,我甚至可以两个月讲完,关键是别人能学的会吗。因此双倍进度对零基础
由于项目需要,本人开始在项目
Spring
boot 中集成工作流引擎Activiti。由于第一次集成,一路上步步都是
坑
,怪我没有先去看官方文档。现将一路上遇到的问题一一记录。
一
.
环境配置
1
.
项目环境:
Spring
boot2
.
0 + Maven + activiti6
.
0 + Eclipse
2
.
maven依赖:
<dependen
.
.
.
Spring
cloud 的Hystrix 需要在主类上面添加 @EnableHystrix annotation 同时必须在包含
@HystrixCommand(commandProperties = {
@HystrixProperty(name = "circuitBr
.
.
.
微服务
其实就是服务化思路的一种最佳实践方向,遵循SOA的思路,各个企业在服务化治理的道路上走的时间长了,
踩得
坑
多了,整个软件交付链路上各个环节的基础设施逐渐成熟了,
微服务
自然而然就诞生了。
当然,之所以
.
是选择war还是war exploded 这里首先看一下他们两个的区别:
war模式:将WEB工程以包的形式上传到服务器 ;
war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器;
复制代码(1)war模式这种可以称之为是发布模式,看名字也知道,这是先打
.
.
.
关于idea+mybatis+
spring
cloud+swagger2
踩得
小
坑
在使用动态sql 联用order by 和 limit的时候 可以使用来进行语句的动态拼接
例如插入可选的四个参数 orderField(“排序字段”),order(“排序方法 asc,desc”),pageIndex(“起始页”),limit(“每页显示条数”)
ps:order by 后面所加排序字段,和排序规则
.
.
.
记录一条
踩得
坑
,rabbitmq创建连接是时候希望通过配置文件管理连接地址,但是在配置类中获取不到配置文件参数
刚开始在网上找到如下代码所示创建连接的方法,但是获取不到地址、端口、用户名、密码
@Configuration
public class QueueConfig {
@Autowired
private RabbitAdmin rabbitAdmin;
.
.
.
从第一篇《启程:为何选择PHP?》到今天,已经过去半年了。
这个系列最初的想法很简单:我一个写
Java
的,想学PHP,想把学习过程记下来,顺便给同样在小公司摸爬滚打的同行一点参考。没想到一路写了三十几篇,从环境
搭建
、语法基础、ThinkPHP核心,到撸出一个能跑能用的博客系统,再到最后部署上线。
现在是系列最后一篇了。不写代码,不搭环境,就坐下来聊聊:
这一路哪些地方顺风顺水,哪些地方踩了
坑
?
Java
(
Spring
Boot)和PHP(ThinkPHP)到底差在哪?
用PHP做快速原型,到底行不行?