上次写到springboot里面,这里还需要一些数据库的服务标注为springboot组件进行注入。
这里看到flyway,这是一个类似于efcore的migration 组件, 管理mysql 的脚本。
hystrix是一个进行请求时间超时时,返回结果的库。
eureka需要集成,这里看下zookeeper或者consul进行服务注册与发现。
zookeeper是一个单独的下载。下载后运行zookeeper, 然后在springboot中添加服务发现库依赖,进行服务发现相关。
添加openfeign2.2.0.RELEASE和 zookeeper
springcloud版本也要与springboot版本都用2.x,springcloud相关得使用2.2.0.RELEASE。
此时 , zookeeper 启动已经可以和feign配合。
zookeeper 的使用,在win和wsl上端口是互相不能调用的。zookeeper使用的jetty会占用8080, 这样springboot不能启动,zookeeper配置, 在bin下用zkServer.cmd和zkCli.cmd进行测试启动和连接;yaml中配置需要在冒号后面加上空格:
: : 8090
zoo.cfg的配置放在conf目录下:
tickTime=2000 dataDir=/var/lib/zookeeper clientPort=2181 admin.serverPort=8089 |
此时服务成功运行,默认feign已经带了ribon进行负载均衡。
关闭服务, 在zookeeper的console上会显示删除服务,表明连接成功;
这里做一个自调用,使用feign,
,
接口,
,
,
说明feign已经根据服务名调用到rest接口,取得结果并显示。
然后需要配合springcloud gateway进行网关路由的配置。
Gateway的使用:
需要删除spring-starter-web包和所有javax.http等,因为不需要web相关的。
gateway启动出现validationException,需要在Pom添加,版本继承自<parent>中的spring-boot
org.springframework.bootspring-boot-starter-validation |
gateway配置后,/api转发到8099但是没有此服务报错,说明gateway有在转发:
此时配置:
访问 /api,正常返回结果:
至此,已经正常弄了springcloud-gateway, zookeeper, feign, 等都正常运行。微服务基本可以正常运行。
顺便, idea 多行编辑,按住alt, 鼠标拖下去就好,对缩进处理友好。
refs:
https://article.juejin.cn/post/6844903891440517133
https://cloud.spring.io/spring-cloud-static/spring-cloud-zookeeper/1.0.3.RELEASE/
https://zookeeper.apache.org/doc/current/zookeeperStarted.html
https://www.baeldung.com/spring-cloud-zookeeper
https://github.com/spring-cloud/spring-cloud-zookeeper
https://www.baeldung.com/java-zookeeper
https://cloud.spring.io/spring-cloud-zookeeper/2.0.x/single/spring-cloud-zookeeper.html
https://www.baeldung.com/spring-cloud-openfeign
https://www.baeldung.com/spring-boot-start
https://www.jb51.net/article/259285.htm
https://spring.io/projects/spring-cloud-gateway
https://www.baeldung.com/spring-cloud-stream-kafka-avro-confluent
https://www.baeldung.com/java-shardingsphere
https://severalnines.com/blog/introduction-failover-mysql-replication-101-blog
https://www.baeldung.com/multitenancy-with-spring-data-jpa
https://vikasverma.tech/post/multitenancy-hibernate-spring-boot/