摘要: MySQL数据库精选(从入门使用到底层结构) MySQL是一种流行的开源关系型数据库管理系统(RDBMS)。它是基于结构化查询语言(SQL)的,支持多种操作系统,包括Linux、Windows、macOS等,适用于客户端/服务器模式的数据存储和管理。MySQL特别适合于Web应用的开发,并且与Java、Python等编程语言有着良好的兼容性。在国内外具有极高的普及度。国内有超过96%的企业正在使用MySQL,而且它的使用率在国内数据库产品中排名第一。本篇讲述了如何从零基础使用MySQL到了解其底层组织结构,同时也推荐了几款常见的数据库可视化界面工具。 阅读全文
posted @ 2024-01-26 18:19 不吃紫菜 阅读(1366) 评论(2) 推荐(9) 编辑
摘要: JUC并发编程原理精讲(源码分析) 并发编程是指在程序中使用多线程技术来实现并行处理的能力。多线程机制使得程序可以分解成互不干扰的任务,从而提高了程序执行的效率。并发编程可以通过对线程的创建,管理和协作进行控制,以实现更加高效的并发执行。并发编程的优点包括:① 提高程序执行效率:通过多线程并行处理,程序的处理速度可以显著提高。② 增强系统的可扩展性:多线程并行处理可以有效地利用系统的处理能力,从而实现更好的可扩展性。③ 提高程序的响应速度:多线程可以使得程序的响应速度更快,从而提高用户的体验。但是,Java并发编程也存在一些难点,比如:① 线程间的数据竞争:多个线程同时访问共享数据时,可能会出现数据竞争的情况,需要使用同步机制来解决。② 线程安全性问题:多线程程序的安全性问题需要得到重视,需要采用正确的同步机制来保证线程安全。③ 死锁问题:多个线程相互等待对方释放锁的情况称为死锁,需要避免。 阅读全文
posted @ 2023-05-04 17:56 不吃紫菜 阅读(712) 评论(0) 推荐(1) 编辑
摘要: Java多线程(一篇从0讲透) 多线程指的是在一个程序中同时运行多个线程,这些线程可以独立运行或者相互协作,从而完成更加复杂的任务。Java中的多线程可以使用synchronized关键字来实现线程同步,避免多个线程同时访问共享资源而导致的数据错误。此外,Java中还提供了Lock、Condition、Semaphore等类和接口来实现更加灵活的线程同步和线程控制。Java多线程的优点包括提高程序的响应速度,充分利用多核CPU的优势,提高程序的效率和性能。同时,Java的多线程也可以用于实现复杂的并发控制,如线程协作、线程调度等。 阅读全文
posted @ 2023-04-01 15:24 不吃紫菜 阅读(1086) 评论(0) 推荐(1) 编辑
摘要: JavaSE基础 (全网最全知识点) Java SE(Java Standard Edition,Java 标准版)是Java技术的核心和基础,是Java ME和Java EE编程的基础 [1] 。Java SE是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。javase主要包含:java基础语法、java常用API、IO流、多线程、集合、面对对象、基本数据结构等内容。 阅读全文
posted @ 2023-02-27 10:57 不吃紫菜 阅读(1491) 评论(0) 推荐(4) 编辑
摘要: 多级缓存降低高并发压力 多级缓存就是充分利用请求处理的每个环节,分别添加缓存,减轻Tomcat压力,提升服务性能: 浏览器访问静态资源时,优先读取浏览器本地缓存。在多级缓存架构中,Nginx内部需要编写本地缓存查询、Redis查询、Tomcat查询的业务逻辑,因此这样的nginx服务不再是一个反向代理服务器,而是一个编写业务的Web服务器了。 阅读全文
posted @ 2023-02-15 14:05 不吃紫菜 阅读(538) 评论(0) 推荐(1) 编辑
摘要: Seata分布式事务 (理论与部署相结合) Seata是SpringCloud Alibaba开发出的一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT 、TCC 、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。可以很好的解决分布式系统中事务的问题。Seata的主要特点是无侵入以及高性能。对业务无侵入是指减少技术架构上的微服务化所带来的分布式事务问题对业务的侵入,高性能则是减少分布式事务解决方案所带来的性能消耗。 阅读全文
posted @ 2023-02-14 15:14 不吃紫菜 阅读(446) 评论(0) 推荐(0) 编辑
摘要: Sentinel入门到实操 (限流熔断降级) Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。在接下来的文档中,我们都会用资源来描述代码块。只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。 阅读全文
posted @ 2023-02-13 15:40 不吃紫菜 阅读(1281) 评论(0) 推荐(2) 编辑
摘要: Ribbon负载均衡 (源码分析) Ribbon 是Netflix公司提供的负载均衡客户端,一般应用于服务的消费方法;Ribbon 可以解决基于负载均衡策略进行服务调用, 所有策略都会实现IRule接口;Ribbon 内置的负载策略有8种,可以通过查看IRule接口的实现类进行分析;@LoadBalanced的作用是描述RestTemplate对象,用于告诉Spring框架,在使用RestTempalte进行服务调用时,这个调用过程会被一个拦截器进行拦截,然后在拦截器内部,启动负载均衡策略。 阅读全文
posted @ 2023-02-12 14:44 不吃紫菜 阅读(463) 评论(0) 推荐(1) 编辑
摘要: Gateway服务网关 (入门到使用) Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。① 身份认证和权限校验。一切请求要先经过网关,再到微服务。请求来了,我需要验证你是谁?验证通过才放行到对应的微服务。② 服务路由、负载均衡。③ 请求限流。例如每个微服务限制的请求是500个,现在来了2000个,那么网关就会控制这些请求,进行限制。 阅读全文
posted @ 2023-02-11 15:24 不吃紫菜 阅读(1446) 评论(0) 推荐(0) 编辑
摘要: Feign远程调用 (介绍与使用) Feign是Netflix开发的一个轻量级RESTful的HTTP服务客户端(用它来发起请求,远程调用的),是以Java接口注解的方式调用Http请求,而不用像Java中通过封装 HTTP请求报文的方式直接调用,Feign被广泛应用在Spring Cloud 的解决方案中。类似于Dubbo,服务消费者拿到服务提供者的接口,然后像调用本地接口方法一样 去调用,实际发出的是远程的请求。Feign可帮助我们更加便捷,优雅的调用HTTP API:不需要我们去拼接url然后 呢调用restTemplate的api,在SpringCloud中,使用Feign非常简单,创建一个 接口(在消费者--服务调用方这一端),并在接口上添加一些注解 阅读全文
posted @ 2023-02-10 14:28 不吃紫菜 阅读(1438) 评论(0) 推荐(0) 编辑