- 博客(78)
- 收藏
- 关注
原创 SpringBoot 集成Kafka的demo
Window环境下SpringBoot 集成Kafka一、windows 环境下启动 Kafka1.kafka前提由于kafka是基于zookeeper运行的,在kafka2.x的版本中,自带了zk,本文介绍的是基于2.X版本的集成2.kafka 本地启动下载地址:https://kafka.apache.org/downloads2.1 解压后修改/config两个配置文件:kafka安装目录:D:\software\kafka\kafka_2.13-3.1.0zookeeper.pr
2022-04-26 19:08:45 1154
原创 Java 调用第三方接口方法
Java 调用第三方接口方法一、 通过JDK网络类Java.net.HttpURLConnection1.java.net包下的原生java api提供的http请求使用步骤:1、通过统一资源定位器(java.net.URL)获取连接器(java.net.URLConnection)。2、设置请求的参数。3、发送请求。4、以输入流的形式获取返回内容。5、关闭输入流。2.HttpClientUtil工具类/** * jdk 调用第三方接口 * @author hsq */pub
2022-04-25 11:25:40 30897 43
原创 SpringBoot 使用 AOP 记录接口操作日志
SpringBoot 使用 AOP 记录接口操作日志一、AOP简介1.什么是AOPAOP:Aspect Oriented Programming 面向切面编程AOP关注不是某一个类或某些方法;控制大量资源,关注的是大量的类和方法。2.AOP应用场景以及常用术语权限控制、缓存控制、事务控制、分布式追踪、异常处理等Target:目标类,即需要被代理的类。例如:UserServiceJoinpoint(连接点):所谓连接点是指那些可能被拦截到的方法。例如:所有的方法PointCut 切
2022-04-20 19:19:31 1280
原创 SpringBoot 集成 Redis的demo
SpringBoot 集成 Redis 示例1.引入依赖 <!-- redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </depende
2022-04-15 20:13:07 1537
原创 Java利用POI实现导入导出Excel表格demo
Java Excel导入导出一、Java利用POI实现导入导出Excel表格demo1.引入依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </depe
2022-04-12 19:25:32 4325
原创 SpringBoot 集成 Kafka通俗易懂
Kafka一、什么是Kafka? Apache Kafka 是一个分布式高吞吐量的流消息系统,Kafka建立在ZooKeeper同步服务之上。它与Apache Storm 和 Spark 完美集成,用于实时流数据分析,与其他消息传递系统相比,Kafka具有更好的吞吐量,内置分区,数据副本和高度容错功能,因此非常适合大型消息处理应用场景。二、Kafka特性高并发:支持数千个客户端同时读写可扩展性:kafka集群支持热扩展容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)持
2021-07-08 11:23:59 661 1
原创 敏捷开发的了解
SAFe敏捷开发一、敏捷开发介绍1.什么是敏捷开发?敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。2.敏捷核心思想价值驱动体现在传统的开发模式和敏捷开发模式的对比适应变化创意、产品、市场的不确定性,迭代开发对于需求变更,进行修改、建立快速反馈自组织团队训练个人能力、配合能力3.传统的开发模式和敏捷开发模式的对比瀑布模型:优点:为项目提供了按阶段划分的检查点。当前一阶段完成后,您只需要去关注后续阶段.它提供了一个模
2021-06-12 14:22:10 465 2
原创 Shiro框架
Apache Shiro框架博客原文:链接一、什么是Apache Shiro? Apache Shiro是Java的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。 实际上,Shiro的主要功能是管理应用程序中与安全相关的全部,同时尽可能支持多种实现方法。Shiro是建立在完善的接口驱动设计和面向对象原则之上的,支持各种自定义行为。Shiro提供的默认实现,使其能完成与其他安全框架同样的功能,这不也是我们一直努力想要得到的
2021-02-24 17:58:44 166 2
原创 MongoDB数据库
一、什么是MongoDB?1.简介 MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB将数据存储为一个文档,数据结构由键值对组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。2.主要特点MongoDB是一个面向文档存储的数据库,操作起来比较简单和容易。你可以在MongoDB纪录中设
2021-01-15 17:56:15 309
原创 redis 对应Java的操作
redis一、redis简介 redis是开放源代码的内存数据结构存储,用作数据库,缓存和消息代理。Redis提供数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,地理空间索引和流。redis具有内置的复制,Lua脚本,LRU逐出,事务和不同级别的磁盘持久性,并通过以下方式提供高可用性Redis Sentinel 和 Redis Cluster自动分区。 redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。1.Redis与其他key-va
2021-01-13 17:25:55 376
原创 数据库查询优化
数据库查询优化一、数据库的查询优化方法1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by 涉及的列上建立索引。2.应尽量避免在where子句中对字段进行null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,可以在num上设置默认值0,确保表中num列没有null值。select id from t where num is null-- 可以在num上设置默认值0,确保表中num列没有null值select id from t where num=03.
2021-01-12 17:44:58 11070 2
原创 RabbitMQ消息队列
RabbitMQ消息队列一、什么是RabbitMQ? RabbitMQ是一个由Erlang语言开发的AMQP的开源实现。 AMQP:Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为了面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。 RabbitMQ 最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可 用性等方面表现不俗。具体特点包括:1.可靠性 RabbitMQ使用
2021-01-07 17:54:36 444
原创 ZooKeeper协调服务分布式
ZooKeeper协调服务分布式ZooKeeper官方文档一、什么是ZooKeeper? ZooKeeper是用于维护配置信息,命名,提供分布式同步和提供组服务的集中式服务。所有这些类型的服务都以某种形式被分布式应用程序使用。每次实施它们时,都会进行很多工作来修复不可避免的错误和竞争条件。由于难以实现这类服务,因此应用程序最初通常会跳过它们,这会使它们在发生更改时变脆并且难以管理。即使部署正确,这些服务的不同实现也会导致管理复杂。二、ZooKeeper数据模型 ZooKeeper具有层次结构的
2021-01-06 15:36:58 243
原创 Dubbo框架学习
Dubbo框架Apache Dubbo dubbo文档一、为什么要使用dubbo ? 随着Internet的快速发展,Web应用程序的规模不断扩大,最后我们发现传统的垂直体系结构(单片式)已无法解决。分布式服务体系结构和流计算体系结构势在必行,迫切需要一个治理系统来确保体系结构的有序发展。1.整体架构 当流量非常低时,只有一个应用程序,所有功能都部署在一起以减少部署节点和成本。在这一点上,数据访问框架(ORM)是简化CRUD工作量的关键。2.垂直架构 当流量增加时,添加单片应用程
2021-01-05 16:24:28 246
转载 JVM 学习整理
一、运行时数据区域(内存模型)1.内存区域 是指JVM运行时将数据分区域存储,强调对内存空间的划分。2.内存模型 是定义了线程和主内存之间的抽象关系,即JMM定义了JVM在计算机内存中的工作方式。共享内存的并发模型,线程之间主要通过读-写共享变量(堆内存中的实例域,静态域和数组元素)来完成隐式通信。Java 内存模型(JMM)控制 Java 线程之间的通信,决定一个线程对共享变量的写入何时对另一个线程可见。主要的运行时数据如下:3.内存区域图jdk8 之前内存区域图:jdk8之后内存
2020-12-31 16:45:21 158
转载 单点登录实现的原理
说说单点登录实现的原理 单点登录在现在的系统架构中广泛存在,他将多个子系统的认证体系打通,实现了一个入口多处使用,而在架构单点登录时,也会遇到一些小问题,在不同的应用环境中可以采用不同的单点登录实现方案来满足需求。# 共享Session 共享Session可谓是实现单点登录最直接、最简单的方式。将用户认证信息保存于Session中,即以Session内存储的值为用户凭证,这在单个站点内使用是很正常也很容易实现的,而在用户验证、用户信息管理与业务应用分离的场景下即会遇到单点登录的问题,在应用体系简单
2020-12-30 11:29:43 208
原创 Freemarker
Freemarker笔记Day01笔记一、Freemarket概念、特点、环境搭建1.Freemarket概念FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,用纯Java编写。 FreeMarker 被设计用来生成HTML Web 页面,特别是基于 MVC 模式的应用程序虽然FreeMarker 具有一些编程的能力,但通常由 Java 程序准备要显示的数据。FreeMarker 不是一个 Web 应用框架,而适合作为 Web 应用框架一个组件。 FreeMarker 与容器
2020-08-16 17:01:16 312
原创 Git学习和安装
一、版本控制1.本地版本控制系统 人们把项目拷贝到本地磁盘上进行备份, 然后以命名方式来区分. 这种做法好处是简单, 但坏处也不少比如备份比较 多或许就会混淆不同版本之间的区别. 那为了解决这个问题, 有人就开发了一个本地版本的管理系统2.集中化版本控制系统 诸如 CVS,Subversion 以及 Perforce 等,都有一个单一的集中管 理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出新的文件或者提 交更新 只要整个项目的历史记录被保存在单一位
2020-08-16 17:00:19 154
原创 SpringBoot框架
Day01笔记一、Spring 4.x 基本注解形式开发配置 Spring框架从4.x版本开始推荐使用注解形式来对java 应用程序进行开发与配置,并且可以完全替代原始的Xml+注解形式的开发。 在使用注解形式进行项目开发与环境配置时,Spring 框架提供了针对环境配置与业务bean开发相关注解。1.注解1.1声明 Bean 注解@Component 组件 没有明确规定其角色,作用在类级别上声明当前类为一个业务组件,被Spring Ioc 容器维护;@Service 在业务逻辑层(Serv
2020-08-16 16:59:09 259
原创 SpringMvc学习
Day01-SpringMvc笔记一、MVC思想&SpringMvc框架概念与特点1.什么叫MVC思想model --模型 view–视图 controller–控制器模型:数据模型,负责封装应用程序数据在视图层展示,域对象(JavaBean Map List )视图:只是展示这些数据jsp页面,不包含任何业务逻辑。控制器:负责接收来自用户的请求,并调用后台服务(service 或者 dao)来处理业务逻辑。-Servlet 业务逻辑处理,页面转发。MVC 模式的核心思想是将业
2020-08-16 16:58:11 230
原创 Mybatis学习
Day01Mybatis笔记一、Mybatis框架概念和特点1.Mybatis特点1)属于持久层框架 持久化(将内存中的对象数据转移到数据库的过程称为持久化) 持久化框架:Mybatis Hibernate Spring-Date-Jpa2)半自动化 ORM框架 ORM:对象关系映射思想面向对象OOP关系型数据库类(User)t_user成员变量字段类对象记录3)Mybatis-半自动化: 1.表需要手动进行设计 主表 从表
2020-08-16 16:56:19 270
原创 Zuul服务网关二个功能请求的路由和过滤器使用
Zuul服务网关1.理解Zuul Zuul 是从设备和网站到应用程序后端的所有请求的前门。作为边缘服务应用程序,Zuul 旨在实现动态路由,监视,弹性和安全性。Zuul 包含了对请求的路由和过滤两个最主要的功能。Zuul 是 Netflix 开源的微服务网关,它可以和 Eureka、Ribbon、Hystrix 等组件配合使用。Zuul 的核心是一系列的过滤器,这些过滤器可以完成以下功能:审查与监控:在边缘位置追踪有意义的数据和统计结果,从而带来精确的生产试图压力测试:逐渐增加只想集群
2020-05-25 16:16:26 1011 2
原创 Alibaba Sentinel服务哨兵
Sentinel服务哨兵Alibaba Sentinel 就是一款高性能且轻量级的流量控制、熔断降级可替换方案Sentinel 官网:https://github.com/alibaba/Sentinel1.Sentinel是什么 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特征:丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促
2020-05-23 21:07:12 828
原创 Feign声明式服务调用
Feign声明式服务调用1.理解Feign**Feign 是 Spring Cloud Netflix 组件中的一个轻量级 RESTful 的 HTTP 服务客户端,实现了负载均衡和 Rest 调用的开源框架,封装了 Ribbon 和 RestTemplate,**实现了 WebService 的面向接口编程,进一步降低了项目的耦合度。Feign 内置了 Ribbon,用来做客户端负载均衡调用服务注册中心的服务。Feign 本身并不支持 Spring MVC 的注解,它有一套自己的注解,为了更方便
2020-05-22 09:18:55 199
原创 Consul注册中心
Consul注册中心1.理解ConsulConsul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其它分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其它工具(比如 ZooKeeper 等),使用起来也较为简单。Consul 使用 Go 语言编写,因此具有天然可移植性(支持Linux、Windows 和 Mac OS);安装包仅包含一个可
2020-05-21 21:28:28 3627
原创 Ribbon负载均衡
Ribbon负载均衡1.理解Ribbon Ribbon 是一个基于 HTTP 和 TCP 的 客服端 负载均衡工具,它是基于 Netflix Ribbon 实现的。 它不像 Spring Cloud 服务注册中心、配置中心、API 网关那样独立部署,但是它几乎存在于每个Spring Cloud 微服务中。包括 Feign 提供的声明式服务调用也是基于该 Ribbon 实现的。Ribbon 默认提供很多种负载均衡算法,例如轮询、随机等等。甚至包含自定义的负载均衡算法。2.Ribbon功能
2020-05-21 20:53:20 198
原创 SpringCloud中的Eureka服务注册中心
Eureka服务注册中心1.服务注册中心 服务注册中心是服务实现服务化管理的核心组件,类似于目录服务的作用,主要用来存储服务信息,譬如提供者 url 串、路由信息等。服务注册中心是微服务架构中最基础的设施之一。在微服务架构流行之前,注册中心就已经开始出现在分布式架构的系统中。Dubbo 是一个在国内比较流行的分布式框架,被大量的中小型互联网公司所采用,它提供了比较完善的服务治理功能,而服务治理的实现主要依靠的就是注册中心。2.什么是注册中心 注册中心可以说是微服务架构中的“通讯录”,
2020-05-20 10:57:42 235
原创 了解SpringCloud入门学习
一、什么是SpringCloud1.概念 SpringCloud是一个服务治理平台,提供了一些服务框架。包含了:服务注册与发现、配置中心消息中心、负载均衡、数据监控等等。 SpringCloud是一个微服务框架,相比Dubbo等RPC框架,SpringCloud提供了全套的分布式系统解决方案。 SpringCloud微服务基础框架Netflix的多个开源组件进行了封装,同时又实现了和云端平台以及SpringBoot 框架集成。 SpringCloud是一个基于SpringBoot实现的
2020-05-20 08:38:59 194
原创 Spring JDBC和事务
一、Spring JDBC环境搭建1.引入依赖(添加坐标)<!--junit单元测试--><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version>...
2020-03-20 09:01:38 124
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人