项目实践
文章平均质量分 72
keep0901
大学生
展开
-
解决多线程安全
为了在并发环境中确保数据安全,可以采用同步机制,线程安全的数据结构、显式锁机制、无锁数据结构、线程局部变量、不可变对象、CAS 操作和并发设计模式。选择合适的方案取决于具体的使用场景和性能要求。原创 2024-08-13 16:34:20 · 376 阅读 · 0 评论 -
责任链模式
责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它允许将请求的处理分配给一系列的处理对象,这些处理对象通过链式结构组织起来。每个处理对象可以选择处理请求或者将请求传递给链中的下一个处理对象。在企业中,审批流程是一个经典的责任链模式应用场景。假设一个请假申请需要经过多个审批阶段,比如直接上司、部门经理和人力资源部。每个审批者都可以决定是否处理请求或将请求传递给下一个审批者。这样可以灵活地调整审批流程,例如添加新的审批环节或调整现有环节的顺序。原创 2024-08-12 15:01:34 · 522 阅读 · 0 评论 -
联合索引和单个索引
联合索引适用于频繁涉及多个列的查询,可以优化复杂的查询性能。单个索引适用于单列查询,但对于多列查询的性能不如联合索引。在设计索引时,需要根据实际查询需求来决定是使用联合索引还是单个索引,或者结合使用它们,以达到最佳的查询性能。原创 2024-08-09 10:00:07 · 374 阅读 · 0 评论 -
git revert和git reset工作中使用
git revert:用于撤销某次提交的效果,但保留提交历史,适合在公共分支上使用。git reset:用于修改提交历史,适合在本地分支上使用,可以重置到某个提交点,具体行为取决于使用的模式。在工作中,选择使用哪个命令取决于你对历史记录的需求和当前的协作环境。原创 2024-08-06 10:56:52 · 461 阅读 · 0 评论 -
全局处理方式
在 API Gateway 中:配置全局的请求和响应过滤器。在应用层:使用全局异常处理器和过滤器(如 Spring Boot 的和Filter利用中间件:通过服务网格或消息队列中间件进行统一处理。选择合适的方式取决于你的架构和具体需求。原创 2024-08-06 09:06:06 · 788 阅读 · 0 评论 -
linux-free命令使用
free命令是了解系统内存使用状况的有效工具。在启动新进程时,关注 available内存;在接口响应慢时,需监控 used和 available,并结合 buff/cache进一步判断。交换内存(swap使用情况也是评价系统性能的一个重要因素。原创 2024-07-31 16:34:28 · 963 阅读 · 0 评论 -
线程池七个参数
线程池的参数配置应根据具体的应用场景、负载特性和系统资源来调整。通过监控系统性能和任务执行情况,可以动态调整这些参数,以优化线程池的性能和资源使用。原创 2024-07-29 18:00:46 · 2589 阅读 · 0 评论 -
“分布式” 和 “集群”
集群是一个由多个计算节点组成的系统,节点通常在物理上较为集中,强调高可用性和负载均衡。分布式系统是一种将计算任务和数据分布到多个节点上的系统,节点可以分布在不同地点,强调扩展性和容错性。集群和分布式系统在很多现代计算架构中都是互补的,结合使用可以实现更高效、更可靠的系统。原创 2024-07-23 17:05:08 · 633 阅读 · 0 评论 -
ComplatableFuture异步回调
的异步回调机制使得你可以优雅地处理异步操作的结果,而不需要显式地管理线程或处理复杂的回调地狱问题。通过注册多个回调函数,你可以实现复杂的异步操作链。原创 2024-07-23 09:20:53 · 366 阅读 · 0 评论 -
transient
transient关键字用于标记在序列化过程中需要排除的属性。它用于保护敏感数据、优化序列化性能以及避免不必要的数据保存。在序列化和反序列化过程中,transient修饰的属性会被忽略,恢复时这些属性的值将会是默认值或null。原创 2024-07-22 18:02:37 · 335 阅读 · 0 评论 -
OpenFeign中@FeignClient注解中fallbackFactory和fallback参数
fallback:提供一个简单的降级处理类,在服务调用失败时返回预定义的响应。:提供一个降级工厂类,能够创建包含更多上下文信息的降级处理实例,适合更复杂的降级逻辑。例子定义一个降级工厂类@Component@Override@Override// 根据异常信息返回不同的降级响应} else {在 Feign 客户端中使用。原创 2024-07-22 17:54:26 · 907 阅读 · 0 评论 -
处理线程安全的列表CopyOnWriteArrayList 和Collections.synchronizedList
是 Java 中的一种异常,用于指示在迭代集合时,该集合的结构发生了并发修改。在 Java 中,许多集合类(如ArrayListHashMap等)都不是线程安全的。如果一个线程在迭代集合的同时,另一个线程修改了该集合的结构(如添加、删除元素),就可能导致异常的抛出。这种异常通常在使用迭代器遍历集合时发生,迭代器在创建时会记录集合的结构状态,如果在迭代期间发现集合结构已经发生了变化,就会抛出。和都是 Java 中用于处理线程安全的列表操作的工具类,但它们在实现和适用场景上有一些区别。原创 2024-07-12 11:36:06 · 1153 阅读 · 0 评论 -
不遵守全局主键配置【PGSQL】
这个标签用于在执行插入操作之前获取一个值,通常是数据库中的序列(sequence)的下一个值,然后将其作为插入操作的主键值(id)使用。标签的作用就是在执行插入操作之前,先执行一个 SQL 查询语句,从数据库序列中获取下一个值,并将其作为插入操作的主键值。: 这是实际执行的 SQL 查询语句,它是 PostgreSQL 数据库中用来获取序列下一个值的语法。查询语句的执行顺序,即在执行插入操作之前执行该查询,确保能在插入时获取到正确的主键值。是将字符串转换为实际的数据库对象类型(在这里是序列类型)。原创 2024-07-12 09:51:38 · 468 阅读 · 0 评论 -
数据量大时,分批次保存或更新
中的元素按照指定大小分批保存或更新到数据库中,同时利用并行流提高处理效率,并在保存或更新过程中处理可能出现的异常。如果在保存或更新过程中出现异常,会捕获异常并记录错误日志,然后程序会继续处理下一个批次的数据。这是一个初始值为0的迭代,每次递增1的无限流。的大小大于等于500,则需要将列表切分为多个批次进行保存或更新。中跳过一定数量元素后取出的一批元素,然后这些元素被并行收集到一个列表中。来指定每个批次的大小,然后将切分得到的每个批次收集到一个列表。操作将流转换为并行流,允许并行处理流中的元素。原创 2024-04-10 09:45:43 · 524 阅读 · 0 评论 -
mybatisPlus返回结果集为空时,用Map接收返回什么,用单个对象接收返回什么,用List集合返回什么,用Page对象呢?
当使用 `Page` 对象作为返回类型时,如果查询结果集为空,MyBatis-Plus 会返回一个 `Page` 对象,该对象的 `records` 属性(即结果集)将是一个空的 `List`。即使结果集为空,`Page` 对象本身也不会是 `null`。当使用 `Map` 作为返回类型时,如果查询结果集为空,MyBatis-Plus 通常会返回一个空的 `Map`,而不是 `null`。当使用 `List` 集合作为返回类型时,如果查询结果集为空,MyBatis-Plus 会返回一个空的 `List`。原创 2024-04-08 13:48:17 · 594 阅读 · 1 评论 -
属性条件查询DTO
属性条件查询DTO。原创 2023-04-25 10:03:18 · 150 阅读 · 0 评论 -
火险气象等级预报
项目实践原创 2023-04-24 11:31:42 · 95 阅读 · 0 评论