随笔分类 - Spring
摘要:Spring Boot项目使用docker容器, jar和war的分层打包. war分层打包.
阅读全文
摘要:使用Spring Boot开发WEB项目时, 如果使用了Freemarker/jsp等模版文件, 那么我们需要: Java代码动态打断点 实时动态刷新模版文件的修改, 不用每次重启 1. 使用Maven插件: spring-boot:run spring-boot:run -Dspring-boot
阅读全文
摘要:在Spring Cloud 2020新版里, 可以使用新版的 CircuitBreaker 断路器, 可以配置Fallback, 可以是内部的, 也可以是外部的Fallback. 内部 Fallback 这里搭建一个内部fallback, 配置如下: server: port: 8900 sprin
阅读全文
摘要:微型脚手架, 包含微服务和网关. 包含了简单的Web.
阅读全文
摘要:版本: Spring Cloud 2020.0.3 常见的方法有 实现自己的 DefaultErrorWebExceptionHandler 或 仅实现ErrorAttributes. 方法1: ErrorWebExceptionHandler (仅供示意) 自定义一个 GlobalErrorAtt
阅读全文
摘要:核心关键点: 封装一个DataSource, 重写 getConnection 就可以实现 我们一步一步来看. 环境: Spring Cloud + MyBatis MyBatis常规方式下配置数据源: 使用Spring的Configuration package com.cnscud.cavede
阅读全文
摘要:Dubbo 可以实现的扩展很多, 官方文档在这: https://dubbo.apache.org/zh/docs/v2.7/dev/impls/ (太简单了....) 下面我们实现一个Route Factory, 它会根据参数中的workzone来选择合适的Invoker实例, 可以实现一定程度上
阅读全文
摘要:Dubbo 可以实现的扩展很多, 官方文档在这: https://dubbo.apache.org/zh/docs/v2.7/dev/impls/ (太简单了....) 下面我们实现一个Load Balance, 它会根据参数中的workzone来选择合适的Invoker实例, 可以实现一定程度上的
阅读全文
摘要:此文是一个完整的例子, 包含可运行起来的源码. 此例子包含以下部分: 网关层实现自定义LoadBalancer, 根据Header选取实例 服务中的Feign使用拦截器, 读取Header Feign的LoadBalancer也是用网关一样的实现 使用Web Filter来统一设置header变量,
阅读全文
摘要:现在我们简单地来定制二个 ServiceInstanceListSupplier, 都是zone-preference的变种. 为了方便, 我重新调整了一下项目的结构, 把一些公用的类移动到hello-pubtool 模块, 这样网关项目和Feign项目就能复用一样的类了. A. main和beta
阅读全文
摘要:注意: 因为涉及到配置测试切换, 中间环节需按此文章操作体验, 代码仓库里面的只有最后一步的代码 准备好了微服务, 那我们就来看看网关+负载均衡如何一起工作 新建一个模块hello-gateway, 开启gateway和loadbalancer, pom部分如下: <?xml version="1.
阅读全文
摘要:我们准备一下用于查询姓名的微服务. 首先定义一下服务的接口, 新建一个空的Maven模块hello-remotename-core, 里面新建一个类: public interface RemoteNameService { String readName(int id) ; } 接下来的微服务都实
阅读全文
摘要:最近研究了一下Spring Cloud里面的灰度发布, 看到各种各样的使用方式, 真是纷繁复杂, 眼花缭乱, 不同的场景需要不同的解决思路. 那我们也来实践一下最简单的场景: 区域划分: 服务分为beta(线上预发布环境)和main主生产环境 区域隔离情况 试情况可能有三种选择: main和beta
阅读全文
摘要:最近研究了一下Spring Cloud的灰度发布, 发现方法真是多. 这里先提供一个修改Eureka注册中心里的instance实例的metadata的脚本, 可以方便地用来测试效果. 使用举例: sh eureka.sh BETAZONE-HELLO-REMOTENAME 172.18.0.145
阅读全文
浙公网安备 33010602011771号