Spring Cloud Gateway翻译

摘要: 本文主要对Spring Cloud Gateway v2.0.0.M3原文地址 版本文档进行翻译,持续更新至稳定版本,然后公布。

查看更多

中小型互联网公司微服务实践-经验和教训

上次写了一篇文章叫Spring Cloud在国内中小型公司能用起来吗?介绍了Spring Cloud是否能在中小公司使用起来,这篇文章是它的姊妹篇。其实我们在这条路上已经走了一年多,从16年初到现在。在使用Spring Cloud之前我们对微服务实践是没有太多的体会和经验的。从最初的开源软件云收藏来熟悉Spring Boot,到项目中的慢慢使用,再到最后全面拥抱Spring Cloud。这篇文章就给大家介绍一下我们使用Spring Boot/Cloud一年多的经验。

查看更多

并发编程总结之同类容器和异步容器

一. 同步类容器

1.1 同步类容器都是线程安全的,但在某些场景下可能需要加锁来保护复合操作
复合操作如:

  • 迭代(反复访问元素,遍历容器中所有的元素),
  • 跳转(根据指定的顺序找到当前元素的下一个元素),以及条件运算。

    查看更多

Spring Boot中自定义注解+AOP实现主备库切换

摘要: 本篇文章的场景是做调度中心和监控中心时的需求,后端使用TDDL实现分表分库,需求:实现关键业务的查询监控,当用Mybatis查询数据时需要从主库切换到备库或者直接连到备库上查询,从而减小主库的压力,在本篇文章中主要记录在Spring Boot中通过自定义注解结合AOP实现直接连接备库查询。

查看更多

并发编程之ThreadLocal与单例的推荐写法

摘要:本文结合最近网关项目代码重构,总结介绍了ThreadLocal是一种多线程间并发访问变量的解决方案,用空间换时间,并用代码示例说明,还介绍了什么是单例以及单例的推荐两种写法分别是静态内部类写法和dubbl check instance的写法,扩展介绍了其它懒汉,枚举,饿汉的写法等。

查看更多

Mybatis代码生成+分页+Mapper继承扩展

摘要 本篇文章主要介绍使用mybatis-gennerator快速生成代码,但是每次生成的Mapper或接口都会覆盖自定义的Mapper,因此介绍了Mapper接口的继承方式解决,还介绍了如何使用分页工具使用pagehelper结合Mybatis快速实现分页。

一. mybatis-gennerator

1.1 mybatis-gennerator自动生成代码

1.1.1 mybatis-gennerator的安装

Mybatis-Generator的下载地址:https://github.com/mybatis/generator/releases

  1. 在Eclipse安装mybatis-gennerator插件。

https://marketplace.eclipse.org/content/mybatis-generator

查看更多

Spring Boot杂谈总结(一)

摘要 本篇文章主要介绍在Spring Boot中使用Fastjson代替Jackson,以及实现自己的自定义异常和扩展Spring MVC全局异常解析器,以及为了给前端测试提供接口文档Spring Boot集成swagger,以及集成swagger遇到问题的处理。

一.Spring Boot中使用Fastjson代替Jackson

1.1 为什么使用Fastjson代替Jackson

Jackson最主要的原因是Jackson在处理对象之前的循环嵌套关系时不便。什么是对象间的循环嵌套?比如A有一个List,B对象里又有一个A对象,当然返回A对象的Json字符串时,如果是Jackson就会发生异常,因为Jackson天生不具备处理这种关系的能力,而Fastjson正好具备了这种能力。

如果你用的是 Jackson,可以使用相应的注解来支持对象间的循环嵌套。可以百度Jackson循环嵌套。

查看更多

自研网关纳管Spring Cloud(一)

摘要: 本文主要从网关的需求,以及Spring Cloud Zuul的线程模型和源码瓶颈分析结合,目前最近一段时间自研网关中间件纳管Spring Cloud的经验汇总整理。

一.自研网关纳管Spring Cloud的原因

1.1 为什么要自研网关

1.网关配置实时生效,配置灰度,回滚等
2.网关的性能,特别是防刷,限流,WAF等
3.动态Filter ,目前Zuul可以做到动态Filter,Filter配置下发,实时动态Filter
4.对网关的监控,告警,流量调拨,网关集群。
5.流程审计,增加Dsboard便捷的操作。

查看更多

Spring Cloud Zuul遗失的世界(三)

摘要: 接着上一篇《Spring Cloud Zuul遗失的世界(二)》,本文主要介绍Netflix Zuul core模块的Filter链的设计和Fifter Loader和Filter Manager相关代码的设计与分析。

查看更多

Spring Cloud Zuul遗失的世界(二)

摘要: 接着上一篇《Spring Cloud Zuul遗失的世界(一)》,ZuulController继承了ServletWrappingController,将当前应用中的ZuulServlet直接包装为一个Controller,暴露为入口访问,在本篇文章中介绍etflix-zuul-core的代码Zuul的执行的生命周期等。

一.Netflix zuul core源码分析

com.netflix.zuul.http.ZuulServlet是ZuulFilter链执行的入口,通过service方法,提取请求到RequestContext,然后通过调用ZuulRunner,依次按顺序执行每种类型的Filter,完成整个Filter的生命周期,架构图如下所示。

查看更多

Spring Cloud Zuul遗失的世界(一)

摘要: Zuul作为java网关届的鼻祖,2016年自研网关中间件的时候,对其源码看了很多次,经过两大互联网公司中间件的洗礼之后,目前轮到自己设计一个网关中间件纳管Spring Cloud。最近抽空把自己的理解,备注一下。由于Spring cloud整合Zuul的代码过多。本文主要介绍Spring Cloud对Netflix Zuul高度抽象封装整合部分。即spring-cloud-netflix-core的代码。

查看更多

《Spring Cloud中国社区上海网关专题会议》

网关在微服务中的地位尤其重要,如果网关挂了或者出现任何抖动,用户请求的流量将会损耗,将会造成巨大的损失。因此Spring Cloud中国社区联合上海秦苍科技,走进企业畅聊Spring Cloud实战经验,以及网关经验。

一.会议内容

1.主题《Spring Cloud中国社区上海网关专题》
2.时间:2017年8月20,会议方式:闭门会议
3.地点:上海市浦东新区峨山路91弄陆家嘴软件园9号楼(北楼)8楼
4.主办方Spring Cloud中国社区+上海秦苍科技
5.预计参会人数: 40-50人之间,先到先得,名额满关闭报名通道。
6.分享方式(分享人分享+讨论+头脑风暴)

查看更多