
微服务
文章平均质量分 61
张俊杰zjj
一个大龄的码农.目前是Java+Python开发,业余时间研究减肥健身养生,后期可能会去做减肥健身博主.
展开
-
Spring Secuirty Oauth2将token换成jwt
代码地址https://gitee.com/zjj19941/ZJJ_Neaten5.10/tree/master/ZJJ_SpringCloud_Oauth2/demo04代码在之前的spring security Oauth2的代码基础上修改引入依赖<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security原创 2022-02-08 18:24:31 · 836 阅读 · 0 评论 -
Spring Secuirty Oauth2实现SSO
什么是SSO单点登录,就好比你有好几个系统,你只需要在其中一个系统登录过一次之后,再访问别的系统就不需要登录了.这就是单点登录.代码地址代码出自图灵学院, 我自己整理了一下,删减了一些无用的代码,整理了整理,https://gitee.com/zjj19941/ZJJ_Neaten5.10/tree/master/ZJJ_SpringCloud_Oauth2/demo06代码实现客户端服务引入依赖<dependencies> <dependency>原创 2022-02-08 18:23:37 · 754 阅读 · 0 评论 -
OAuth2.0基于redis存储Token
引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency> <groupId>org.apache.commons</groupId> &原创 2022-02-07 19:25:12 · 2357 阅读 · 1 评论 -
OAuth2.0用refresh_token更新access_token令牌
概述使用oauth2时,如果令牌失效了,可以使用刷新令牌通过refresh_token的授权模式再次获取access_token。只需修改认证服务器的配置,添加refresh_token的授权模式即可。修改授权服务器配置,增加refresh_token配置@Autowiredprivate UserService userService;@Overridepublic void configure(AuthorizationServerEndpointsConfigurer endpoint原创 2022-02-07 19:24:39 · 7472 阅读 · 1 评论 -
OAuth2.0授权码模式入门Demo
代码地址代码是图灵学院的,我自己学完了之后把代码整理了一下,删掉了无用的代码,然后精简了一下https://gitee.com/zjj19941/ZJJ_Neaten5.10/tree/master/ZJJ_SpringCloud_Oauth2/demo01代码依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-s原创 2022-02-07 19:21:21 · 1876 阅读 · 0 评论 -
OAuth2.0密码模式入门Demo
基于授权码模式去修改:https://www.yuque.com/docs/share/27959146-cdc4-43ec-a96a-c0969e1ac2d7?# 《授权码模式入门Demo》代码地址https://gitee.com/zjj19941/ZJJ_Neaten5.10/tree/master/ZJJ_SpringCloud_Oauth2/demo02代码修改WebSecurityConfig,增加AuthenticationManager@Configurationpubli原创 2022-02-07 19:20:15 · 927 阅读 · 0 评论 -
OAuth2.0优缺点
优点:● 更安全,客户端不接触用户密码,服务器端更易集中保护● 广泛传播并被持续采用● 短寿命和封装的token● 资源服务器和授权服务器解耦● 集中式授权(专门一个服务去做授权认证),简化客户端● HTTP/JSON友好,易于请求和传递token● 考虑多种客户端架构场景● 客户可以具有不同的信任级别缺点:不同的公司都有自己的OAuth2实现方式,会出现兼容性的问题,OAuth2只是一个协议,不是具体的实现,不同的公司的实现方式是不一样的....原创 2022-02-07 19:17:50 · 3251 阅读 · 0 评论 -
Oauth2应用场景
出自图灵学院 我自己整理了一下应用场景原生app授权:app登录请求后台接口,为了安全认证,所有请求都带token信息,如果登录验证、请求后台数据。前后端分离单页面应用:前后端分离框架,前端请求后台数据,需要进行oauth2安全认证,比如使用vue、react后者h5开发的app第三方应用授权登录,比如QQ,微博,微信的授权登录。不使用OAuth的缺点有一个"云冲印"的网站,可以将用户储存在Google的照片,冲印出来。用户为了使用该服务,必须让"云冲印"读取自己储存在Google上的照.原创 2022-02-07 19:17:14 · 2777 阅读 · 0 评论 -
OAuth2.0介绍
OAuth(Open Authorization)是一个关于授权(authorization)的开放网络标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容。OAuth在全世界得到广泛应用,目前的版本是2.0版。OAuth协议:https://tools.ietf.org/html/rfc6749协议特点:● 简单:不管是OAuth服务提供者还是应用开发者,都很易于理解与使用;● 安全:没有涉及到用户密钥等信息,更安全原创 2022-02-07 19:15:19 · 326 阅读 · 0 评论 -
Oauth2的四种授权模式
密码模式密码模式,认证服务器是自己内部的服务器.密码模式可以做企业内部的单点登录,微服务的安全校验. 适用的业务场景 客户端应用(手机app) 是高度受信用的,一般是自己公司开发的app项目。比如说公司有 订单服务 商品服务 会员服务 等等,你要是想访问这些服务就需要认证,你不可能每一个服务都自己去实现一套授权认证系统, 这样一来就把所有的服务的认证功能都独立出一个认证服务出来.我们请求过来了之后可以先去认证服务进行一个认证,如果认证完了拿到一个access_to原创 2022-02-07 19:14:34 · 1747 阅读 · 0 评论 -
Gateway整合Sentinel限流入门demo
概念Gateway是整个应用的大门,是整个集群的入口,我们订单服务集群,商品服务集群等等集群都是由Gateway调用的,那我们其实可以在Gateway访问商品服务集群或者订单服务集群之前来使用sentinel进行流控从 1.6.0 版本开始,Sentinel 提供了 Spring Cloud Gateway 的适配模块,可以提供两种资源维度的限流:route 维度:即在 Spring 配置文件中配置的路由条目,资源名为对应的 routeId自定义 API 维度:用户可以利用 Sentinel原创 2022-02-05 19:44:05 · 963 阅读 · 0 评论 -
Nacos将数据持久化到MySQL5.7.35中
默认情况下,Nacos使用嵌入式数据库实现数据的存储。所以如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,但是Nacos目前支持MySQL的存储。创建数据库并且执行nacos的sql脚本创建一个MySQL的databaseCREATE DATABASE nacos;USE nacos;执行nacos的sql脚本,位置在Linux下的 “nacos/conf/nacos-mysql.sql”,修改原创 2022-02-05 15:49:31 · 2680 阅读 · 0 评论 -
Gateway重定向操作
代码地址https://gitee.com/zjj19941/ZJJ_Neaten5.10/tree/master/ZJJ_Gateway/demo07测试 #设置路由:路由id、路由到微服务的uri、断言 routes: - id: order_route #路由ID,全局唯一,建议配合服务名 uri: lb://mall-order predicates: - Path=/order2/**原创 2022-02-04 18:14:58 · 3875 阅读 · 0 评论 -
Gateway全局过滤器
代码地址https://gitee.com/zjj19941/ZJJ_Neaten5.10/tree/master/ZJJ_Gateway/demo08自定义token校验过滤器代码实现import lombok.extern.slf4j.Slf4j;import org.springframework.cloud.gateway.filter.GatewayFilterChain;import org.springframework.cloud.gateway.filter.GlobalFil.原创 2022-02-04 18:14:28 · 387 阅读 · 0 评论 -
Gateway跨域配置
代码地址https://gitee.com/zjj19941/ZJJ_Neaten5.10/tree/master/ZJJ_Gateway/demo09后端代码配置通过yml配置的方式https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#cors-configurationspring: cloud: gateway: globalcors: cors原创 2022-02-04 18:13:46 · 3569 阅读 · 0 评论 -
Gateway配置断言路由入门demo
网关项目配置 #设置路由:路由id、路由到微服务的uri、断言 routes: - id: order_route #路由ID,全局唯一,建议配合服务名 # uri参数可以直接去指定ip端口,也可以指定负载均衡lb开头 #uri: http://localhost:8020 #目标微服务的请求地址和端口 uri: lb://mall-order #lb 整合负载均衡器ribbon,lo原创 2022-02-02 21:54:34 · 1297 阅读 · 0 评论 -
Gateway通过微服务名称调用到指定服务
弊端说明实际情况下为了安全性考虑,建议 spring.cloud.gateway.discovery.locator.enabled设置为false, 这样就不对外暴露微服务名称,微服务属于内部的服务,没有必要暴露给前端,如果暴露给前端之后,前端调用接口用微服务名称去调用接口的话,那么就会出现一系列维护的问题,比如说前端直接在前的代码写死你微服务名称去调用的,那么后续就不能修改服务名了.代码地址https://gitee.com/zjj19941/ZJJ_Neaten5.10/tree/maste原创 2022-02-02 21:53:15 · 3379 阅读 · 0 评论 -
为什么要使用GateWay
①:没有网关如果没有网关的话,假如说前端工程师要直接连接成百上千的微服务,如果后端给ip端口改了,前端还得跟着动.这样极大增加了前端的工作量.②:使用了网关使用了网关的话,前端直接连接网关,然后根据网关的配置去Nacos里面获取对应的服务器地址去调用.前端只需要在前端代码里面配置网关的地址就行了,不管你后端怎么改服务的ip和端口,这样前端的工作量就大大的降低了.[外链图片转存中…(img-ZMHTbj5j-1643809780823)]...原创 2022-02-02 21:49:46 · 1266 阅读 · 0 评论 -
什么是GateWay
网关作为流量的入口,常用的功能包括路由转发,权限校验,限流等。Spring Cloud Gateway 是Spring Cloud官方推出的第二代网关框架,定位于取代 Netflix Zuul。相比 Zuul 来说,Spring Cloud Gateway 提供更优秀的性能,更强大的有功能。Spring Cloud Gateway 是由 WebFlux + Netty + Reactor 实现的响应式的 API 网关。它不能在传统的 servlet 容器中工作,也不能构建成 war 包。Sprin原创 2022-02-02 21:48:42 · 767 阅读 · 0 评论 -
SpringCloudAlibaba整合Seata入门demo
项目技术SpringCloudAlibaba Nacos Seata Mysql Feign代码地址这个代码我是基于 图灵学院 的项目改的, 原来的项目代码演示下单,扣库存,扣账户金额,一系列的业务代码,我感觉太臃肿了,其实分布式事务无外乎就是多个服务分别进行写操作多个mysql库,要么同时写入成功要么同时写入失败.我把业务代码都删了,直接用最简单的方式演示多个微服务分别操作不同的数据库,要么同时insert成功,要么触发异常都不会写进数据,不会出现一个库insert进去数据,一个库没有inse原创 2022-02-02 18:31:55 · 1731 阅读 · 0 评论 -
Linux下Nacos 的单机方式快速部署
出自 拉勾教育下载第一步,访问 Nacos GitHub:https://github.com/alibaba/nacos/releases/获取 Nacos 最新版安装包 nacos-server-1.4.0.tar.gz。第二步,上传 nacos-server-1.4.0.tar.gz 到 CentOS 系统,对安装包解压缩。上传到Linux并解压[root@server-1 local]# tar -xvf nacos-server-1.4.0.tar.gz解压后 Nacos 目录结原创 2022-01-30 14:57:04 · 1091 阅读 · 0 评论 -
SpringCloudAlibaba环境使用Nacos非常入门的demo
代码代码地址https://gitee.com/zjj19941/ZJJ_Neaten5.10/tree/master/ZJJ_Nacos/nacos-spring-boot-config-example从官网弄来的,自己简单改了改 ,很简单的案例,pom依赖 <properties> <nacos-config-spring-boot.version>0.2.1</nacos-config-spring-boot.version>原创 2022-01-15 19:26:05 · 499 阅读 · 0 评论 -
Nacos原生sdk入门操作
读取server上的配置我这里图省事,直接写到启动类run方法里面了, 实际工作中你们需要写到Listener里面import com.alibaba.nacos.api.NacosFactory;import com.alibaba.nacos.api.config.ConfigService;import com.alibaba.nacos.api.config.listener.Listener;import com.alibaba.nacos.api.exception.NacosEx原创 2022-01-15 19:24:56 · 636 阅读 · 0 评论 -
Nacos非常入门的demo
码云代码地址https://gitee.com/zjj19941/ZJJ_Neaten5.10/tree/master/ZJJ_Nacos/nacos-config-demo入门代码编写 <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</arti原创 2022-01-15 19:22:57 · 738 阅读 · 0 评论 -
Feign从http调用改成基于dubbo协议调用
说明把已经有的feign接口直接改成通过dubbo协议直接调用Dubbo Spring Cloud 提供了方案,即 @DubboTransported 注解,支持在类,方法,属性上使用。能够帮助服务消费端的 Spring Cloud Open Feign 接口以及 @LoadBalanced RestTemplate Bean 底层走 Dubbo 调用(可切换 Dubbo 支持的协议),而服务提供方则只需在原有 @RestController 类上追加 Dubbo @Servce 注解(需要抽取接口)即原创 2022-01-13 21:47:07 · 3146 阅读 · 0 评论 -
feign拦截器
概述有的时候业务场景是不走正常路线的,业务场景千奇百怪的需求都有, 有的时候权限校验需要在网关那里统一鉴权,有的时候就需要下放到某个微服务去处理(不在网关那里统一鉴权)通常我们调用的接口都是有权限控制的,很多时候可能认证的值是通过参数去传递的,还有就是通过请求头去传递认证信息,比如 Basic 认证方式。 接口鉴权Feign 中我们可以直接配置 Basic 认证@Configuration // 全局配置public class FeignConfig { @Bean原创 2022-01-13 12:37:25 · 7155 阅读 · 0 评论 -
Feign日期格式出现精度问题 *
问题原因生产者传的日期navDate为 2020年4月30日 , 然后消费者接收为2020年4月29日解决办法1 LocalDate用LocalDate传输navDate 是下面的格式{ "code": "0000", "message": "查询机构公募资产信息成功", "data": { "totalAssets": "3,934.73", "totalProfit": "117.90", "totalIncome": "原创 2020-09-28 10:02:37 · 519 阅读 · 0 评论 -
Feign开启日志
配置和说明配置feign出于性能考虑,默认是没有日志的,需要手动开启.package com.tuling.mall.feigndemo.config;import com.tuling.mall.feigndemo.interceptor.FeignAuthRequestInterceptor;import feign.Contract;import feign.Logger;import feign.Request;import feign.auth.BasicAuthReques原创 2022-01-12 20:43:22 · 2371 阅读 · 0 评论 -
非SpringCloud项目使用原生feign调用
案例 出自 图灵学院,我自己学了一下,然后整了了一下pom依赖 <!-- feign调用依赖 --> <dependency> <groupId>com.netflix.feign</groupId> <artifactId>feign-core</artifactId> <version>8.18.0</ve原创 2022-01-12 20:27:16 · 1159 阅读 · 0 评论 -
什么是 SpringCloud Alibaba
出自 SpringCloud Alibaba 实战 老齐为什么要掌握微服务架构?架构圈有句名言“任何脱离场景的架构设计都是耍流氓”。没错,在分布式架构演进的几十年过程中出现了几十种架构模式,但目标只有一个,解决上一代架构遗留的各种问题。微服务架构也不例外,随着互联网、物联网的广泛应用,高并发应用程序在数量与体量上都在以指数级提高,传统的单体应用、SOA 等架构已经不足以支撑新环境对应用性能与可靠性的要求。早些年我们在工行开发系统时,那时还在使用基于 ESB(企业服务总线)的 SOA 架构推进应用开.转载 2021-09-24 15:59:10 · 179 阅读 · 0 评论 -
如何实现服务注册与发现?
如何实现服务注册与发现?(一)转自 分布式技术原理与实战45讲邴越(二)如何实现服务注册与发现?在分布式服务中,服务注册和发现是一个特别重要的概念,为什么需要服务注册和发现?常用的服务发现组件有哪些?服务注册和发现对一致性有哪些要求呢?下面我们就来学习服务发现相关的知识。(三)为什么需要服务注册和发现分布式系统下微服务架构的一个重要特性就是可以快速上线或下线,从而可以让服务进行水平扩展,以保证服务的可用性。假设有一个电商会员服务,随着业务发展,服务器负载越来越高,需要新增服务器。如果没有服务注原创 2021-02-03 10:41:22 · 917 阅读 · 0 评论 -
为什么微服务需要API网关
为什么微服务需要API网关(一)转自 拉勾教育分布式技术原理与实战45讲 - 邴越(二)为什么微服务需要API网关对网关我们并不陌生,网关的概念来源于计算机网络,表示不同网络之间的关口。在系统设计中,网关也是一个重要的角色,其中最典型的是各大公司的开放平台,开放平台类网关是企业内部系统对外的统一入口,承担了很多业务,比如内外部数据交互、数据安全、监控统计等功能。在微服务架构中,API 网关的作用和开放平台等传统网关又有一些不同,下面一起来看一下微服务中 API 网关的相关知识。****为什么需要原创 2021-02-03 10:00:15 · 396 阅读 · 0 评论