自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(588)
  • 收藏
  • 关注

原创 js制作省市区三级

省份下拉框绑定事件;现在可以选择省份了,在下拉框中选择某个省,市下拉框就应该列出该省所包含的城市。城市下拉框绑定事件;完成了一个简单的省市区三级联动。再准备一些城市相关数据,本实例只列举了少量数量。准备三个select元素。

2024-05-22 01:46:44 180

原创 多种echart图转表格

项目中提到了一个需求,想要看到echarts图表中的数据,这里使用toolbox工具栏渲染出一个table表格,并加入导出excel功能。所以就用到echarts配置项中的toolbox工具栏,使用 jquery.table2excel.js实现 导出excel功能。首先引入jquery.js,再次引入 jquery.table2excel.js。

2024-05-16 22:32:26 229

原创 Layui的select导致vue双向绑定失效

所以可以得出思路:既然问题出在vue的绑定先于layui的片段添加,那么我们只需要在添加html片段后再手动进行一次数据绑定就可以解决问题(根据其他博主的测试,v-model与下拉框的数据关联未失效,失效的仅是同步到vue代码里的过程,这也可以反证上述原因成立),因此,在Layui的下拉表单中使用v-model并不能成功实现双向绑定。1.Layui的实现逻辑是向html文件中添加对应组件的html片段。2.Vue的双向绑定在Layui添加组件片段前就已经完成。this.detail.caizhi打印为空。

2024-04-28 22:00:41 137

原创 druid配置不同数据库mysql,postgresql

在DruidConfig中配置多个数据源的datasource。在需要切换数据源的方法上加上@DataSource注解。如果不加@DataSource注解,默认使用主数据源。增加DataSourceType类里面的。配置application-.yml文件,添加数据源参数。

2024-04-22 20:53:09 214

原创 Redis多数据源配置

yaml文件。

2024-04-12 18:57:54 184

原创 多数据源事务控制

在多数据源下,由于涉及到数据库的多个读写。一旦发生异常就可能会导致数据不一致的情况,在这种情况希望使用事务进行回退。但是Spring的声明式事务在一次请求线程中只能使用一个数据源进行控制但是对于多源数据库:单一事务管理器(TransactionManager)无法切换数据源,需要配置多个TransactionManager。@Transactionnal是无法管理多个数据源的。如果想真正实现多源数据库事务控制,肯定是需要分布式事务。这里讲解多源数据库事务控制的一种变通方式。

2024-04-12 17:47:23 345

原创 SpringBoot多数据源配置

对于大多数的java应用,都使用了spring框架,spring-jdbc模块提供AbstractRoutingDataSource,其内部可以包含了多个DataSource,然后在运行时来动态的访问哪个数据库。这种方式访问数据库的架构图如下所示:

2024-04-12 17:40:04 560

原创 CDN内容分发

节省骨干网带宽,减少宽带需求量(节省带宽流量)提供服务器端加速,解决用户访问量大造成的服务器过载问题(防止服务器过载)服务商能使用Web Cache技术在本地缓存用户访问过的Web页面和对象,实现相同对象的访问无需占用主干的出口带宽,提高用户访问互联网的响应时间的需求(提高访问速度)能克服网站分布不均的问题,减低网站的自身建设和维护成本(减低费用)减低“通信风暴”影响,提高网络访问的稳定性(提高稳定性)

2024-04-12 12:17:44 430

原创 go之区块链

因货币供给大于货币实际需求,也即现实购买力大于产出供给,导致货币贬值,而引起的一段时间内物价持续而普遍地上涨现象。其实质是社会总需求大于社会总供给 (供远小于求)。纸币、含金量低的铸币、信用货币,过度发行都会导致通胀。

2024-04-09 22:40:14 633

原创 SpringBoot整合Zuul

