自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 资源 (1)
  • 收藏
  • 关注

原创 CSD开发日记(一)-20220517

1. 即时UI设计共享:即时设计 - 可实时协作的专业 UI 设计工具即时设计是一款在线可协作的UI设计工具,是可协作的在线sketch、国内版figma,拥有海量的设计资源与素材,支持导入sketch格式的源文件。支持创建交互原型、获取设计标注、快速切图、团队协作等工作。https://js.design/f/acH1v2?p=alEZRpLAkE2. SQL文件: 1). 分库, 垂直分表, 不水平分表. 四个库: system, tenant, player, resul...

2022-05-17 22:20:31 340

原创 SpringCloud商城day14 秒杀异步下单-2021-10-27

一. 秒杀商品存入缓存1. 客户访问-> seckill服务查询mysql-> seckill_goods表-> 缓存数据到MySQL-> 一是缓解高并发下数据库的查找压力, 二是利用redis的原子性操作避免超卖问题.2.新建服务changgou_service_seckill(1)添加依赖: common-db/ eureka/ order-api/ seckill-api/ goods-api/ amqp/ oauth2(2)添加changgou_servi..

2021-10-27 11:04:35 337

原创 SpringCloud商城day14 订单处理-2021-10-26

一. RabbitMQ延时消息-> 订单处理1. 流程: 调用微信支付api-> 查看订单状态-> 未支付则调用关闭订单api-> 修改订单状态为已关闭order-> 回滚库存goods-> 已支付则做补偿操作(修改订单状态和记录日志)2. 核心: 死信队列-> provider发送的消息不会被立刻消费-> 设定TTL后被consumer消费3. 创建订单时, 发送延迟消息为订单号-> 系统在限定时间内取出消息-> 查询订单支付转态.

2021-10-26 21:36:28 506

原创 SpringCloud商城day13 微信扫码支付-2021-10-26

一. 调用微信支付api-开发文档1. Native支付-> JAVA SDK/DEMO-> 申请微信支付(公众号/提交资料/开户成功/在线签署/)-> 获取appid唯一标识/ mch_id商户号 / key商户秘钥2. 调用思路: 组装API参数-> XML方式发送POST请求-> 到微信URL接口-> 微信以XML方式响应-> 畅购根据结果(支付URL)生成qrcode-> 判断订单状态3. 统一下单: 微信SDK: com.github..

2021-10-26 19:16:14 461

原创 SpringCloud商城day12 分布式解决方案-2021-10-24

一. 本地事务和分布式事务1. ACID: 操作执行原子性(atomicity), 数据库状态一致性(consistency),多线程并发隔离性(isolation),durability(修改数据持久性)2. @Transaction: 只在单体服务中有效, 即本地事务3. 分布式事务: 事务参与者, 服务器,事务管理器在不同节点的不同应用-> 数据一致性 (1) 早期单体服务: 不涉及服务间的调用, 而是服务内操作到访问多个数据库资源 (2) 一...

2021-10-25 18:53:31 228

原创 SpringCloud商城day11 订单-2021-10-24

