- 博客(147)
- 收藏
- 关注
原创 Kubernetes-K8S
Kubernetes由于单词太长,省略掉中间8个字母简称为。它介于应用服务和服务器之间。能够通过策略协调和管理多个服务,只需要一个YAML文件配置。定义应用的部署顺序等信息,自动部署应用到各个服务器,还可以自动扩容缩容。
2024-08-14 17:41:13
447
原创 Mqtt协议网络搭建以及程序实现
MQTT 是一种比 HTTP 协议更简单的通信协议,适用于各种设备,包括手机、电脑以及智能手环等。订阅者(Subscriber):注册接收某个主题的消息,当有消息发布到该主题时,就能收到相应的通知。服务器(Broker):充当中介,接收发布者的消息并将其转发给订阅了相应主题的订阅者。主题(Topic):一个字符串,发布者定义主题,订阅者通过订阅主题来接收消息。负载(Payload):也是一个字符串,包含了实际的消息内容。发布者(Publisher):负责将消息发送到指定的主题。消息到达时候的回调函数。
2024-07-25 11:06:14
351
原创 Seata之分布式事务
标注全局@GlobalTransactional启动入口动作的微服务模块(比如订单模块),它是事务的发起者,负责定义全局事务范围,并且根据TC维护的全局事务和分支事务状态,做出开始事务、提交事务、回滚事务的决议。RM(Resource Manager)-资源管理器:管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并且驱动分支事务提交或者回滚。就是mysql数据库本身,可以是多个RM,负责管理分支事务上的资源,向TC注册分支事务,汇报分支事务状态,驱动分支事务的提交或者回滚。
2024-07-24 17:29:02
357
原创 GateWay网关微服务定位和理论知识
客户端向Spring Cloud Gateway发送请求。SPring Cloud Gateway组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务。断言(predicate)参考的是java8的java.util.function.predicate开发者可以匹配http请求中的所有内容(例如请求头或者请求参数),如果请求与断言橡皮撇则进行路由。过滤:指的是Spring框架中的Gatewayfilter的实例,使用过滤器,可以在请求被旅游前或者之后对请求进行修改。
2024-07-24 15:27:03
700
原创 Ribbon负载均衡与内核原理
集中式负载均衡,在消费者和服务提供方中间使用独立的代理方式进行负载,有硬件的(比如F5),也有软件的(Nginx)客户端根据自己的请求做负载均衡,Ribbon就属于客户端自己做负载均衡。Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端的负载均衡工具,Ribbon客户端组件提供一系列的完善的配置,如超时,重试等,通过Load Balancer获取到服务提供的所有机器实例,Ribbon会自动基于某种规则(轮询,随机)去调用这些服务。
2024-07-24 11:07:51
544
原创 Sentinel初步了解
多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”。如果依赖的服务出现了不稳定的情况,请求的响应时间变长,那么调用服务的方法的响应时间也会变长,线程会产生堆积,最终可能耗尽业务自身的线程池,服务本身也变得不可用。此时,上游服务会以有限的流量来调用下游服务,同时,会监控调用的成功率。
2024-07-23 17:37:48
926
原创 Open Feign初步了解
在openFeign的实现下,我们只需要创建一个接口并使用注解的方式来配置它(在一个微服务接口上面标注一个@FeignClient注解即可),即可完成对服务提供方的接口绑定,统一对外暴漏可以被调用的接口方法,大大简化和降低了调用客户端的开发量,也即由服务提供者给出调用接口清单,消费者直接通过调用OpenFeign调用即可。但是实际中,由于对服务依赖的调用不止一处,往往一个接口会被多处调用,所以通常会针对每个微服务自行封装一些客户端来包装这些依赖的调用。openFeign基本上就是当前微服务调用的事实标准。
2024-07-22 17:02:10
292
原创 MQ服务初步认识
MQ翻译为消息队列,通过典型的生成者和消费者模型,生产者不断向消息队列生成消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接受,没有业务逻辑的侵入,轻松的实现系统间解耦,别名为消息中间件。通过利用高效可靠的消息队列传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。云原生、消息、事件、流 实时数据处理平台,覆盖云边端一体化数据处理场景。物联网:IOT -》 连接网络 -》 小米台灯 -》 小米物联网平台 -》app。
2024-07-17 11:50:59
793
原创 Nacos的初步了解
在微服务架构中一个业务流程需要多个微服务通过网络接口调用完成业务处理,服务消费方从服务注册中心获取服务提供方的地址,从而进行远程调用,这个过程叫做服务发现。
2024-07-16 15:37:55
298
原创 Redis代替Session实现共享
session共享问题:多台tomcat并不共享session存储空间,当请求切换到不同的tomcat服务时导致数据丢失的问题。将redis替换session可以解决session共享问题。
2024-07-09 21:20:03
324
原创 java的线程
当线程启动后(线程对象调用start方法),它不能一直“独占”CPU运行,所以CPU需要在多线程之间切换,于是线程状态也会多次在运行、阻塞之间切换。
2024-06-24 19:13:10
417
原创 Spring Security+Spring Boot实现登录认证以及权限认证
认证流程:AuthenticationManager为这个系统所支持的所有认证协议,统一提供authenticate方法,比如支持用户名密码登录,也支持短信登录,第三方授权登录,不论哪种方式登录,最终都交由这个方法执行,其实现类ProviderManager则高度封装了认证过程,使得不同认证协议进入不同的认证实现类,然后都返回Authentication对象。
2024-06-17 20:50:09
1179
原创 Sping Boot全局异常捕捉
在日常项目开发中,异常是常见的,但是如何更高效的处理好异常信息,然我们能快速定位到BUG,是很重要的,不经能够提高我我们的开发效率,还能让代码看起来更加舒服。Spring Boot的项目已经有一定的异常处理,但是对于开发者而言就不太合适,因此我们需要对这些异常进行统一的捕获并且处理。@Data//编码:1成功,0和其它数字为失败//错误信息//数据//状态SYSTEM_ERROR(50000, "系统内部异常");/*** 信息*/
2024-05-29 19:28:14
259
原创 外卖系统关于redis使用解决高并发情况
操作步骤:1、导入Spring Data Redis的maven坐标2、配置Redis数据源3、编写配置类,创建RedisTemplate对象4、通过RedisTemplate对象操作Redis。
2024-05-21 10:07:45
584
原创 外卖系统公共字段自动填充
*** 更新操作*/UPDATE,/*** 插入操作*/INSERT/** 指定切入点* */定义通知在通知中进行公共字段填充//定义通知,在通知中进行公共字段的赋值log.info("开始进行公共字段的填充");//获取到当前被拦截的方法上的数据库操作类型//方法签名对象//获得方法上的注解//获得数据库操作类型//获取到当前被拦截的方法的参数--实体对象return;//准备赋值的数据//根据当前不同的操作类型,为对应的属性通过反射来赋值。
2024-05-20 14:33:43
193
原创 外卖系统拦截器实现(Interceptor)
会话:用户打开浏览器,访问web服务器的资源,会话开始建立,直到有一方断开连接,会话结束。再一次会话中可以包含多次请求和响应。会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,一边在统一会话的多次请求之间共享数据。客户端会话技术:Cookie服务端绘画技术:Session。
2024-05-15 20:19:25
454
原创 前端小知识-uni框架的跳转
以上代码中,url参数指定要跳转的页面路径,可以是当前页面,也可以是其他页面,success参数指定跳转成功后的回调函数,在回调函数中,调用uni.navigateBack方法,从而实现强制刷新当前页面的目的。以上代码中,url参数指定要跳转的页面路径,可以是当前页面,也可以是其他页面,调用uni.redirectTo方法,可以实现强制刷新当前页面的目的。uni.reLaunch方法是uniapp提供的一个API,可以用于重新加载当前页面,从而实现强制刷新当前页面的目的。
2024-05-04 18:32:03
433
原创 uni框架下的前端小知识
1、direction:移动方向,可选值为all、vertical、horizontal分别表示所有方向、垂直、水平方向。3、out-of-bunds:移动超出界限是的处理策略,可选值为fail, bounce,分别表示失败、回弹。9、 scale-value:缩放的值,当scale为true时有效。7、friction:摩擦系数,取值范围【0,100】6、damping:阻尼系数,取值范围【0,100】8、scale:缩放比例,取值范围【0.5,10】4、x:水平方向的移动距离,单位制px。
2024-04-30 16:17:31
429
原创 leetcode:416.分割等和子集
请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。数组可以分割成 [1, 5, 5] 和 [11]。容量为sum(nums // 2)的背包可以装满吗。感觉这个二维数组压缩成一维数组没太看懂。数组不能分割成两个元素和相等的子集。0-1背包是每个物品只能使用一次;完全背包每个物品可以无限次使用;每个元素只能使用一次。
2024-04-01 14:30:55
378
原创 leetcode每日一题 2580 统计将重复区间合并成组的方案数
首先初始化m = 0;maxR = -1。把区间按照左端点从小到大排序,遍历区间,同时维护当前合并的最大区间右端点maxR。两个区间有交集,所以它们必须在同一个组内。之间(包括二者)的所有整数都包含在第。- 将两个区间都放在第 1 个组中。- 将两个区间都放在第 2 个组中。公共整数,那么这两个区间是。由于答案可能很大,将它对。给你一个二维整数数组。
2024-03-27 15:47:47
384
原创 leetcode每日一题 2642.设计可以求最短路径的图
初始化:dist[node1] = 0,其余为正无穷,然后我们遍历n次,每次找到当前未被访问的节点t,使得dist[t]最小。然后我们将节点t标记为以访问,更新dist[i]的值为min(dist[i], dist[t] + gti),最后我们返回dist[node2],如果dist[node2]为无穷大,那么就说明两节点之间不存在路径。使用Dijkstra算法, 我们使用Dijkstra算法求节点node1到节点node2的最短路径,其中。dist[i]表示从节点node1到节点i的最短距离;
2024-03-26 11:27:17
351
原创 动态规划-零钱兑换一、二
给你一个整数数组coins,表示不同面额的硬币;以及一个整数amount,表示总金额。计算并返回可以凑成总金额所需的。如果没有任何一种硬币组合能组成总金额,返回-1。你可以认为每种硬币的数量是无限的。
2024-03-25 15:52:46
312
原创 CCF CSP 202012-2 期末预测之最佳阈值-前缀和专题
假设我们有一个字符串ABCDE,什么是这个单词的前缀,就是这个单词的前缀,就是从第一个字母开始,依次往后拼接。被称为这个单词的后缀。
2024-03-23 21:44:46
277
原创 动态规划——零钱兑换
leetcode322.零钱兑换给你一个整数数组coins,表示不同面额的硬币;以及一个整数amount,表示总金额。计算并返回可以凑成总金额所需的。如果没有任何一种硬币组合能组成总金额,返回-1。你可以认为每种硬币的数量是无限的。
2024-03-20 19:21:50
274
原创 PAT-队列专题
1056 Mice and RiceMice and Riceis the name of a programming contest in which each programmer must write a piece of code to control the movements of a mouse in a given map. The goal of each mouse is to eat as much rice as possible in order to become a F
2024-03-20 18:42:46
524
原创 PAT-素数专题、质因子分解、大整数计算
让我们定义dn为: ,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。
2024-03-12 15:32:39
686
原创 PAT入门篇 数学问题
是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“”大派送 —— 只要读入的字符串满足下列条件,系统就输出“”,否则输出“得到“PATxPATxxAaPbTcaPbATcaabcA现在就请你为 PAT 写一个自动裁判程序,判定哪些字符串是可以获得“”的。
2024-03-11 18:26:54
553
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人