java电商商城一条龙服务(12)商城业务个人文章

PUTproduct{"mappings":{"properties":{"skuId":{"type":"long"},"spuId":{"type":"keyword"},"skuTitle":{"type":"text","analyzer":"ik_smart"},"skuPrice":{"type":"keyword"},"skuImg":{"type":"keyword","index":false,"doc_values":false},"saleCount":{"type":"long"},"hasStock":{"type":"boolean"},"hotScore":{"type":"long"},"brandId":{"type":"long"},"catalogId":{"type":"long"},"brandName":{"type":"keyword","index":false,"doc_values":false},"brandImg":{"type":"keyword","index":false,"doc_values":false},"catalogName":{"type":"keyword","index":false,"doc_values":false},"attrs":{"type":"nested","properties":{"attrId":{"type":"long"},"attrName":{"type":"keyword","index":false,"doc_values":false},"attrValue":{"type":"keyword"}}}}}}2.首页项目的页面视图部署在对应的微服务项目的静态资源中

添加thymeleaf的依赖

org.springframework.bootspring-boot-starter-thymeleaf将资料中的静态资源放在微服务工程的对应位置,并在配置文件中加入对应的配置首页页面如果首页样式乱或者没显示两种解决方案:1.可以在product服务config包添加如下配置

packagecom.yxw.gulimall.product.config;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;/***SimpletoIntroduction*className:WebMVCConfig**@authoryanxw*@version2023/12/147:57AM*/@ConfigurationpublicclassWebMVCConfigextendsWebMvcConfigurerAdapter{@OverridepublicvoidaddResourceHandlers(ResourceHandlerRegistryregistry){registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");}}2.去掉index.html路径里面的static

编辑操作hosts文件

192.168.0.88gulimall.com保存成功之后可以直接访问域名,解析到虚拟机的ipTips:有科学上网的测试的时候要先关闭科学上网的软件安装了ES的访问gulimall.com:9200可以看到相应的内容正式搭建项目的域名访问环境1.nginx的配置文件配置nginx

#切换到nginx挂载在本机的配置文件所在的目录cd/mydata/nginx/conf#切换到nginx的分配置文件下复制一份定义gulimall的配置,主配置文件中有include/etc/nginx/conf.d/*.conf;这么一段配置,主配置文件#会包含conf.d目录下的所有配置cd/mydata/nginx/conf/conf.dcpdefault.confgulimall.conf复制一份#在gulimall.conf配置文件中配置我们的配置#配置如下配置niginx的配置文件如下

dockerrestartnginx2.让nginx代理到网关在nginx.conf配置文件中加上如下的配置

#gulimall是上游服务器的组名upstreamgulimall{#网关的地址注意这里是自己本机的ip,不是服务器ipserver192.168.0.112:88;}修改gulimall.conf中的配置

在网关的配置文件中加上以下的配置

-id:gulimall_host_routeuri:lb://mall-productpredicates:-Host=**.gulimall.com这时我们重启网关的时候发现无法访问到相应的页面是由于nginx访问网关的时候丢了host这时我们需要加上如下的配置

proxy_set_headerHost$host;

jconsolejvisualvm我用的是jvisualvm

监控内存泄露,跟踪垃圾回收,执行时内存、cpu分析,线程分析...运行:正在运行的休眠:sleep等待:wait驻留:线程池里面的空闲线程监视:阻塞的线程,正在等待锁

现在服务器nginx目录创建文件夹如下将mall-product服务下的index文件夹上传到刚才创建的static文件夹下,同时删除mall-product服务下的index文件夹修改nginx配置修改nginx后要重启dockerrestartnginx

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过RedisSentinel提供高可用,通过RedisCluster提供自动分区。

application.properties

下面的第一个方法是查询数据位list集合

@Cacheable(value=“dict”,keyGenerator=“keyGenerator”)对方法的结果进行缓存

value属性表示key的前缀

keyGenerator表示key的生成规则,生成规则在配置文件中配置,这里我们使用的是方法的全类名作为key的后缀

第二个方法是添加数据添加数据会造成数据库中数据的变化我们要清除缓存

@CacheEvict(value=“dict”,allEntries=true)清空指定的缓存

value属性表示清空以dict为前缀的所有缓存

allEntries属性表示是否清空所有缓存,默认为false。如果指定为true,则方法调用后将立即清空所有的缓存

1)、springboot2.0以后默认使用lettuce作为操作redis的客户端,它使用netty进行网络通信

2)、lettuce的bug导致netty堆外内存溢出。netty如果没有指定堆外内存,默认使用Xms的值,可以使用-Dio.netty.maxDirectMemory进行设置