网关配置方式有多种,默认、URL、服务名称、排除|忽略、前缀。网关配置没有优劣好坏,应该在不同的情况下选择合适的配置方案。zuul网关其底层使用ribbon来实现请求的路由,并内置Hystrix,可选择性提供网关fallback逻辑。使用zuul的时候,并不推荐使用Feign作为application client端的开发实现。毕竟Feign技术是对ribbon的再封装,使用Feign本身会提高通讯消耗,降低通讯效率,只在服务相互调用的时候使用Feign来简化代码开发就够了。而且。

2024-04-09 15:35:36 590

原创 SpringBoot整合Dubbo实战

服务接口 Dubbo 中沟通消费端和服务端的桥梁。在模块的下建立在中,定义了sayHello这个方法。后续服务端发布的服务,消费端订阅的服务都是围绕着接口展开的。定义了服务接口之后,可以在服务端这一侧定义对应的实现,这部分的实现相对于消费端来说是远端的实现,本地没有相关的信息。在模块的下建立@Override在中,实现了接口,对于sayHello方法返回Hello name。注:在类中添加了注解,通过这个配置可以基于 Spring Boot 去发布 Dubbo 服务。

2024-04-09 14:29:58 926

原创 nginx配置域名

配置minio的nginx.conf。在腾讯云获取域名证书。

2024-04-08 23:14:37 216

原创 Sentinel 进阶

资源是 Sentinel 中的核心概念之一。在项目开发时,我们只需要考虑这个服务、方法或代码是否需要保护,如果需要保护,就可以将它定义为一个资源。适配主流框架自动定义资源通过 SphU 手动定义资源通过 SphO 手动定义资源注解方式定义资源。

2024-04-08 14:41:24 694

原创 Hystrix实战

Hystrix 提供了服务降级功能,能够保证当前服务不受其他服务故障的影响,提高服务的健壮性。我们可以通过重写 HystrixCommand 的 getFallBack() 方法或 HystrixObservableCommand 的 resumeWithFallback() 方法,使服务支持服务降级。Hystrix 服务降级 FallBack 既可以放在服务端进行,也可以放在客户端进行。

2024-04-08 11:04:32 628

原创 ZooKeeper JavaAPI 操作

1.Curator 是 Apache ZooKeeper 的Java客户端库。3.Curator 项目的目标是简化 ZooKeeper 客户端的使用。4.Curator 最初是 Netfix 研发的,后来捐献了 Apache 基金会,目前是 Apache 的顶级项目。5.官网:http://curator.apache.org/

2024-04-07 23:44:50 605

原创 ZooKeeper 命令操作

ZooKeeper 是一个树形目录服务,其数据模型和Unix的文件系统目录树很类似,拥有一个层次化结构。这里面的每一个节点都被称为: ZNode,每个节点上都会保存自己的数据和节点信息。节点可以拥有子节点,同时也允许少量(1MB)数据存储在该节点之下。

2024-04-07 23:19:44 290

原创 gateway的断言

在计算机网络中,网关(Gateway)通常指的是一个网络节点,它充当了连接不同网络的中间节点,负责将数据从一个网络传输到另一个网络。在软件开发中,特别是在微服务架构中,网关(Gateway)通常指的是API网关(API Gateway),它是系统的入口点,负责接收客户端请求并将请求转发到适当的服务。API网关通常具有各种功能,其中包括断言(Assertion),断言是用于检查请求的条件,以确定是否应该执行特定操作的机制。在API网关中,断言通常用于路由请求、执行安全检查、校验请求头或参数等。

2024-04-07 22:40:05 467

原创 GORM CRUD指南

CRUD通常指数据库的增删改查操作,本文详细介绍了如何使用GORM实现创建、查询、更新和删除操作。本文中的db变量为*gorm.DB。

2024-04-07 09:27:24 630

原创 gin框架gorm使用

在使用ORM工具时,通常我们需要在代码中定义模型(Models)与数据库中的数据表进行映射,在GORM中模型(Models)通常是正常定义的结构体、基本的go类型或它们的指针。同时也支持及接口(interfaces)。gorm.ModelRole string `gorm:"size:255"` // 设置字段大小为255not null"` // 设置会员号(member number)唯一并且不为空Num int `gorm:"AUTO_INCREMENT"` // 设置 num 为自增类型。

