Spring Cloud 微服务架构学习笔记与示例
本文示例基于Spring Boot 1.5.x实现,如对Spring Boot不熟悉,可以先学习我的这一篇:《Spring Boot 1.5.x 基础学习示例》。关于微服务基本概念不了解的童鞋,可以先阅读下始祖Martin Fowler的《Microservice》,本文不做介绍和描述。
一、分布式服务框架的发展1.1 第一代服务框架 代表:Dubbo(Java)、Orleans(.Net)等
特点:和语言绑定紧密
1.2 第二代服务框架 代表:Spring Cloud等
现状:适合混合式开发(例如借助Steeltoe OSS可以让ASP.Net Core与Spring Cloud集成),正值当年
1.3 第三代服务框架 代表:Service Mesh(服务网格) => 例如Service Fabric、lstio、Linkerd、Conduit等
现状:在快速发展中,更新迭代比较快
1.4 未来(目测不久)主流的服务架构和技术栈
基础的云平台为微服务提供了资源能力(计算、存储和网络等),容器作为最小工作单元被Kubernetes调度和编排,Servic ...
Springcloud 配置 | 史上最全,一文全懂
疯狂创客圈 经典图书 : 《Netty Zookeeper Redis 高并发实战》 面试必备 + 面试必备 + 面试必备 【博客园总入口 】
疯狂创客圈 经典图书 : 《SpringCloud、Nginx高并发核心编程》 大厂必备 + 大厂必备 + 大厂必备 【博客园总入口 】
入大厂+涨工资必备: 高并发【 亿级流量IM实战】 实战系列 【 SpringCloud Nginx秒杀】 实战系列 【博客园总入口 】
Springcloud的性能问题Springcloud 原始的配置,性能是很低的,大家可以使用Jmeter测试一下,QPS不会到50。要做到高并发,需要做不少的配置优化,主要的配置优化有以下几点:
Feign 配置优化
hystrix配置 优化
ribbon 优化
Servlet 容器 优化
Zuul配置 优化
Servlet 容器 优化默认情况下,Spring Boot 使用 Tomcat 来作为内嵌的 Servlet 容器,可以将 Web 服务器切换到 Undertow 来提高应用性能,Undertow 是红帽公司开发的一款基于 NIO 的高性能 Web 嵌入 ...
Springcloud学习笔记之微服务之间互相调用时token传递问题
微服务之间调用时时常遇到需要将服务A的token传递给服务B的情况,如果每个服务调用单独写就太僵硬了,之前试过自己写AOP去处理这个问题,功能上虽然没问题,但是总感觉比较low,最近在解决另外一个问题时,意外学到了一个解决方法。
这里贴一下核心代码
12345678910111213141516171819202122232425262728293031@Slf4j@Servicepublic class FeignServiceImpl implements FeignService { @Autowired private ConfigurableEnvironment environment; @Autowired private FeignClientRequestInterceptor requestInterceptor; private final Feign.Builder nameBuilder; @Autowired public FeignServiceImpl(Decoder decoder, Encoder encoder, Clie ...
eureka分布式框架demo(springboot、springcloud、Feign、zuul、Mybatis)
eureka分布式框架,内含以下模块:eureka server、zuul 网关、commons 工具包、pojos 实体类、base服务提供者、order 服务提供者、web 服务消费者
eureka_demo项目介绍
eureka分布式框架,内含以下模块:
eureka server
zuul 网关
commons 工具包
pojos 实体类
base 服务提供者(集成Mybatis)
order 服务提供者(集成Mybatis)
web 服务消费者
软件架构
eureka分布式框架、集成sringboot、springcloud、Mybatis
使用说明
创建库表,在项目doc目录下有对应的sql文件然后修改server_base和server_order中的数据库链接order服务中创建了两个启动文件,端口不一样,记得配置两个启动即可测试负载 (Intellij Idea)。启动顺序:eureka -> zuul -> base -> order -> web启动完成打开页面访问:http://localhost:7070/ 查看eureka管 ...
springboot springcloud vue 微服务分布式 activiti 前后端分离
代码介绍 ————-
本商品为 :springcloud + Springboot 微服务\分布式 工作流 前后分离 + 跨域 版本 (权限控制到菜单和按钮)
后台框架 :springcloud Greenwich.SR1 + springboot 2.1.4 + activiti6.0.0 + mybaits + maven + json 接口
前端页面 :html +vue.js 形式 jquery ajax 异步跨域 json 格式数据交互 前后分离,前后台分开部署
特别注意 :前端用的vue.js, 就是html页面引入vue.js形式, 用tomcat部署运行,更适合后台开发者
手机功能 :IM、工作流任务管理审批,站内信,上传头像,修改资料,好友管理 等
核心技术 —————–
1.代码生成器:(单表、主表、明细表、树形表,快速开发利器)
freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块
2.多数据源:(支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源
3.阿里数据库连接池dr ...
主要是为了方便自己复习,所以记录一下。
主要是为了方便自己复习,所以记录一下。
01 建父工程+idea设置02 重构-提取通用模块03 Eureka04 Eureka集群05 微服务信息完善06 服务发现Discovery07 Eureka自我保护08 zookeeper下载安装配置09 zookeeper注册中心10 consul11 Ribbon、OpenFeign12 Hystrix断路器13 服务监控hystrixDashboard14 gateway新一代网关15 springcloud config16 springcloud bus 消息总线17 Spring Cloud Stream
学习代码:https://gitee.com/JayinChan/demo2020
待续…
springcloud安全控制token的创建与解析
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374import io.jsonwebtoken.Claims;import io.jsonwebtoken.Jwts;import io.jsonwebtoken.SignatureAlgorithm;import org.springframework.stereotype.Service;import javax.crypto.spec.SecretKeySpec;import java.security.Key;import java.util.Base64;import java.util.UUID;/** * Create by liping on 2018/9/25 */@Servicepublic class JWTService { private static final Stri ...
vue+springboot前后端分离实现单点登录跨域问题解决方法
本文章向大家介绍vue+springboot前后端分离实现单点登录跨域问题解决方法,主要包括vue+springboot前后端分离实现单点登录跨域问题解决方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
最近在做一个后台管理系统,前端是用时下火热的vue.js,后台是基于springboot的。因为后台系统没有登录功能,但是公司要求统一登录,登录认证统一使用.net项目组的认证系统。那就意味着做单点登录咯,至于不知道什么是单点登录的同学,建议去找一下万能的度娘。
刚接到这个需求的时候,老夫心里便不屑的认为:区区登录何足挂齿,但是,开发的过程狠狠的打了我一巴掌(火辣辣的一巴掌)。。。,所以这次必须得好好记录一下这次教训,以免以后再踩这样的坑。
我面临的第一个问题是跨域,浏览器控制台直接报CORS,以我多年开发经验,我果断在后台配置了跨域配置,代码如下:
123456789101112131415@Configurationpublic class CorsConfiguration { @Bean public WebMvcCo ...
token验证_JAVA架构笔记——1.SpringCloud中Token验证
一.简述token其实就是一个身份标识,或者说是一个身份牌,因为几乎所有的应用需要注册登陆,当我们登陆成功的时候,就要有一个登录成功的身份牌,这样那些没有身份牌的访问就会被服务器给拦截掉无法访问,用来过滤非法请求。
以前session的做法毕竟比较局限,而且当我们微服务,多实例的时候,session之间是不能够共享的,我们总不能使用rtc多个实例间调用session验证是否登陆吧? 所以我们使用验证token的方式去校验请求合法性。
二.创建项目新建Maven项目,在父目录下新建model
目录结构
suns下pom.xml
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311 ...
zuul网关升级gateway问题记录
最近在做spring cloud的网关升级,遇到了各种各样奇怪的问题,在此做个记录,以防后面在遇到类似问题,好有个解决方案。
也希望能够对一起在技术道路上摸爬滚打的同道有所帮助。
一、启动报错问题一:spring-cloud-starter-gateway和spring-boot-starter-web产生冲突pom.xml配置文件:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE</version> <relativePath/> <!-- lookup par ...