![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端
文章平均质量分 85
Casual_Lei
君不见黄河之水天上来,奔流到海不复回。君不见高堂明镜悲白发,朝如青丝暮成雪。珍惜每一刻。
展开
-
分库分表实现方案
分库分表是解决大数据量和高并发问题的有效手段,通过合理的分库分表设计,可以提升系统的性能和可扩展性。在实际应用中,需要结合具体的业务需求和数据特点,选择合适的分库分表策略和实现方式。原创 2024-07-03 09:31:24 · 694 阅读 · 0 评论 -
JWT(JSON Web Token)
JWT 提供了一种简洁而强大的方式来进行身份验证和授权,特别适用于分布式系统和微服务架构。Spring Security 通过其强大的扩展机制,使得与 JWT 的集成变得非常简单和高效。通过了解和应用这些技术,开发者可以构建出安全、可靠的现代 Web 应用。原创 2024-07-03 09:21:02 · 725 阅读 · 0 评论 -
Spring Security
Spring Security 和 OAuth2 密切相关,Spring Security 通过其扩展模块全面支持 OAuth2 协议,使得开发者能够轻松集成 OAuth2 授权功能到 Spring 应用中。Spring Security OAuth2 提供了客户端、资源服务器和授权服务器的实现,覆盖了 OAuth2 的各个核心组件和工作流程。通过这些模块,开发者可以快速构建安全、可靠的 OAuth2 授权解决方案。原创 2024-07-02 09:22:53 · 1043 阅读 · 0 评论 -
IO型线程池和CPU型线程池
IO型线程池:适合处理I/O密集型任务,配置较多的线程来应对高并发I/O操作。CPU型线程池:适合处理计算密集型任务,配置的线程数接近CPU核心数,以充分利用CPU资源。选择合适的线程池配置可以显著提高系统性能和响应速度,在实际项目中需要根据任务特性进行合理选择。原创 2024-07-02 09:21:32 · 325 阅读 · 0 评论 -
Oracle 数据库
Oracle 数据库(Oracle Database)是一个关系数据库管理系统(RDBMS),广泛应用于企业环境中。以下是 Oracle 数据库的简单入门指南,包括安装、基本概念和一些常用操作。原创 2024-07-01 09:12:16 · 1035 阅读 · 0 评论 -
Shiro 简单入门
Apache Shiro 是一个强大且灵活的 Java 安全框架,用于处理身份验证、授权、加密和会话管理等任务。Shiro 的设计目标是提供一种简单而直观的方式来处理安全问题,使开发人员能够轻松集成和管理应用程序的安全性。原创 2024-06-30 21:50:27 · 270 阅读 · 0 评论 -
华为od-C卷200分题目5 -项目排期
思路:非常简单,先按照从打到小的顺序排序,然后按照每个人分的最小值进行排序,谁最小谁就先分,用优先级队列就非常简单,每次给第一个分就行了。共有两位员工,其中一位分配需求 6 2 7 7 3 2 1 共需要28天完成,另一位分配需求 9 3 11 4 共需要27天完成,故完成所有工作至少需要28天。项目组共有N个开发人员,项目经理接到了M个独立的需求,每个需求的工作量不同,且每个需求只能由一个开发人员独立完成,不能多人合作。第一行输入为M个需求的工作量,单位为天,用逗号隔开。原创 2024-06-30 14:36:16 · 295 阅读 · 0 评论 -
Dubbo 简单入门
Dubbo 的核心原理包括通过注册中心实现服务注册与发现、采用高效的通信协议、提供多种负载均衡策略和容错机制,并且支持通过 SPI 机制进行扩展。Dubbo 为构建高性能、可扩展的分布式服务系统提供了强有力的支持。原创 2024-06-29 22:36:45 · 887 阅读 · 0 评论 -
Kubernetes (K8s) 底层原理
Kubernetes 通过其分布式架构和自动化控制机制,提供了高度可扩展和可靠的容器编排能力。其底层原理涵盖了从资源调度、状态管理到网络通信的各个方面,确保容器化应用程序的高效运行和管理。原创 2024-06-28 11:38:08 · 652 阅读 · 0 评论 -
K8s简单入门
Kubernetes (K8s) 是一个开源的容器编排平台,用于自动部署、扩展和管理容器化应用程序。以下是 Kubernetes 的入门指南,涵盖了基本概念、安装、常用命令以及部署示例。原创 2024-06-28 11:35:16 · 1159 阅读 · 0 评论 -
EasyPOI入门
EasyPOI是一个基于Apache POI的Java库,用于简化Excel文档的导入和导出操作。EasyPOI通过注解的方式,极大地减少了代码量和复杂度,使得Excel操作变得更加简单直观。本篇博客将介绍如何使用EasyPOI进行Excel文件的导入和导出操作。通过上述步骤,您可以在 Spring Boot 项目中轻松集成并使用 EasyPOI 来处理 Excel 文件。EasyPOI 提供了丰富的注解和简化的 API,使得 Excel 操作变得更加方便和高效。原创 2024-06-26 09:38:24 · 726 阅读 · 0 评论 -
MyCAT 2 底层原理
MyCAT 2 是一款开源的数据库中间件,它通过分库分表、读写分离、动态路由等机制提升数据库系统的性能和扩展性。MyCAT 2 的架构设计灵活,适用于多种数据库类型,包括 MySQL、PostgreSQL 和 SQL Server 等。原创 2024-06-25 23:11:41 · 962 阅读 · 0 评论 -
MyCAT 2 简单入门
MyCAT 2 作为一款功能强大的数据库中间件,可以有效解决大数据量、高并发的数据库应用场景中的瓶颈问题。如果你正在寻找一种解决数据库扩展性和性能问题的方案,不妨试试 MyCAT 2。希望这篇入门指南对你有所帮助!如果有任何问题或建议,欢迎在评论区留言交流。原创 2024-06-25 23:01:01 · 1077 阅读 · 0 评论 -
RPC框架
RPC(Remote Procedure Call ——远程过程调用),它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络的技术。一次完整的RPC同步调用流程:1)服务消费方(client)以本地调用方式调用客户端存根;2)什么叫客户端存根?就是远程方法在本地的模拟对象,一样的也有方法名,也有方法参数,client stub接收到调用后负责将方法名、方法的参数等包装,并将包装后的信息通过网络发送到服务端;3)服务端收到消息后,交给代理存根在服务器的部分后进行解码为实际的方法名和参数。原创 2024-06-24 22:51:52 · 861 阅读 · 0 评论 -
分布式事务
2PC即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段( Prepare phase).提交阶段( commit phase ) , 2是指两个阶段, P是指准备阶段, C是指提交阶段。在第一阶段(准备阶段),事务管理器向事务参与者(资源)们发送准备请求,大家都返回OK状态,那么就进入第二阶段,提交事务,如果在第一阶段有任何一个参与者没有OK,那么事务协调器通知其他所有事务参与者(资源)回滚事务。2PC常见的标准是XA, JTA,Seata等。原创 2024-06-23 22:00:09 · 835 阅读 · 0 评论 -
RocketMQ的使用
下面对三种发送方式做一个对比可靠性最高: 同步发送 > 异步发送 > 单向发送性能最高:单向发送 > 异步发送 > 同步发送使用场景建议如下如果是比较重要的不可丢失的消息,且对时效性要求不高建议使用同步发送,如转账消息如果是不重要的可失败的消息,比如日志消息,建议使用单向发送如果对时效性要求比较高,且消息不能丢失,可以尝试使用异步发送 我们通常使用定时任务比如Quartz来解决超时业务,比如:订单支付超时关单(N多定时任务),VIP会员超时提醒(只有一个定时任务)。原创 2024-06-22 21:21:51 · 840 阅读 · 0 评论 -
OAuth2.0
先说OAuth,OAuth是Open Authorization的简写。OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAuth是安全的。OAuth2.0是OAuth协议的延续版本,但不向前兼容(即完全废止了OAuth1.0)。原创 2024-06-20 23:53:14 · 1077 阅读 · 0 评论 -
分布式锁实现方案
就是在分布式环境下,保证某个公共资源只能在同一时间被多进程应用的某个进程的某一个线程访问时使用锁。原创 2024-06-20 12:47:50 · 733 阅读 · 0 评论 -
websocket
我们在上网时经常会遇到一些情况,就是页面没有刷新,但是一些数据会发生了改变,比如:在邮箱页面当收到新邮件时,我们并没有刷新页面,但是却会主动提示有新邮件达到,并会将未读邮件的数量+1。或者是在一些购物网站,当有新消息时并没有刷新页面,却提示了我们有新消息未读。 那像这样的业务场景是怎么实现的呢?为什么页面没有刷新,浏览器却提醒我们有新消息呢? 解决方案:1、采用轮询的方式。即:通过js不断的请求服务器,查看是否有新数据,如果有,就获取到新数据。这种解决方法是否存在问题呢?原创 2024-06-19 23:04:45 · 1022 阅读 · 2 评论 -
异常处理总结
RESPONSE_CODE_200(200, "操作成功"),RESPONSE_CODE_400(400, "参数错误"),RESPONSE_CODE_1001(1001, "激活失败已过期"),RESPONSE_CODE_1002(1002, "密码不一致")super();super(s);自定义断言工具类,避免大量if判断if (!if (!if (!原创 2024-06-18 23:00:01 · 539 阅读 · 0 评论