解决方案:由于是lettuce的bug造成,不要直接使用-Dio.netty.maxDirectMemory去调大虚拟机堆外内存,治标不治本。

1)、升级lettuce客户端2)、切换使用jedis修改依赖文件,使用jedis作为客户端工具

org.springframework.bootspring-boot-starter-data-redisio.lettucelettuce-coreredis.clientsjedis6.4高并发下缓存失效问题缓存穿透缓存雪崩缓存击穿

在nginx里面放入如下文件

server{

网关配置

修改nginx配置

按照条件查询

GETgulimall_product/_search{"query":{"match_all":{}},"aggs":{"brand_agg":{"terms":{"field":"brandId","size":10},"aggs":{"brand_name_aggs":{"terms":{"field":"brandName","size":10}}}},"catalog_agg":{"terms":{"field":"catalogId","size":10}}}}报错不能加载brandName数据,因为这个数据不支持keyword类型,解决办法修改映射和迁移数据:创建索引mall_product

PUTmall_product{"mappings":{"properties":{"skuId":{"type":"long"},"spuId":{"type":"keyword"},"skuTitle":{"type":"text","analyzer":"ik_smart"},"skuPrice":{"type":"keyword"},"skuImg":{"type":"keyword"},"saleCount":{"type":"long"},"hasStock":{"type":"boolean"},"hotScore":{"type":"long"},"brandId":{"type":"long"},"catalogId":{"type":"long"},"brandName":{"type":"keyword"},"brandImg":{"type":"keyword"},"catalogName":{"type":"keyword"},"attrs":{"type":"nested","properties":{"attrId":{"type":"long"},"attrName":{"type":"keyword"},"attrValue":{"type":"keyword"}}}}}}数据迁移:

POST_reindex{"source":{"index":"gulimall_product"},"dest":{"index":"mall_product"}}完整的dsl语句:

@EnableFeignClients@EnableDiscoveryClient@SpringBootApplicationpublicclassMallAuthServerApplication{publicstaticvoidmain(String[]args){SpringApplication.run(MallAuthServerApplication.class,args);}}application.yml

修改application.yml

thymeleaf:cache:false创建LoginController

创建GulimallWebConfig类

packagecom.yxw.gulimall.auth.config;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.config.annotation.ViewControllerRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurer;/***SimpletoIntroduction*className:GulimallWebConfig**@authoryanxw*@version2023/12/315:22PM*/@ConfigurationpublicclassGulimallWebConfigimplementsWebMvcConfigurer{/**·*视图映射:发送一个请求,直接跳转到一个页面*@paramregistry*/@OverridepublicvoidaddViewControllers(ViewControllerRegistryregistry){registry.addViewController("/login.html").setViewName("login");registry.addViewController("/reg.html").setViewName("reg");}}

THE END
1.快速资讯:短信测压在线使用介绍短信测压免费稳定性测试:检验短信系统在长时间、高强度的短信发送压力下是否会出现崩溃、死机、内存泄漏等异常情况,确保系统能够稳定可靠地运行。像金融机构的短信验证码服务,稳定性至关重要,一旦出现故障可能导致用户无法正常进行交易操作,因此需要通过测压来保障其稳定性。 https://www.jianshu.com/p/dda87f4476c0
2.腾讯科技申请短信平台接口管理专利,提高短信发送过程中的异常调用金融界2024年12月13日消息,国家知识产权局信息显示,腾讯科技(深圳)有限公司申请一项名为“短信平台的接口管理方法、装置、计算机设备和存储介质”的专利,公开号CN 119110296 A,申请日期为2023年6月。 专利摘要显示,本申请涉及一种短信平台的接口管理方法、装置、计算机设备、存储介质和计算机程序产品。方法包括:接收并解https://cj.sina.com.cn/articles/view/1704103183/65928d0f02005s4g8
3.好方案压力测试系统的建设过程枫叶飘飘的技术博客2. 利用数据工厂构造出压测数据,这个就是业务场景的模拟,像阿里做得比较完善,就可以借助 AI 和 BI 的技术手段生成很多压测模型,且基本都接近于现实情况下的业务场景。 3. 通过 Web 控制台,根据压测脚本和压测数据,生成压测任务,推送到压测集群的 Master 节点,再通过 Master 节点推动到上百台的 Slave 节点,然后https://blog.51cto.com/key3feng/12849027
4.短信发送API,即时通讯的利器短信发送API允许企业通过编程方式发送短信,这种自动化的通信方式不仅提高了效率,还增强了与客户的互动。在紧急通知、验证码发送、账户变更、支付验证等方面,短信API都能发挥重要作用。 短信发送API的使用 APISpace的通知短信API、验证码短信API,支持发送有变量和无变量的短信,支持三大运营商,虚拟运营商短信发送,电信级运https://blog.itpub.net/70032578/viewspace-3057154/
5.在线短信压测,惩戒骗子必备在线短信压测,惩戒骗子必备 在线地址:https://www.ceya001.cn/https://www.xc6b.com/qqjs/11440.html
6.短信压力测试v3.0app手机版下载2.在短信接收的过程中也许会出现卡顿现象,会为用户提供一些有用的建议。 3.一键点击可以快速的对手机进行加速,这样就能够优化自己的手机性能。 《短信压力测试v3.0》软件测评: 为用户提供了多种短信模板,用户可以选择相应的短信内容进行发送操作。 在进行短信压测时,需要注意以下几点: 1. 确保测试环境的安全性和稳定https://www.juxia.com/sjwy/ruanjian-574948.html
7.子弹短信超话—新浪微博超话社区导语:子弹短信交流、子弹短信群、社交、好友扩圈,子弹短信软件体验报告、用户反馈、软件使用情况交流,锤友交流社区,欢迎吐槽~ 回复时间排序 c +关注 7uili_667 7月31日 17:14 来自子弹短信超话 短信压力测试 ,主要用于测试手机在极特殊情况下 是否可以正常接收到短信#短信压测# L7uili_667的微博视频 https://www.weibo.com/p/1008086586c02134c92b77c53f85791cf8b79f/super_index
8.性能测试PTS销售指南学习笔记提升产品的口碑,也在压测的过程中会建议给用户使用其他的阿里云的产品,比如像hahs的限流降级以及dts或者引入咨询服务,因为在时间紧迫时会需要投入咨询人力,操作的方法是在刚开始时进行业务的梳理,根据涉及到的核心业务构造对应的数据,比如登录的用户数据,来源数据,电商里面涉及到的产品分类,产品的数据,实施一轮压测完成之https://developer.aliyun.com/article/1085961
9.短信状态报告回调短信服务CR:0206超流速拦截建议降低短信提交的QPS CR:0207压测模式拦截压测模式不实际下发,若需关闭压测模式,请联系火山引擎客服。 CR:0208超流量拦截超出流量管控限制 CR:0212签名拦截请更换签名下发或重新申请符合签名规范的签名 CR:0213重复发送相同内容短时间内,请不要对同一个手机号下发相同的内容 https://www.volcengine.com/docs/6361/171584
10.速云短信测压4.0.6破解版/短信电话测压程序员阿鑫速云短信测压4.0.6破解版_短信电话测压 此版说明 去除收费,去除软件暗桩 使用必看 这个软件暗桩较多(有锁机暗桩,写入文件暗桩,无限弹Dos窗口暗桩等),尽管补丁已经处理了但可能仍有遗漏,为了保护电脑的安全,尽量在虚拟机下使用(需要使用去虚拟化的虚拟机,没有去虚拟化的虚拟机可以站内搜索) https://www.cxyax.com/?post=743
11.告别传统压测:全链路压测在中通的实践分享在线上压测时,有可能会触发到资金扣款或者短信发送等敏感方法,如果大量的压测触发了这类方法,轻则造成骚扰,重则发生严重的资损,类似这样的方法,我们则需要在梳理压测链路时进行识别,并为此类方法加上挡板(Mock),如下图示例,如此当压测探针识别到压测请求(有压测标)时,则会执行我们针对此方法所配置的 Mock 代码,如https://xie.infoq.cn/article/cc37b94311d35b68aa8db9ab1
12.locust使用locust+boomer实现对接口的压测Bingohe很早之前,考虑单机执行能力,使用locust做过公司短信网关的压测工作,后来发现了一个golang版本的locust,性能是python版本的5到10倍以上,但是一直没有机会使用。 最近公司想做一个性能测试平台,技术选型要求和开发的语言一致,即golang,所以我想到了boomer,本文为boomer的使用记录。 https://www.cnblogs.com/Detector/p/11469233.html%20
13.Milvus探究与压测分析请输入下面的图形验证码 提交验证 短信预约提醒成功Milvus探究与压测分析 2024-12-01 01:51 关注 1、背景 最近用到了向量搜索,所以要对milvus进行压测。同时为了更加深入分析压测中遇到的问题,也对milvus的部分源码与文档进行了走读。其中遇到了一些问题与疑惑,我们也直接与milvus社区或开源贡献者沟通。 通过压测,我们http://m.528045.com/article/5ef6496f50.html
14.DGIOT通过多种途径通知告警,如邮件、短信、社交工具等 产品架构? 云压测? dgiot云压测产品是基于dgiot物业物联网平台的一款云计算产品,可以模拟真实业务场景进行全业务场景模拟和全链路数据监控 产品优势? 平台优势? 物联网全业务测试? 全场景测试:采集、传输、解析、存储、展现 https://doc.dgiotcloud.cn/docs/user_manual/docs/pressure_test/pressure_test_ins/
15.python性能测试对手机号绑定进行压测python压测脚本:threadmark用来标记任务的,我在模块方法里面返回了traceNo,表示唯一用户登录接口请求操作,方便开发追踪日志。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 /** * 每个用户先发短信然后绑定手机号,手机号分为148和149切换,后8位于https://www.jb51.net/article/256315.htm
16.吴俊龙严佳奇饿了么全链路压测的实践与体系建设.pdf吴俊龙严佳奇-饿了么全链路压测的实践与体系建设.pdf 31页内容提供方:文人教参 大小:1.74 MB 字数:约8.61千字 发布时间:2020-11-19发布于广东 浏览人气:128 下载次数:仅上传者可见 收藏次数:1 需要金币:*** 金币 (10金币=人民币1元)https://max.book118.com/html/2020/1119/5141012020003030.shtm
17.关于压测某个接口,线程一直上不去的总结OSCHINA最近做压测的时候,发现有个接口的压测,线程数才 20,而其他接口的都相对而言比较大。当时第一反应可能是自己压测错了,试了好几次,发现压测的结果都差不多就是 20. 当时没没有深究原因。 后来老大说有时间让我看看原因。然后我看了下这个接口,压根没什么东西,就 2 条 sql。用这两条 sql 去查询了一下,发现https://my.oschina.net/u/3944601/blog/3053759
18.动态权限多租户数据权限工作流三方登录支付短信RuoYi-Vue 全新 Cloud 版本,优化重构所有功能。基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能。你的 Star ,是作者生发的动力!https://portrait.gitee.com/cnetly/yudao-cloud
19.沃联融合短信平台短信网关云通信短信软件沃联融合短信平台是一款专业的短信综合运营管理软件,独立部署,产品化运营,Swoole协程底层技术,负载高,更稳定,极度降低成本。我们提供短信网关,企信通,短信运营,短信软件,短信平台,企业级短信,云通信等服务,短信平台软件哪家好,短信平台软件,群发短信软件,5G短信平台,发短信https://wowlian.cn/sms
20.短信轰炸机网页版在线短信轰炸机免费短信云呼轰炸机欢迎来到电话测压在线平台,这是一个集电话测压app、电话测压源码、电话测压api、电话测压下载于一体的前沿在线平台,为用户提供基于电话测压的全面解决方案和分析, 特色电话轰炸, 电话测压2022, 电话压测平台, 电话压测网页, 电话压测1.0, 电话压测网站, 艾皇电话测压, 电https://www.brightbikerebel.com/