<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[浮云的博客]]></title><description><![CDATA[个人技术博客：http://www.sunhucheng.top]]></description><link>https://blog.youkuaiyun.com/homeadmin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; homeadmin]]></copyright><item><title><![CDATA[聊聊目前中度以上使用 GPT 的性价比解决方案]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/161075261</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/161075261</guid><author>homeadmin</author><pubDate>Thu, 14 May 2026 11:06:23 +0800</pubDate><description><![CDATA[三：最后根据自己的需求导入购买的 GPT PLUS 会员的认证文件，软件会自动切换到有可用额度的账号，额度不够就再买 PLUS。目前使用下来 PRO5x 的额度差不多是 5 个 plus 会员的额度，20x 差不多是 16 个 plus 会员的额度。不知道朋友分享下使用心得，目前我是在用 CPA 里面放了 3 个 PLUS 养龙虾，很稳定，没有出现账号问题，不过我用的也不多。一：首先：需要有一个可以 kexue 的环境，可以是一台海外的服务器，也可以是本地自己搭建好的 kexue 网络。]]></description><category></category></item><item><title><![CDATA[如何使用Redis实现电商系统的库存扣减？]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/122358757</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/122358757</guid><author>homeadmin</author><pubDate>Fri, 07 Jan 2022 10:15:01 +0800</pubDate><description><![CDATA[解决方案


	使用mysql数据库，使用一个字段来存储库存，每次扣减库存去更新这个字段。
	
	
	还是使用数据库，但是将库存分层多份存到多条记录里面，扣减库存的时候路由一下，这样子增大了并发量，但是还是避免不了大量的去访问数据库来更新库存。
	
	
	将库存放到redis使用redis的incrby特性来扣减库存。
	


分析

在上面的第一种和第二种方式都是基于数据来扣减库存。

基于数据库单库存

第一种方式在所有请求都会在这里等待锁，获取锁有去扣减库存。在并发量不高的情况下可以使用，但是一旦并.]]></description><category></category></item><item><title><![CDATA[java开发-常用软件]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/122128883</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/122128883</guid><author>homeadmin</author><pubDate>Fri, 24 Dec 2021 15:33:51 +0800</pubDate><description><![CDATA[开发
	idea
	
	接口管理
	Apifox
		postman
	
	数据库管理
	navicat
		datagrip
	
	Git管理
	SourceTree
	
	服务器管理
	xshell
	
	项目管理
	xmind 思维导图
	
	压力测试工具
	
		Jmeter

		
		
	
]]></description><category></category></item><item><title><![CDATA[面试知识1]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/119324075</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/119324075</guid><author>homeadmin</author><pubDate>Mon, 02 Aug 2021 16:55:59 +0800</pubDate><description><![CDATA[zookpper
ribbon
redis


1.分布式锁，使用setnx来添加锁，设置过期时间，防止锁没有释放

2.数据结构 string hash list set zset

3.数据存储在内存中，通过持久化到磁盘

4.aof更安全，文件更大，回复会优先读取aof，rdb有触发条件

5.缓存穿透就是用户大量查询一个不存在的缓存，数据库也没有，但会一直查询，大量进行io交互，给数据库压力，1.可以设置不存在数据也缓存下来，给个比较短的时间，2.设置服务降级，熔断

6.缓存雪崩，就是缓存大批量.]]></description><category></category></item><item><title><![CDATA[JVM运行机制（四） 参数配置考虑需求]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/119140762</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/119140762</guid><author>homeadmin</author><pubDate>Tue, 27 Jul 2021 12:31:21 +0800</pubDate><description><![CDATA[1.每日的请求量级有多大?百万 千万

2.请求集中在什么时间?有多久? 几个小时

3.请求量/时间 算出平均请求数

4.所需创建对象需要的数据量有多大 一个Int 4字节 一个long 8字节

5.有几台机器？平均每台机器所需承载多大请求？

6.创建对象*每台机器所需承载量 算出机器所需要的空间大小

7.机器有多少内存分配 除去机器本身需求内存、堆空间所需内存、老年代所需内存、剩下的才是青年代能获得的内存

...]]></description><category></category></item><item><title><![CDATA[JVM运行机制（三）垃圾回收机制]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/119139503</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/119139503</guid><author>homeadmin</author><pubDate>Tue, 27 Jul 2021 12:08:35 +0800</pubDate><description><![CDATA[java垃圾回收机制是按年代分的，青年代、老年代、永久代


青年代


java所有的垃圾回收对象都会优先放在青年代内，当青年代满了之后，还要创建新的对象，就会触发垃圾回收，将所有未被引用的对象回收


老年代


对象会有限创建在青年代内，但是如果他一直有被引用，比如常量实列，那么每经过一次垃圾回收就默认他涨一岁，当他达到15岁时，就会被移入老年代，那么老年代内都时长时间被引用的对象，如何垃圾回收呢？同理，老年代满的时候，就会触发垃圾回收机制


永久代


其实指的就是方法区，永久代会不会有垃圾回收.]]></description><category></category></item><item><title><![CDATA[jvm运行原理流程图]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/119037635</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/119037635</guid><author>homeadmin</author><pubDate>Fri, 23 Jul 2021 15:54:38 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[JVM运行机制（二）内存区域的划分]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/118707568</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/118707568</guid><author>homeadmin</author><pubDate>Tue, 20 Jul 2021 18:02:01 +0800</pubDate><description><![CDATA[jvm加载类到内存中，会将类大体分为 栈空间 堆空间 方法区（元数据空间）





]]></description><category></category></item><item><title><![CDATA[springcloud(十四) 配置中心]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/118899119</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/118899119</guid><author>homeadmin</author><pubDate>Mon, 19 Jul 2021 17:54:26 +0800</pubDate><description><![CDATA[简介


微服务不可能只有一个，会有很多很多个，比如所有微服务都需要配置mybatis，那么需要修改用户密码时，就需要每个都修改一次，如果有几百个会很难维护，所有我们可以把这些公共配置提取出来放到git里，所有微服务都先去git读取公共配置，这样就很方便了

https://cloud.spring.io/spring-cloud-static/spring-cloud-config/2.2.1.RELEASE/reference/html/


服务端配置与测试


创建git仓库





本地clo.]]></description><category></category></item><item><title><![CDATA[JVM运行机制（一）]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/118681518</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/118681518</guid><author>homeadmin</author><pubDate>Tue, 13 Jul 2021 15:27:52 +0800</pubDate><description><![CDATA[java代码是怎么运行的？


1.Java代码都是以xxx.java的文件形式存在的

2.我们会将java文件打包生产xxx.class字节码文件

3.通过类加载器将class文件加载到jvm中，生产类

4.运行代码






jvm会在什么情况下去加载一个类？


1.一个类被加载通常会经过下面的经历：

加载-&gt;验证-&gt;准备-&gt;解析-&gt;初始化-&gt;使用-&gt;卸载

2.jvm会在类被调用的情况下采取加载一个类




验证


验证代码合不合代码规范，可不可以.]]></description><category></category></item><item><title><![CDATA[springcloud(十三) 服务网关Geteway]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/118570637</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/118570637</guid><author>homeadmin</author><pubDate>Fri, 09 Jul 2021 14:01:45 +0800</pubDate><description><![CDATA[概念


服务网关可以理解为医院的分诊台，控制请求可不可以进来，进到哪里，之前是使用zuul网关，但是zuul2一直跳票所以spring官方基于webFlux框架开发了geteway，相比zuul1稳定性更好，支持异步非阻塞 ，可以实现反向代理，熔断，监控等功能




核心


路由

断言

过滤


工作流程
...]]></description><category></category></item><item><title><![CDATA[Mysql千万级大数据量查询优化]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/118334727</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/118334727</guid><author>homeadmin</author><pubDate>Tue, 29 Jun 2021 14:32:49 +0800</pubDate><description><![CDATA[1.对查询进行优化，应尽量避免全表扫描，首先应考虑在 where 及 order by 涉及的列上建立索引。

2.应尽量避免在 where 子句中对字段进行 null 值判断，否则将导致引擎放弃使用索引而进行全表扫描，如：select id from t where num is null可以在num上设置默认值0，确保表中num列没有null值，然后这样查询：select id from t where num=0

3.应尽量避免在 where 子句中使用!=或&lt;&gt;操作符，否则引擎将放..]]></description><category></category></item><item><title><![CDATA[分布式RPC框架Apache Dubbo]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/118114768</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/118114768</guid><author>homeadmin</author><pubDate>Tue, 22 Jun 2021 19:53:38 +0800</pubDate><description><![CDATA[2.1 Dubbo简介

Apache Dubbo是一款高性能的Java RPC框架。其前身是阿里巴巴公司开源的一个高性能、轻量级的开源Java RPC框架，可以和Spring框架无缝集成。

什么是RPC？

RPC全称为remote procedure call，即远程过程调用。比如两台服务器A和B，A服务器上部署一个应用，B服务器上部署一个应用，A服务器上的应用想调用B服务器上的应用提供的方法，由于两个应用不在一个内存空间，不能直接调用，所以需要通过网络来表达调用的语义和传达调用的数据。

需要注意的]]></description><category></category></item><item><title><![CDATA[springcloud(十二) Hystrix 工作流程以及服务监控]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/118022566</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/118022566</guid><author>homeadmin</author><pubDate>Fri, 18 Jun 2021 12:18:51 +0800</pubDate><description><![CDATA[概述

一、分布式系统面临着什么

复杂分布式体系结构中的应用程序有数十个依赖关系，每个依赖关系在某些时候将不可避免地失败。

服务雪崩
多个微服务之间调用的时候，假设微服务A调用微服务B和微服务C，微服务B和微服务C又调用其它的微服务，这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用，对微服务A的调用就会占用越来越多的系统资源，进而引起系统崩溃，所谓的“雪崩效应”.

对于高流量的应用来说，单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。比失败更糟糕的是，这..]]></description><category></category></item><item><title><![CDATA[springcloud(十一) OpenFeign服务调用、超时控制以及日志增强]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/117964014</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/117964014</guid><author>homeadmin</author><pubDate>Wed, 16 Jun 2021 18:19:54 +0800</pubDate><description><![CDATA[OpenFeign


声明式webservice客户端，定义一个服务端接口添加注解，使用更方便，内部包换了ribbon支持负载均衡


Feign能干什么



    前面在使用Ribbon+RestTemplate时，利用RestTemplate对http请求的封装处理，形成了一套模版化的调用方法。但是在实际开发中，由于对服务依赖的调用可能不止一处，往往一个接口会被多处调用，所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所以，Feign在此基础上做了进一步封装，由...]]></description><category></category></item><item><title><![CDATA[springcloud (十) 服务注册中心小结 eureak zookeeper consul 异同点]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/117565620</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/117565620</guid><author>homeadmin</author><pubDate>Fri, 04 Jun 2021 16:42:21 +0800</pubDate><description><![CDATA[一、首先需要了解的是微服务的数据层级架构原则（CAP） ps：不是系统层面

C: 数据强一致性

A: 高可用

P: 分区容错性



二、一个系统不可能满足cap全部需求，因此将数据根据cap分为一下三类

CA: 单点集群 满足 一致性 可用性 可扩展性不高

CP: 满足一致性， 分区容错性 ，性能不高

AP: 满足可用性，分区容错性，对数据一致性要求低一点

而现在服务都要求容错性必须，所以现在一般都是 cp ap




cap示意图




三、 注册中心区别

AP: eurek...]]></description><category></category></item><item><title><![CDATA[springcloud (九) 服务注册之consul]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/117564485</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/117564485</guid><author>homeadmin</author><pubDate>Fri, 04 Jun 2021 16:07:53 +0800</pubDate><description><![CDATA[建立模块
	
	配置pom
	配置yml
	配置主启动
	配置业务类
	测试
]]></description><category></category></item><item><title><![CDATA[springcloud (八) 服务注册之zookeeper]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/117261169</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/117261169</guid><author>homeadmin</author><pubDate>Tue, 01 Jun 2021 17:33:25 +0800</pubDate><description><![CDATA[启动zookeepe


运行成功



配置模块
	创建
	
	配置pom
	配置yml
	主启动
	controler
	启动8004注册进zooleeper
	测试
]]></description><category></category></item><item><title><![CDATA[springcloud (七)  actuator服务监管配置、服务发现Discovery以及eureka自我保护]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/117255869</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/117255869</guid><author>homeadmin</author><pubDate>Tue, 25 May 2021 15:53:31 +0800</pubDate><description><![CDATA[配置eureka服务id

未配置之前



配置


eureka:
  instance:
    hostname: localhost
    #配置服务id
    instance-id: payment8002

配置后



服务改为自定义id，更方便管理，可以根据地区，ip来做细化



配置显示ip

未配置前





配置


eureka:
  instance:
    hostname: localhost
    instance-id: payment8002
    ..]]></description><category></category></item><item><title><![CDATA[springcloud (六) Eureka集群构建以及负载均衡]]></title><link>https://blog.youkuaiyun.com/homeadmin/article/details/117036442</link><guid>https://blog.youkuaiyun.com/homeadmin/article/details/117036442</guid><author>homeadmin</author><pubDate>Wed, 19 May 2021 17:49:13 +0800</pubDate><description><![CDATA[集群原理


 微服务RPC远程服务调用最核心的是什么？

 高可用，如果服务注册中心里只有一台机器，如果挂了那就无法访问，所以需要配置多台机器来解决这个问题，一台机器挂了还有另外的机器可以访问。

 搭建注册中心集群，实现负载均衡+故障容错


参考cloud-eureka-server7001搭建cloud-eureka-server7002
	修改pom
	修改yml
	单机改为集群服务名不能相同需要修改hostname以及注册地址 （多台机器需要相互注册）
		7002配置
		
	
...]]></description><category></category></item></channel></rss>