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.短信测压短信测压平台是一款特别好用的手机性能测试软件,大家可以在这里体验非常优质的辅助工具,只需要输入你的手机号码就可以在这里进行模拟短信的发送,帮助大家节省了很多的时间,随时可以在这里检测自己的手机反应速度,不断的提升大家的性能,在接收到短信的时候会更加顺畅。 软件简介 1.帮助大家进行电话号码测试,能够管理好你https://www.zxiyun.com/12750.html
3.手机短信软件app有哪些免费手机短信软件app下载安装在微信、QQ这些软件出现前,大家最常用的联系方式除了电话就是发短信,很多的小伙伴都有开过短信包月,今天小编给大家推荐几款好用的手机短信软件,这类app是非常强大的短信管理软件,能够完全的替代大家手机上的短信功能,支持用户发送短信、批量处理短信等,还有各种炫酷的界面特效,支持气泡对话框等各种装饰,感兴趣的用户http://www.downcc.com/k/sjdx/
4.SAAPP下载指南,一键获取APP安装教程,轻松上手!云服务器在下载和使用慈云数据SAAPP过程中,可能会遇到一些常见问题,如遇到下载失败、安装失败等问题,可以尝试以下方法解决:检查手机网络、重新启动手机、检查应用版本等,若问题仍未解决,请联系慈云数据SAAPP的客服支持寻求帮助。 本文为您提供了详细的下载和使用慈云数据SAAPP的指南,希望您能通过本文了解如何安全、顺利地下载和使https://www.zovps.com/article/index.php/post/432279.html
5.短信压力测试平台免费版2023下载4、不随便泄露个人信息:避免将个人电话号码随意在公共场合或网上留下,以免被骚扰电话滥用。 5、举报骚扰电话:如果经常受到骚扰电话,可以向相关部门或运营商进行举报,他们会采取措施来处理这些骚扰电话。 灵动短信压力测试app为什么会闪退? 1、可能是该软件缓存较多导致无法正常运行,建议清除软件缓存尝试:设置-查找“应用https://www.1kyx.com/soft/204419.html
6.短信压力测试app下载免费短信压力测试最新版下载v4.0短信压力测试是一款非常好用的手机工具,它提供了超级强大的短信压力检验功能,当你无法接收到一些短信的时候,可以通过该平台快速的将他呈现出来,并且采用了极其简单的操作手法,只需要一键点击就可以高速的浏览具体的短信内容非常方便。 《短信压力测试》软件特色: https://www.juxia.com/sjwy/ruanjian-468910.html
7.java短信压测平台在线短信压测试java短信压测平台 在线短信压测试 压测时间:正式上线两个月 测试环境:正式环境 测试条件:测试时间选在平台使用时间段较少的时候,通过观察数据库一段时间内数据的增长情况确定在周六的晚上。 数据量:目前数据库有51个部门、62个管理员、短信发送总量约4.5W条,单个用户最大发送量已达2W条数据。前提:用户体验反馈查询https://blog.51cto.com/u_16213686/9350585
8.在线短信测压平台腾讯云开发者社区是一种基于云计算技术的服务平台,用于测试短信发送的性能和稳定性。它可以模拟大规模的短信发送场景,通过向目标系统发送大量短信并监测响应时间、成功率等指标,评估目标系统在高负载情况下的性能表现。 在线短https://cloud.tencent.cn/developer/information/%E5%9C%A8%E7%BA%BF%E7%9F%AD%E4%BF%A1%E6%B5%8B%E5%8E%8B%E5%B9%B3%E5%8F%B0
9.在线短信压测,惩戒骗子必备在线短信压测,惩戒骗子必备 在线地址:https://www.ceya001.cn/https://www.xc6b.com/qqjs/11440.html
10.速云短信测压4.0.6破解版/短信电话测压程序员阿鑫速云短信测压4.0.6破解版_短信电话测压 此版说明 去除收费,去除软件暗桩 使用必看 这个软件暗桩较多(有锁机暗桩,写入文件暗桩,无限弹Dos窗口暗桩等),尽管补丁已经处理了但可能仍有遗漏,为了保护电脑的安全,尽量在虚拟机下使用(需要使用去虚拟化的虚拟机,没有去虚拟化的虚拟机可以站内搜索) https://www.cxyax.com/?post=743
11.告别传统压测:全链路压测在中通的实践分享在线上压测时,有可能会触发到资金扣款或者短信发送等敏感方法,如果大量的压测触发了这类方法,轻则造成骚扰,重则发生严重的资损,类似这样的方法,我们则需要在梳理压测链路时进行识别,并为此类方法加上挡板(Mock),如下图示例,如此当压测探针识别到压测请求(有压测标)时,则会执行我们针对此方法所配置的 Mock 代码,如https://xie.infoq.cn/article/cc37b94311d35b68aa8db9ab1
12.手机短信压力测试在哪里可以获取AK和SK?手机短信压力测试 更多内容 在哪里可以获取AK和SK? 单击“新增访问密钥”,进入“新增访问密钥”页面。 输入访问密钥描述信息(非必填),单击“确定”。 通过手机短信、邮箱或者虚拟MFA进行验证,输入对应的验证码,单击“确定”。 如果您已开启操作保护,需要通过手机短信、邮箱或者虚拟MFA进行验证,输入对应的验证码。 单击https://support.huaweicloud.com/topic/344436-2-S
13.教你提高接口性能的18种方案,用了直接提升100倍。记得当时压测的时候,高并发情况,这1000笔明细入库,耗时都比较大。所以我转换了一下思路,把批量的明细转账记录保存的文件服务器,然后记录一笔转账总记录到数据库即可。接着异步再把明细下载下来,进行转账和明细入库。最后优化后,性能提升了十几倍。 优化后,流程图如下: https://maimai.cn/article/detail?fid=1781282995&efid=Ydq-Gt2478kKUM5-4UOLjA
14.python性能测试手机号验证码登录压测示例详解python压测脚本: threadmark用来标记任务的,我在模块方法里面返回了token,表示唯一用户登录接口请求操作,方便开发追踪日志。 /** * 100个用户通过发短信然后通过验证码登录 */ class LoginByTel extends OkayBase { public static void main(String[] args) { https://m.jb51.net/article/256314.htm
15.短信状态报告回调短信服务CR:0203时间段管控请错开管控时间段进行信息下发 CR:0205审核拦截内容不符合管控要求,请优化文案 CR:0206超流速拦截建议降低短信提交的QPS CR:0207压测模式拦截压测模式不实际下发,若需关闭压测模式,请联系火山引擎客服。 CR:0208超流量拦截超出流量管控限制 https://www.volcengine.com/docs/6361/171584
16.短信接口压力测试:如何确保稳定和高效的信息传递在进行短信接口压力测试时,需要注意以下几点: 尽量使用真实环境:为了确保测试结果的准确性,建议在真实的生产环境中进行测试。 适当控制负载量:压力测试的目的是评估系统在高负载情况下的表现,但过高的负载可能导致系统崩溃。 监控系统性能:在测试过程中,需要实时监控系统的性能,包括吞吐量、响应时间等。 https://www.eolink.com/news/post/84107.html
17.短信在线压测平台关于短信在线压测平台 使用F5和Cisco等厂商推出的DDoS解决方案。, DDoS攻击(Distributed Denial of Service)是一种通过同时从多个位置对目标服务器发送高数量的数据包,导致服务器负载过重而无法处理合法用户请求的方式。攻击者使用一个或多个“僵尸网络”(botnet)通过互联网发送大量的请求到特定的目标服务,使其网络出现https://mukrb.lfjmmj.cn/
18.新一代垃圾回收器ZGC的探索与实践与CMS中的ParNew和G1类似,ZGC也采用标记-复制算法,不过ZGC对该算法做了重大改进:ZGC在标记、转移和重定位阶段几乎都是并发的,这是ZGC实现停顿时间小于10ms目标的最关键原因。 ZGC垃圾回收周期如下图所示: ZGC只有三个STW阶段:初始标记,再标记,初始转移。其中,初始标记和初始转移分别都只需要扫描所有GC Roots,其处https://www.528045.com/article/d10c0b06b3.html
19.在线短信压力测试多接口dxhz黎明岛在线短信压力测试 dxhz,一个在线短信压力测试,多接口,是一位用户在评论区留的,应该是店家,于是拿着买了个日卡测试了一下,效果不算差,我挑了一个效果比较好的,测试了10分钟,不仅有短信,而且有些还是电话的验证码,工具仅供娱乐测试使用哈,勿做其他范围的事情哈。 短信压力测试后台 src ---本页内容已结束,喜欢https://d.limingdao.com/71
20.测试用的短信平台腾讯云开发者社区测试用的短信平台的应用场景: 功能测试:用于测试短信发送和接收功能是否正常,包括发送速度、接收延迟、短信内容等。 性能测试:用于测试系统在高并发情况下的短信发送和接收性能,包括吞吐量、响应时间等指标。 兼容性测试:用于测试系统在不同手机、不同运营商、不同网络环境下的短信发送和接收情况。 安全测试:用于测试系https://cloud.tencent.com/developer/information/%E6%B5%8B%E8%AF%95%E7%94%A8%E7%9A%84%E7%9F%AD%E4%BF%A1%E5%B9%B3%E5%8F%B0-album