2024-04-06 16:39:03 715

原创 Gin中间件

Gin中的中间件必须是一个类型。

2024-04-06 15:58:46 289

原创 Gin路由

为没有配置处理函数的路由添加处理程序,默认情况下它返回404代码,下面的代码为没有匹配到路由的请求都返回。我们可以将拥有共同URL前缀的路由划分为一个路由组。通常我们将路由分组用在划分业务逻辑或划分API版本时。包裹同组的路由,这只是为了看着清晰,你用不用。此外,还有一个可以匹配所有请求方法的。包裹功能上没什么区别。

2024-04-06 15:53:02 90

原创 gin获取参数、文件上传、重定向

为了能够更方便的获取请求相关参数,提高开发效率,我们可以基于请求的。当前端请求的数据通过form表单提交时,例如向。识别请求数据类型并利用反射机制自动提取请求中。当前端请求的数据通过JSON提交时,例如向。获取请求URL路径中的参数的方式如下。类型的数据,并把值绑定到指定的结构体对象。下面的示例代码演示了。强大的功能,它能够基于请求自动提取。

2024-04-06 15:48:35 224

原创 Gin模板渲染

李文周的博客修改模板引擎的标识符

2024-04-06 15:41:54 193

原创 go语言面试题6

Go语言相比C++/Java等语言是优雅且简洁的,是我最喜爱的编程语言之一,它既保留了C++的高性能,又可以像Java,Python优雅的调用三方库和管理项目,同时还有接口,自动垃圾回收和goroutine等让人拍案叫绝的设计。有许多基于Go的优秀项目。Docker,Kubernetes,etcd,deis,flynn,lime,revel等等。Go无疑是云时代的最好语言!

2024-04-03 15:24:53 580

原创 go语言编程题1

此题目考察channel,用三个无缓冲channel,如果一个channel收到信号则通知下一个。主线程一般要waitGroup等待协程退出,这里简化了一下直接sleep。协程执行完后通过channel通知,是否超时。思路:采用channel来协调goroutine之间顺序。可以在子case再加一个for select语句。思路:采用反射的Call方法实现。

2024-04-03 14:53:52 132

原创 go语言面试5

channel解决方法,采用select注意:一个已经关闭的channel,只能读数据,不能写数据。

2024-04-03 14:49:09 1002

原创 go语言面试题4

微服务是一种开发软件的架构和组织方法,其中软件由通过明确定义的 API 进行通信的小型独立服务组成。微服务架构使应用程序更易于扩展和更快地开发,从而加速创新并缩短新功能的上市时间。微服务有着自主,专用,灵活性等优点。

2024-04-03 14:40:31 506

原创 go语言面试题3

如果有个goroutine一直占用资源,那么GMP模型会从正常模式转变为饥饿模式(类似于mutex),允许其它goroutine使用work stealing抢占(禁用自旋锁)。work stealing算法指,一个线程如果处于空闲状态,则帮其它正在忙的线程分担压力,从全局队列取一个G任务来执行,可以极大提高执行效率。

2024-04-03 14:35:29 607

原创 go语言面试题2

io.Closer答:将nil转换为*GobCodec类型,然后再转换为Codec接口,如果转换失败,说明*GobCodec没有实现Codec接口的所有方法。

2024-04-03 14:30:36 748

原创 go语言面试题1

协程是用户态轻量级线程,它是线程调度的基本单位。通常在函数前加上go关键字就能实现并发。一个Goroutine会以一个很小的栈启动2KB或4KB,当遇到栈空间不足时,栈会自动伸缩, 因此可以轻易实现成千上万个goroutine同时启动。

2024-04-03 12:42:07 932

原创 Wesocker失败重连机制

每次执行心跳检测 向服务器发送一条数据 服务器就会返回一条数据(只要在设置的延时(30秒)内) 客户端再接收到数据 就会重新调用心跳检测方法。如果发生异常 就会调用ws.close();方法 close方法就会一直重复的调用重连方法 直到再次连接上服务器 完成断网重连!每30s执行一次心跳检测。

