
微服务
Pingszi
这个作者很懒,什么都没留下…
展开
-
pingssys-springboot+dubbo+mybatisplus数据过滤
1.问题本人在为pingss-sys脚手架(项目地址)编写WMS(仓库管理系统)时,遇到如下需求:一个库有很多仓库,每个仓库也有很多客户。当用户选择某个仓库登录后,就只能操作这个仓库的数据,而某个客户所属的用户登录后,也只能操作这个客户的数据,这就需要在操作数据时对数据进行过滤(前提是所有的业务表都有相同的仓库编码和客户编码两个字段),当然也有部分基础数据又是不能过滤的;思路最简...原创 2020-01-09 10:09:43 · 1115 阅读 · 0 评论 -
pingssys-dubbo本地存根(stub)缓存前置(Guava Cache堆缓存)
1.背景环境springboot-2.1.1 + dubbo-2.6.5上一篇使用了redis分布式缓存缓存用户信息,但是jwt每次请求都需要获取用户信息,使用分布式缓存仍然不够快,更换成java堆缓存,使用Guava Cache2.缓存的基本知识概念java:堆缓存->堆外缓存->磁盘缓存->分布式缓存缓存回收策略A.基于空间:缓存设置了存储空间,达...原创 2019-04-10 14:36:56 · 2108 阅读 · 0 评论 -
pingssys-dubbo2.6.5升级为2.7.x
1.背景2.7.0更新说明dubbo从2.7.0开始包名从com.alibaba.dubbo改为org.apache.dubbo简化的URL配置元数据中心使用外部化配置服务治理规则使用异步API2.步骤升级包//**旧版本<dubbo-spring-boot-starter.version>0.2.1-SNAPSHOT</dubbo-sprin...原创 2019-04-11 11:59:25 · 3032 阅读 · 0 评论 -
jwt无状态权限认证
1.背景在开发pingss-sys脚手架(项目地址)时,需要在微服务分布式环境中管理权限。有两种比较通用模式:基于session,把session序列化,以实现多系统的session共享。可以采用shiro+redis实现,有现成的jar可使用基于jwt,使用无状态的权限认证鉴于jwt无状态的权限认证在多个平台下适用性更好,本人采用了此种模式,结合shiro实现2.思路3....原创 2019-04-17 14:19:10 · 3179 阅读 · 4 评论 -
jwt无状态权限认证(RefreshToken)
1.背景在开发pingss-sys脚手架(项目地址)时,需要在微服务分布式环境中管理权限。上一篇写了基本的jwt无状态权限认证,但是存在两个问题生成的token如果过期时间太短,则每次到期后,都需要用户重新登录生成的token如果过期时间太长,由于token签发后,在有效期内无法注销,存在安全隐患本篇使用RefreshToken+redis增加安全性2.思路用户登录成功生...原创 2019-04-17 14:22:22 · 8177 阅读 · 3 评论 -
jwt无状态权限认证(pings-shiro-jwt)
pings-shiro-jwt简介pings-shiro-jwt是基于jwt和shiro的无状态权限认证工具,可实现如下两种认证方式:access token无状态权限认证原理优点实现简单不外部依赖运行环境如果多个系统之间用户信息和配置的secret相同,某个系统签发的token即可访问所有其它的任意系统问题如果token过期时间太短,则每次到期后,都需要用户重新登...原创 2019-05-22 16:20:16 · 2358 阅读 · 0 评论 -
TIDB-TIDB入门
简介TIDB文档TiDB 是一个的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合传统的RDBMS和NoSQL的特性。TiDB兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。TiDB 的目标是为OLTP和OLAP 提供一站式的解决方案。特性高度兼容 MySQL水平弹性扩展分布式事务真...转载 2019-05-30 18:00:28 · 3154 阅读 · 0 评论 -
Spring RestTemplate源码分析
1.问题本人在为pingss-sys脚手架(项目地址)写测试用例时,需要传送多项参数。在post请求中接收参数的方式:@PostMapping(value = "/save")public ApiResponse save(User entity)此方式参数体必须为"name=test&sex=1"格式,但是在TestRestTemplate传送参数时,如果参数体为一个实体类...原创 2019-07-24 16:00:15 · 1149 阅读 · 0 评论 -
Spring RestTemplate源码走读
1.RestTemplate源码走读A.TestRestTemplateTestRestTemplate只是封装了RestTemplate,直接调用RestTemplate的方法public <T> ResponseEntity<T> exchange(...) { return this.restTemplate.exchange(...);}B....原创 2019-07-22 16:13:46 · 1039 阅读 · 0 评论 -
pingssys-dubbo本地存根(stub)缓存前置(redis缓存)
1.背景本人在开发pingss-sys脚手架(项目地址)的时候,使用了jwt无状态权限认证。每个用户请求,都需要对比用户的token,是否有权限访问对应的资源,访问相当频繁,如果每次都访问provider,将耗费相当多的资源,本人觉得应该使用缓存。由于使用了微服务架构,缓存的用户数据可能会有多个客户端都访问,考虑使用redis分布式缓存。环境springboot-2.1.1 + dubbo-...原创 2019-04-04 17:05:16 · 2286 阅读 · 0 评论 -
sanic-jwt
1.文档地址sanic-jwt2.开始使用示例from sanic_jwt import Initializeasync def authenticate(request): return dict(user_id='some_id')app = Sanic(__name__)Initialize(app, authenticate=authenticate)两个...原创 2019-03-22 11:42:02 · 3762 阅读 · 2 评论 -
pingssys-umi基础
1.umi简介一个可插拔的企业级react应用框架。umi支持路由功能,支持路由级的按需加载。配以完善的插件体系 ,覆盖从源码到构建产物的每个生命周期,支持各种功能扩展和业务需求。umi介绍2.安装部署安装安装nodejs安装yarn:npm i yarn tyarn -g安装umi:yarn global add umi查看:umi -v运行umi g(umi ...原创 2019-02-26 14:26:03 · 2589 阅读 · 2 评论 -
dubbo简介
1.入门1.1.背景单一应用架构(ORM)垂直应用架构(MVC)分布式服务架构(PRC)流动计算架构(SOA)1.2.架构dubbo架构整体说明构架简介Provider 暴露服务的服务提供方Consumer 调用远程服务的服务消费方Registry 服务注册与发现的注册中心Monitor 统计服务的调用次数和调用时间的监控中心1.3.可用API配置(o...转载 2019-01-21 16:29:56 · 938 阅读 · 0 评论 -
dubbo配置
1.配置优先级优先级方法级接口级全局配置消费方提供方建议:在Provider端尽量多配置Consumer端属性2.常用配置项优化集群容错定义集群容错说明当有多个服务提供方时,将多个服务提供方组织成一个集群,并伪装成一个提供方。dubbo会根据Router(路由)和LoadBalance(负载均衡)策略选择一个服务调用,如果调用失败,则会重选模式F...原创 2019-01-21 16:31:22 · 2194 阅读 · 0 评论 -
dubbo微服务入门示例
1.目标搭建dubbo微服务基础环境并编写示例环境(docker镜像)centos7服务器zookeeper单机版本:Registry,服务注册中心dubbo-admin后台管理:Monitor,统计服务和调用次数,调用时的监控中心系统spring-dubbo-api:定义接口,方便provider和consumer端使用,避免重复编码spring-dubbo-provi...原创 2019-01-21 16:33:26 · 1168 阅读 · 0 评论 -
pingssys-开发环境搭建
1.目标本项目为dubbo微服务系统,使用zookeeper做为服务注册中心,使用mysql数据库,使用redis内存数据库做为缓存;本文介绍zookeeper,mysql,redis服务的搭建,全部使用docker方式;2.步骤创建自定义网络,方便容器间之间相互通信docker network lsdocker network create ping-sysmysql数据库服...原创 2019-02-28 16:03:51 · 1988 阅读 · 0 评论 -
pingssys-自动化部署
1.目标本文介绍PingsSys微服务脚手架的docker方式部署;2.步骤jenkins持续集成部署步骤:运行jenkins容器手动触发使用jenkins从github获得pingsSys项目如果有修改,则下载到本地构建:后台:通过maven构建为war包前端:通过node构建为静态资源通过ssh把war包/静态资源发送到远程服务器执行shell脚本,删除原...原创 2019-02-28 16:05:30 · 2160 阅读 · 0 评论 -
pingsSys-微服务脚手架
1.概述pingsSys是一款微服务框架脚手架。采用前后端分离设计,连接无状态,前端页面采用ant design pro脚手架进行开发。本人会利用业务时间,持续更新。前端:前端统一采用基于ant design pro脚手架的react框架;服务端:准备实现以下几个版本:javadubbo + springboot版本;spring cloud + springboot版本;...原创 2019-02-26 14:23:55 · 2235 阅读 · 0 评论 -
pingssys-ant design pro基础
1.pro简介Ant Design Pro是一个后台前端/设计解决方案,整合umi + dva + antpro说明2.安装部署下载:git clone --depth=1 https://github.com/ant-design/ant-design-pro.git demo安装依赖:npm install启动本地开发服务器:npm start编译:npm run buil...原创 2019-02-26 14:24:46 · 2051 阅读 · 0 评论 -
pingssys-dva基础
1.dva简介dva是一个基于redux和redux-saga的数据流方案,额外内置了react-router和fetchdva说明2.安装部署安装安装:npm install dva-cli -g查看:dva -v运行创建新应用:dva new demo启动本地开发服务器:npm start编译:npm run build3.dva概念A.数据流向...原创 2019-02-26 14:25:22 · 1968 阅读 · 0 评论 -
常用微服务框架
1.微服务简介定义微服务架构提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合。微服务架构是一种将单应用程序作为一套小型服务开发的方法,每种应用程序都在其自己的进程中运行,并与轻量级机制进行通信。核心要素服务注册服务发现路由熔断降级分布式配置优点降低民单个服务复杂度将原来偶合在一起的复杂业务拆分为单个服务,规避了原本复杂度无止境的积累。每一个...原创 2019-01-21 16:27:33 · 8204 阅读 · 0 评论