一. 订单渲染结算页1.用户收件地址查询: 登录人名称-> 收件人地址信息-> 表tb-address(1) com.changgou.user.service.impl.AddressServiceImpl类/*** * 收件地址查询 * @param username * @return */@Overridepublic List<Address> list(String username) { Address address = new A..

2021-10-24 18:36:58 232

原创 (简单)SPU和SKU的区别-2021-10-24

2021-10-24 18:11:57 139

原创 (自用)Zookeeper复习-2021-10-20

一. 安装:(1) docker-compose.yml version: "3.1"services: zk: image: daocloud.io/daocloud/zookeeper:latest restart: always container_name: zk ports: - 2181:2181(2) 进入zk容器内部,进入bin目录执行下面的zk客户端命令 docker ps -> docker exec -it 容器id b

2021-10-20 14:44:03 331

原创 (自用)RabbitMQ简单复习-2021-10-19

RabbitMQ简单复习:一.架构:1. Publisher连接-> Broker(Server)-> VHost->Connection-> channel->Exchange->Queu<-Exchange<-channel<- VHost<- Broker<- Consumer(1) RPC: remote process call远程调用(2) 依赖: amqp-client(3) JAVA客户端口: 5672;.

2021-10-19 22:20:44 129

原创 SpringCloud商城day10 购物车-2021-10-18

一. SpringSecurity权限控制1. 用户授权-> 获取令牌-> 网关鉴权-> 登录角色的权限控制-> JWT自定义数据(角色+权限)-> 访问资源微服务-> 判断令牌的数据-> 普通用户/管理员用户(1). 用户权限加载: com.changgou.user.oauth.config.UserDetailsServiceImpl.java//创建User对象String permission = "salesman, accountan

2021-10-18 17:17:02 361

原创 SpringCloud商城day09 用户认证 -2021-10-17

一.用户认证分析: 登录1. 单点登录: 一处登录, 处处登录SSO(single sign on)(1) 流程: 用户请求 -> 微服务网关 -> 用户/订单/秒杀微服务 -> 访问认证系统 -> 查询/存储在Redis(2) 用户认证的框架: Apache Shiro CAS Spring security2. 第三方登录: 用户第三方已有账号密码 -> 完成本系统的注册登录(1) 第三方认证通用标准: OAUTH协议 -&.

2021-10-17 21:28:41 332 1

转载 (自用)Mybatis-plus简易了解-2021-10-15

一. 测试基本准备:1. Springboot项目: 快速创建Spring Initializer2. 导入依赖: starter 3. yml配置: (1). dataSource四大属性 (2). mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout. StaOutImpl #开启SQL语句打印 4. 实体类: @Data //lombok注解 -> 类的setter

2021-10-15 21:41:23 650

原创 记录第一次使用代码生成器 + SwaggerUI遇到的问题-2021-10-15

一.记录第一次使用代码生成器CodeTemplate+ SwaggerUI遇到的问题:1. 使用Code-template工具: (1) 工具类介绍 (2) 生成的代码结构: (3) swagger.json 规范文件:2. 使用Node.js+Swagger-UI访问 (1) 部署Swagger-ui环境: (2) 启动命令: (3) 注意配置环境变量: (...

2021-10-15 18:08:18 166

原创 SpringCloud商城day08 商品详情页-2021-10-14

一. Thymeleaf入门1. thymeleaf: 页面静态化技术 -> 提前生成静态资源 -> 用户访问时加载到浏览器-> 提高访问效率减少占用资源Thymeleaf is a modern server-side Java template engine for both web and standalone environments.2. SpringMVC整合thymeleaf模块 -> 六种模板3. 创建springboot工程 -> 依赖sta.

2021-10-14 21:15:17 187

原创 (自用)简单总结下Spring组件的记忆方式 -2021-10-14

简单总结下Spring组件的记忆方式:一. 按照开发流程记忆:SpringWeb: 前端JSP/HTML/CSSS -> Resolver解析器SpringMVC: ModelAndView渲染-> controller层-> DispatcherServletSpringContext: 容器bean注入 -> service层常用SpringDAO: DAO层 -> JDBC数据库 -> 事务框架SpringORM: 数据关系映射 -&g...

2021-10-14 10:44:55 434

原创 简单总结下搭建Redis集群步骤 - 2021-10-14

简单总结下搭建Redis集群步骤:详细版入口:redis集群搭建(非常详细,适合新手)_橙子君的博客-CSDN博客_redis集群搭建一. 前提:最少6个redis实例: 因为投票容错机制需要最少3个节点; 因为高可用, 每个节点需要1个从节点;二.步骤:1. 创建6个Redis实例并启动:拷贝redis/bin文件到redis-cluster/redis01-> 删除dump.rdb-> 修改redis.conf(开启cluster-enabed)-> 拷贝5份.

2021-10-14 10:03:50 149

原创 SpringCloud商城day07 商品搜索-2021-10-12

一.关键词查询1. 实现思路:2. search微服务查询接口: com.changgou.search.service.SearchServiceImpl.java(1) Map封装返回结果: 分页功能的实现 Map封装查询条件: 关键字 / 品牌 / 规格 / 销量 / 价格区间..(2) @Service public class SearchServiceImple implemtns SearchServiec{ //注入ES模板类完成.

2021-10-12 22:41:33 173

原创 SpringCloud商城day06 数据同步解决方案-2021-10-11

一.基于Canal, 开发数据监控微服务1. Canal: 阿里开源, java开发, 监控数据库 -> 双机房数据同步 (1) 工作原理: canal -> 伪装成mysql备份机 -> mysql数据改变 -> 数据写入 binary log -> 日志发送到Canal -> canal提取mysql更新数据(2) Canal 环境部署 - LINUX虚拟机:1) mysql开启binlog模式, 值ON已开启, OFF未开启 SH...

2021-10-12 00:20:46 407

原创 VUE引入moment.js插件error moment is not defined-2021-10-11

商城项目Day16 - 秒杀前端一. 报错: Vue页面 moment is not defined 报错404二. 现象: 引入moment.js插件后, 过滤器失效, 前端页面无法识别三. 原因: 网关微服务也要添加一份 static/js/moment.min.js 所有请求都是访问网关, 再转发到相应的微服务, 所有前端页面需要的插件, 需要在网关配置....

2021-10-11 16:27:41 7725

原创 FeignException: Status(401) reading XXXfeign# - 2021-10-11

今日份bug........一. 报错如下:com.netflix.hystrix.exception.HystrixRuntimeException:SecKillOrderFeign#add(String,Long)failedandnofallbackavailable.二. 提示: 401无权限调用SecKillOrderFeign, 但是依赖, 启动类注解, 拦截器, 路径都没问题三. 暂时找不到原因 -> 测试service_seckill微服务内部...

2021-10-11 12:12:15 786 1

转载 (转发)中间件: (通俗理解)-2021-10-10

保存记录下, 原文地址:中间件是什么?如何解释比较通俗易懂? - 知乎中间件: (通俗理解)将具体业务和底层逻辑解耦的组件。大致的效果是:需要利用服务的人(前端写业务的),不需要知道底层逻辑(提供服务的)的具体实现,只要拿着中间件结果来用就好了。举个例子:我开了一家炸鸡店(业务端),然而周边有太多屠鸡场(底层),为了成本我肯定想一个个比价,再综合质量挑选一家屠鸡场合作(适配不同底层逻辑)。由于市场变化,合作一段时间后,或许性价比最高的屠鸡场就不是我最开始选的了,我又要重新和另一家屠鸡场...

2021-10-10 20:40:23 180

原创 SpringCloud商城day05 网站首页广告高可用 - 2021-10-10

一. Lua语言1. C编写脚本语言2. 作用:灵活嵌入应用 -> 扩展和定制功能3. 不提供库, 不适合作为开发独立应用的语言4. 即时编译: JIT项目5. 特点: (1) 面向过程 procedure-oriented (2) 函数式编程 functional-programming (3) 自动内存管理: 通用类型的表table -> 实现数组, 哈希表, 集合, 对象 (4) 语言内置模式匹配 (5) 闭包 (6)...

2021-10-10 18:14:48 135

原创 小知识- (Linux系统命令)Tar & yum - 2021-10-10

一.Tar(Linux系统命令)Unix和类Unix系统上的压缩打包工具,可以将多个文件合并为一个文件,打包后的文件后缀亦为“tar”。tar文件格式已经成为POSIX标准,最初是POSIX.1-1988,当前是POSIX.1-2001。本程序最初的设计目的是将文件备份到磁带上(tapearchive),因而得名tar二. yumYum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基...

2021-10-10 12:20:20 254

原创 SpringCloud商城day04 商品管理-2021-10-09

一. 开源算法Snowflake生成分布式id1. 原因: 数据量庞大 ->分库分表 -> 数据库多实例部署 -> 唯一的全局ID2. UUID: universe unique ID -> 32位长度字符串(1) 缺点: 无排序, 无递增; 字符串存储查询效率低; 存储量大; 传输数据量大; 不可读3. Redis: (1) 单线程特点 -> 原子性 -> INCR / INCRBY (2) 优点:...

2021-10-09 12:00:39 206

原创 rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s)-2021-10-09

今日份BUG..........一.报错: 启动order微服务失败, 消息监听类找不到队列org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException:Failedtodeclarequeue(s):[queue.ordertimeout]二. 原因: 配置的死信队列失效找不到了三. 复习下配置步骤: 1. 创建交换机: exchange.ordert...

2021-10-09 11:44:13 7533

原创 DAY13微信扫码支付BUGS -Nullpoint&ClientException-2021-10-02

今日份小Bug:一. 报错:(1)com.netflix.client.ClientException:Loadbalancerdoesnothaveavailableserverforclient:pay (2) 原因: Pay微服务的的客户端找不到查看配置文件发现在eureka的注册名和PayFeign远程调用的不一致, 前端页面也提示: PayFeign挂掉了 (3) 解决: 修改pay微服务的注册名二. 报错:(...

2021-10-02 17:51:41 152

原创 DAY12分布式事务-User空指针异常-消息队列重复发送-2021-10-02

今日份小BUG...........一. 报错如下:1. Order微服务由于更新任务的机制是, 小于当前时间的数据都会发送到rabbitmq2. 访问 主机:15672 -> 一直产生消息队列无法被消费3. 查看SQL数据库: tb_task表添加的查询任务一直存在没有被删除, tb_task_his表中也每天添加到历史任务4. User微服务空指针异常, UserServiceImpl类执行到148失败5. 解决: 变量名大小写错误, 和订单中封装的u...

2021-10-02 00:48:26 143

原创 DAY12分布式事务AmqpConnectException: java.net.ConnectException: Connection refused - 2021-10-01

1.报错如下: 订单微服务无法连接rabbitMQ发送不了添加tb_task消息org.springframework.amqp.AmqpConnectException:java.net.ConnectException:Connectionrefused:connectatorg.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException2. 原因: 忘...

2021-10-01 11:00:16 135

原创 SpringCloud商城day03 网关微服务和加密算法-2021-09-29

一. 网关微服务Gateway1. 没有网关的问题: (1) 复杂性: 客户端多次请求不同微服务 (2) 跨域请求 (3) 每个微服务独立认证 (4) 难以重构. 合并/拆分服务, 直接通信复杂2. 作用: 授权 / 限流 / 登录 / log日志3.优点: (1) 安全 (2) 易监控 (3) 统一认证授权 (4) 减少客户端与微服务交互次数4. 实现技术: (1) nginx(engine x) (2) netflix(zuul) (...

2021-09-29 22:03:13 357

原创 SpringCloud商城day02 分布式文件存储解决方案-2021-09-29

1. CORS: cross-original resource sharing. 跨域资源共享 (1) http://192.168.200.128:9011/brand https://192.168.200.128:9011/brand(协议不同, 跨域) https://192.168.200.129:9011/brand(IP不同, 跨域) https://192.168.200.128:9012/brand(端口号不同, 跨域) http://192...

2021-09-29 20:05:28 255

原创 (Day11)The Tomcat connector configured to listen on port 9011 failed to start-2021-09-29

商城项目day11之 购物车1. 启动web页面渲染微服务- web_order报错:TheTomcatconnectorconfiguredtolistenonport9011failedtostart.Theportmayalreadybeinuseortheconnectormaybemisconfigured.2. 过程: 电脑睡眠一晚没动, Idea开启状态. 电脑休眠前端口还能使用3. 操作: 打开 CMD...

2021-09-29 10:38:20 466

原创 Springcloud项目第十天-购物车BUGS - 2021-09-28

商城项目第十天之 购物车功能BUG一. 1. 报错: feign.FeignException: status 401 reading CartFeign#list()2. 异常: 添加商品到购物车时, service_config/BaseExceptionHandler 全局异常处理器报错3. 解决: 购物车渲染CartFeign远程调用order_api微服务的方法CartFeign, 没有在启动类中注入 拦截器, 导致无法获得令牌.在启动类注入拦截器FeignInte...

2021-09-28 20:39:22 355

原创 java.lang.IllegalStateException: PathVariable annotation was empty on param 0-2021-09-28

商城项目day10 购物车:1.报错如下: UnsatisfiedDependencyException:Unsatisfied dependency expressed through field 'cartService'; nested exception isError creating bean with name 'com.changgou.goods.feign.SkuFeign': FactoryBean threw exception on...

2021-09-28 09:26:00 267

原创 商城项目day09 - springcloud整合Oauth2: 记录些用postman测试令牌的操作-2021-09-25

商城项目day09 - springcloud整合Oauth2: 记录些用postman测试令牌的操作1.授权码模式拿到令牌内容2. 放入头信息 Authorization : Basic Authhttp协议定义的一种认证方式,将客户端id和客户端密码按照“客户端ID:客户端密码”的格式拼接,并用base64编 码,放在header中请求服务端,一个例子:Authorization:Basic WGNXZWJBcHA6WGNXZWJBcHA=WGNXZWJBcHA6WGNXZWJ...

2021-09-25 15:50:55 329

原创 项目第8天: springcloud微服务商品详情页渲染&静态页面生成-2021-09-24

一. 项目第8天: springcloud微服务商品详情页渲染:1. Changgou_service_page: 将商品的静态详情页面放到openresty - nginx的二级缓存2. 问题: 访问被拒绝3. 原因: 端口错误. ngnix.conf配置文件中用的是默认端口 80, 视频用的是 8081端口(老师做 nginx限流配置时修改了端口)二. 过程:1. 记录我做的傻事:1). 怀疑openresty配置出错, 因为显示连接被拒绝, 所以重装了openresty..

2021-09-24 21:38:22 295

原创 (SpringCloud)openresty - nginx缓存预热失败- 数据库日期出错-2021-09-24

1. openresty - nginx缓存预热失败:配置环境正常: 检查 nginx/nginx.conf 和 ad_update.lua2. 原因: 数据库日期类错误3. 解决: 二级缓存正常

2021-09-24 21:18:40 149

原创 Thymeleaf-Exception evaluating SpringEL expression ‘searchMp keywords‘-2021-09-24

用thymeleaf渲染商品搜索页面, 报错:caused by: ParseException: Exception evaluating SpringEL expression 'searchMp keywords'(template: "search" - line 58, col66)原因: th:value="${searchMap.keywords}"数据回显代码, 需要在url后面拼接 'keyword=', 否则解析不到keywords就报错...

2021-09-24 11:45:53 252

原创 thymeleaf渲染搜索页面(template: “class path resource [templates/serach.html]“)-serach2021-09-23

day08: service_search微服务: 用thymeleaf模板 实现前端搜索页面的渲染1. 报错如下:An error happened during template parsing(template: "class path resource [templates/serach.html]")2. 原因:searchController搜索方法中的传参注解错误, 导致前端无法接收到controller的参数3. 解决方法:把 @PathVariable路...

2021-09-23 17:18:18 240

原创 商城项目第六天之数据同步(广告缓存+商品上架索引导入)及BUG - 2021-09-19

笔记很零散, 除了我别人可能看不懂, 建议别浪费时间!!!!电商商城项目第六天之数据同步解决方案:一. 首页广告缓存更新:1. 思路: (1). index.html发出ajax请求本地缓存 - 访问openresty - nginx - ad_read.lua文件 - 读取redis缓存 (2). canal监控数据库 -- 发送到rabbitmq -- OkHttpClient调用 -- 更新缓存到redis 如下图:2. 重点: service_b...

2021-09-19 12:33:09 233

原创 nginx+lua+redis实现广告缓存 - 2021-09-17

一. 大致流程: client -- Openresty -- Nginx -- lua -- redis -- mysql:二. 环境:linux虚拟机中安装: lua, openresty, nginx1.lualua安装: yum install -y gccyum install libtermcap-devel ncurses-devel libevent-devel readline-develcurl -R -O http://www.lua.org/ftp/lua-...

2021-09-17 16:11:48 309

java基础设计模式模式 - 享元模式.7z

搜集整理的享元模式基本概念

2021-09-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除