2024-04-03 10:47:36 96

原创 Nacos的Namespace、Group和DataID

例如,我们可以为每个环境创建一个独立的Namespace,然后在每个Namespace下为每个微服务或应用组件创建一个Group,最后在Group下为每个配置信息创建一个唯一的DataID。Namespace的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。例如,一个应用可能使用了database_url配置和MQ_topic配置,我们可以将这些配置分别划分到不同的Group中,以便更好地管理和维护。通过DataID,我们可以轻松地查找、获取和更新配置信息。

2024-04-02 11:10:26 383

原创 SpringBoot 实现异步

通过 CompletableFuture,可以以函数式的风格组合和处理异步任务,支持链式调用、异常处理、超时设置等功能。通过定义自定义事件和监听器,并发布事件,可以实现在应用程序中的不同模块之间进行消息的传递和处理。Java 提供了Executor 框架来实现线程池,通过预先创建一组线程并管理它们的执行,可以有效地处理并发任务,避免线程的频繁创建和销毁。通过在方法上添加 @Async 注解,可以让方法在独立的线程中异步执行,而不会阻塞当前线程。Java 中的基本并发单元,它代表着一个单独的执行线程。

2024-04-02 09:20:29 294

原创 SpringBoot 与 Spring 的优缺点有哪些?

Spring 框架是一个非常流行的框架,它为开发者提供了大量的功能和特性,如依赖注入、面向切面编程等。

2024-04-02 08:49:22 737

原创 Mysql 5.7和Mysql 8到底有哪些差异

MySQL 5.7和MySQL 8之间最明显的差异之一是数据字典的变化。MySQL 8引入了新的数据字典架构,用于管理数据库的元数据信息。这一变化对于数据库的管理和性能都具有深远的影响。在MySQL 5.7及以前的版本中,系统表被用于存储数据库的元数据信息。这些系统表具有一定的限制,包括性能瓶颈和可扩展性的问题。而MySQL 8通过引入新的数据字典解决了这些问题。数据字典提高了元数据的存储效率,降低了元数据访问的成本,并使MySQL更容易扩展和维护。

2024-04-02 08:42:31 416

原创 kafka有大量数据积压

Kafka消费者消费数据的速度是非常快的,但如果由于处理Kafka消息时,由于有一些外部IO、或者是产生网络拥堵,就会造成Kafka中的数据积压(或称为数据堆积)。如果数据一直积压,会导致数据出来的实时性受到较大影响。

2024-04-01 19:15:17 284

原创 Kafka配额限速机制

生产者和消费者以极高的速度生产/消费大量数据或产生请求,从而占用broker上的全部资源,造成网络IO饱和。有了配额(Quotas)就可以避免这些问题。Kafka支持配额管理,从而可以对Producer和Consumer的produce&fetch操作进行流量限制,防止个别业务压爆服务器。

2024-04-01 18:33:01 347

原创 Kafka中数据清理

Kafka的消息存储在磁盘中,为了控制磁盘占用空间,Kafka需要不断地对过去的一些消息进行清理工作。Kafka的每个分区都有很多的日志文件,这样也是为了方便进行日志的清理。在Kafka的broker或topic配置中:配置项配置值说明true(默认)开启自动清理日志功能delete(默认)删除日志compaction压缩日志同时支持删除、压缩。

2024-04-01 18:24:03 1035

原创 Kafka原理

Kafka启动时,会在所有的broker中选择一个controller前面leader和follower是针对partition,而controller是针对broker的创建topic、或者添加分区、修改副本数量之类的管理任务都是由controller完成的Kafka分区leader的选举,也是由controller决定的。

2024-04-01 17:50:11 1097

原创 安装Kafka-Eagle

JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理。很多的一些软件都提供了JMX接口,来实现一些管理、监控功能。

2024-04-01 17:28:42 392

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除