![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端开发
文章平均质量分 70
GMaya
hello
展开
-
策略模式的简单使用
一般应用场景在,多种登录方式(qq,git,账号),多种上传方式(阿里,腾信,本地,七牛云),多种查询方式(本地,es,redis),等等,有多种渠道都在使用一样的功能都可以。原创 2023-03-02 09:25:51 · 170 阅读 · 1 评论 -
自定义复杂图片水印
使用java技术,自定义复杂图片水印,其中有图片水印有不同文字水印,自适应图片大小原创 2023-02-23 17:16:06 · 776 阅读 · 0 评论 -
阿里云物联网智能视频服务接入
后端服务主要是微服务Springcloud。云平台主要是阿里云物联网智能视频服务-企业版实例主要业务场景是,户外版4G摄像头,在无人观看是不产生上行流量,在有人观看是再进行推流查看直播画面,以及支持设备主动抓图。综上只是服务器端对接云端SDK。部分功能的实现, 具体业务还需要根据自己平台的业务进行处理和变更。原创 2022-12-30 10:46:31 · 2388 阅读 · 2 评论 -
CompleteFuture并行的简单使用
前言大家好,我是GMaya。本文是解决一个业务上访问慢的痛点,整体是这样的。有一个汇总微服务a,现在需要调用其他b,c,d等多个微服务接口,然后整体将数据进行整合。如果是串行调用,每个接口需要1秒,那么三个接口也要3秒了。。。设计思路使用CompleteFuture方法,并行调用,然后数据汇总整合。具体实现模拟场景:1、pay支付微服务有三个接口,每个接口中模拟访问过慢的场景。2、order分别串行方式和并行方式进行调用。pay微服务代码/** * @ Description :原创 2022-05-18 17:43:48 · 2462 阅读 · 0 评论 -
使用docker发布第一个springboot项目
使用docker发布第一个springboot的demo,练练手吧原创 2022-04-14 21:05:04 · 1693 阅读 · 1 评论 -
从零搭建Maven私有仓库
从零玩转Nexus3,搭建maven私服,这样再也不用一个工具类拷贝无数份了,直接pom中引入maven坐标即可。原创 2022-04-13 00:30:00 · 3448 阅读 · 1 评论 -
JAVA实现图片质量压缩和加水印
使用Java处理图片,实现图片质量压缩和图片加水印原创 2022-04-01 14:38:23 · 5229 阅读 · 0 评论 -
okhttpUtil信任所有证书
使用okhttp调用https信任所有证书工具类。请求示例:结果:Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification pat.原创 2021-03-19 18:16:07 · 570 阅读 · 0 评论 -
使用公司邮箱服务器免密码配置
依赖配置<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version></dependency>application.yml 配置spring: mail: host: 127.0.0.1 # 公司邮箱服务器ip port: 25 # 公司原创 2021-03-04 15:50:22 · 715 阅读 · 2 评论 -
IDEA进行git代码分支合并
描述我们一般在dev开发,如果有特殊情况,需要自己单独开一个分支进行开发,假如是gm_dev.现在我在gm_dev分支开发完成,测试没问题,需要合并到dev分支。操作切换到你想要合并到的分支 ,这里就是dev分支。如果没有冲突的话,到此就结束ok了。如果有冲突,会弹出一个冲突的框,里面都是冲突需要手动解决的。双击其中一个文件,最左面是dev分支,最右面是gm_dev分支,中间是合并后的效果。然后一个一个解决完即可。...原创 2020-09-04 15:48:50 · 534 阅读 · 0 评论 -
AOP实现日志入参出参打印
描述减少代码中接口的入参出参打印,减少工作量,保持打印风格一致性。效果展示[2020-07-23 14:50:09 INFO http-nio-9001-exec-2] t.g.gmayaserviceadminimpl.system.aspect.LogAspect - top.gmaya.gmayaserviceadminimpl.system.controller.UserController.add()【新增登录信息】:===================[2020-07-23 14:5原创 2020-07-23 15:09:41 · 2212 阅读 · 0 评论 -
Feign的简单使用
调用微服务如果在同一个注册中心上的微服务。name:就是在注册中西的名称@FeignClient(name = "gmaya-service-admin")public interface UserFacade { @RequestMapping("user/add") R add(@RequestBody F<UserDTO> f); @RequestMapping("user/test") R test();}调用单体服务如果调用一个独立的原创 2020-06-28 15:55:46 · 258 阅读 · 0 评论 -
手撕Redis6.0
文章目录简介安装下载解压编译启动和关闭配置用户名和密码版本`6.0`之前版本`6.0`之后ACL常用命令多线程Redis6.0配置文件解读简介Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。性能极高: Redis能读的速度是110000次/s,写的速度是81000次/s 。安装Linux下安装Redis。去年好像写过一次。。。传送门下载本次下载的是Redis官网最新稳定版本# wget http://download.redis.io/releases原创 2020-05-22 11:25:21 · 1055 阅读 · 2 评论 -
Yapi的安装与使用
前言YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。简单来说,就是提供写接口文档的地方,后端人员写接口文档,前端人员直接在上面进行接口查看与开发。 官网链接安装环境linux下安装Yapi需要先安装它的依赖环境安装nodejs(7.6+)下载nodejs安装包http原创 2020-05-18 17:17:02 · 9156 阅读 · 5 评论 -
Spring Cloud Gateway网关整合
介绍Spring Cloud Gateway为Spring生态系统上的一个API网关组件,主要提供一种简单而有效的方式路由映射到指定的API,并为他们提供安全性、监控和限流等等。创建项目创建一个gmaya-gateway 项目。修改pom文件 <!--gateway网关,内置webflux 依赖--> <dependency> <groupId>org.springframework.cloud</gro原创 2020-05-14 13:39:33 · 1033 阅读 · 0 评论 -
Spring Boot Admin 监控
简介Spring Boot Admin 用于监控基于 Spring Boot 的应用,它是在 Spring Boot Actuator 的基础上提供简洁的可视化 WEB UI。Spring Boot Admin 提供了很多功能,如显示 name、id 和 version,显示在线状态,Loggers 的日志级别管理,Threads 线程管理,Environment 管理等。具体有什么好处,有什么作用,官网说的很清楚。github地址spring boot amdin 的服务端新增项目gmaya-原创 2020-05-09 15:04:21 · 343 阅读 · 0 评论 -
有关Druid的一些配置
简介Druid 是 Java 语言中最好的数据库连接池。 Druid 能够提供强大的监控和扩展功能。官方链接https://github.com/alibaba/druid以下所有配置基于springboot2.2.6配置怎么使用maven项目直接引用 <!--阿里数据库连接池 --> <dependency> &l...原创 2020-05-07 14:08:21 · 579 阅读 · 0 评论 -
添加feign熔断降级之后启动报错
问题在springcloud中,我使用feign自带的Hystrix实现熔断降级,但是却报错了。Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.[2020-04-25 15:49:59 ERROR main] org...原创 2020-04-25 16:17:26 · 601 阅读 · 2 评论 -
分布式雪花算法工具类
SnowFlake 算法,是 Twitter 开源的分布式 id 生成算法。SnowFlake算法的优点:高性能高可用:生成时不依赖于数据库,完全在内存中生成。容量大:每秒中能生成数百万的自增ID。ID自增:存入数据库中,索引效率高。SnowFlake算法的缺点:依赖与系统时间的一致性,如果系统时间被回调,或者改变,可能会造成id冲突或者重复。SnowFlakeUtil工具类...原创 2020-04-21 11:30:51 · 568 阅读 · 0 评论 -
SpringBoot+RabbitMQ削峰入门
前言当大量的客户访问请求打到后端,去访问数据库等,瞬间会爆炸的。经过前端或者其他的方案进行限流外。还是有大量的请求,这个时候需要削峰了。简单的削峰例子先设置小一点,然后循环往队列里面放消息,消费的时候延迟2秒spring: rabbitmq: host: 192.168.21.129 port: 5672 username: guest passwo...原创 2020-04-20 18:07:24 · 5557 阅读 · 4 评论 -
Linux下RabbitMQ另外一种延迟功能实现
前言前面写了使用死信对列实现了:订单下单之后 30 分钟后,用户如果没有付钱,系统需要自动取消订单。今天在研究一下另外一种rabbitmq-delayed-message-exchange插件注意:延迟插件 rabbitmq-delayed-message-exchange 是在 RabbitMQ 3.5.7 及以上的版本才支持的,依赖 Erlang/OPT 18.0 及以上运行环境。...原创 2020-04-17 15:06:49 · 458 阅读 · 0 评论 -
Spring Boot整合RabbitMQ入门
前言RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。安装完MQ,就该写个例子研究研究了。新建Spring Boot 项目。修改pom文件新增RabbitMQ 支持 <dependency> <groupId>org.springframework.boot</groupId> &...原创 2020-04-10 17:23:37 · 112 阅读 · 0 评论 -
Linux下安装RabbitMQ入门级别
Linux安装RabbitMQ安装erlang环境由于RabbitMQ是基于Erlang(面向高并发的语言)语言开发,所以在安装RabbitMQ之前,需要先安装Erlang。yum -y install epel-releaseyum -y updateyum -y install erlang socat查看erlang版本erl -version安装RabbitMQ...原创 2020-04-09 20:19:25 · 128 阅读 · 0 评论 -
Java中的多重for循环怎么跳出最外层
笔记记录不加任何代码,最里层的break,只能跳出最内层的循环, 如果想要跳出最外面的,就要新增一个标记.在想要跳出循环的地方加标记,然后break标记.同理换成continue 标记; 效果一样. /** * 测试多重for循环 break */ public static void forTest() { int a = 3; ...原创 2020-04-08 14:20:34 · 4483 阅读 · 0 评论 -
定时任务@Scheduled入门
一个最简单的例子:启动类添加注解@EnableScheduling // 开启定时任务编写单线程democron 表达式/** * cron 表达式 * 每2秒执行一次 * @throws InterruptedException */ @Scheduled(cron = "0/2 * * * * *") public voi...原创 2020-03-30 14:26:20 · 178 阅读 · 0 评论 -
Spring Cloud 整合最新版seata分布式事务(六)
前言现在我有 订单系统, 支付系统.注册中心每个系统都是单独的,事务也都是本地事务,也是独立的.那么问题来了.我—>订单系统–>支付系统.–>订单系统—>我支付系统成功了 ,自己的事务也提交了.到订单系统结果失败了.(结果就是钱付了,订单还未支付.)这样就存在了问题呀.更多的问题也存在库存系统,加库存,改订单状态,支付等等,每个单独的模块事务怎么保持统一呢!!...原创 2020-03-27 15:00:37 · 1603 阅读 · 2 评论 -
Spring Cloud 整合mybatis-plus (五)
前言其实这个整合,和spring 或者 spring boot 整合一样的其实都是一键生成的,自己把模板配好就行,从controller到service,dao,实体,增删改查我只是拷贝过来几个测试这个项目之前刚接触mybatis-plus的时候也写过自动生成的文章引入jar <dependency> <groupId>co...原创 2020-03-27 14:54:10 · 3717 阅读 · 0 评论 -
使用redis实现序列号工具类
前言项目中难免会带有字符的序列号,有的是每月从1开始, 有的是每天等等.以前也使用过存表的方式,每次获取之后加1.这次又了解了一个.记录一下redis为单线程,不存在线程安全问题.序列号工具类package com.gmaya.EurekaClient.util;import java.text.SimpleDateFormat;import java.util.Date;im...原创 2020-03-25 23:03:08 · 650 阅读 · 0 评论 -
Spring Cloud Hystrix断路器(四)
前言在微服务场景中,通常会有很多层的服务调用。如果一个底层服务出现问题,故障会被向上传播给用户。我们需要一种机制,当底层服务不可用时,可以阻断故障的传播。这就是断路器的作用。他是系统服务稳定性的最后一重保障。常常会遇到正在使用某个系统,点击到某一个功能的时候显示该模块正在升级或者请稍后查看等。怎么实现呢??使用Feign整合Hystrix默认是不开启的,需要修改配置文件applicat...原创 2020-03-18 11:00:27 · 106 阅读 · 0 评论 -
Short 类型直接和数值1做对比
今天写项目遇到了Short 返回1 需要做个判断,所以就多想了一下,研究了一下大声的告诉我,是true还是true还是true!!! public static void main(String[] args) { Short a = 1; System.out.println(a.equals(1)); System.out.printl...原创 2020-03-17 16:58:52 · 1705 阅读 · 0 评论 -
Spring Cloud Eureka服务通信Ribbon/Feign(三)
问题每一个客户端就是一个完整的项目,是一个模块,假如我有订单模块,支付模块,用户模块,等等,那么我这些模块之间怎么相互调用呢?采用HttpClient工具类访问?Ribbon 和 Feign 简介Ribbon 简介Ribbon 是 Netflix 发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon 客户端组件提供一系列完善的配置项...原创 2020-03-16 15:09:51 · 202 阅读 · 0 评论 -
Spring Cloud Eureka高可用的服务注册中心(二)
集群原理图如果只有一个注册中心(服务端),一旦挂掉,就直接GG,在分布式系统中,任何地方存在单点故障,整个系统就不是高可用的。(自己手画的难看见谅)创建服务端2在上一篇文章中写了最简单的单服务端,单客户端的例子。所以,在上一篇的基础上,继续新建一个服务端,起名字叫做服务端2登录spring官网 https://start.spring.io/保存到本地之后,导入项目服务器2(Eu...原创 2020-03-16 15:08:43 · 132 阅读 · 0 评论 -
Spring Cloud Eureka最简单的入门(一)
1原创 2020-03-16 15:07:24 · 171 阅读 · 0 评论 -
idea新建springboot项目pom文件报错
前言之前也有过类似的情况,只不过都是把spring-boot-starter-parent版本号改成本地仓库已经有的,然后继续开发。今天想写个demo,就新建了一个,然后版本号不一致,就一直报错,所以找了一天问题,才解决。太可怕了新建springboot项目的问题使用idea,一路next,到最后生成项目然后pom文件报错我特意换了一个全新的maven,发现是因为jar拉不下来,就配置了...原创 2020-03-13 14:39:27 · 10083 阅读 · 0 评论 -
易语言对接腾讯ai智能闲聊
介绍腾讯闲聊服务基于AI Lab领先的NLP引擎能力、数据运算能力和千亿级互联网语料数据的支持,同时集成了广泛的知识问答能力,可实现上百种自定义属性配置,以及男、女不同的语言风格及说话方式,从而让聊天变得更睿智、简单和有趣基础闲聊接口提供基于文本的基础聊天能力,可以让您的应用快速拥有具备上下文语义理解的机器聊天功能。准备首先在腾讯ai官网注册自己的账号,将智能闲聊接入。然后在控制台...原创 2020-03-09 10:44:26 · 3208 阅读 · 0 评论 -
获取qq音乐分享链接
前言支持qq,微信,在群里面点歌,这就要获取音乐接口的api 了。分析通过浏览器分析音乐查询接口,分享接口,等等qq音乐搜索接口:https://c.y.qq.com/soso/fcgi-bin/client_search_cp?p=1&n=1&w=水手&format=json&inCharset=utf8&outCharset=utf-8其中...原创 2020-03-08 16:21:43 · 13137 阅读 · 0 评论 -
win10安装git拉取github项目
下载git去git官网下载win版本64位安装全部下一步到结束下载小乌龟去tortoriseGit官网下载64位小乌龟。然后下面还有一个中文语言包(不下载也行),Language Packs 下面的 Chinese, simplified先安装小乌龟,一路暴力下一步到结束。安装语言包,一路到结束。鼠标右键打开小乌龟设置,选择语言为中文,结束!生成SSH密钥鼠标右键 打开 Git ...原创 2020-03-06 17:52:59 · 1456 阅读 · 0 评论 -
Excel导出导入
1. EasyExcel介绍1.1 为什么使用EasyExcel?Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版E...原创 2020-01-16 14:18:58 · 227 阅读 · 0 评论 -
idea在jdk1.8情况下使用反编译插件
没有反编译是显示compiled code public static void debug(java.lang.String... messages) { /* compiled code */ } public static void debug(java.lang.Object... messages) { /* compiled code */ }idea不需要安...原创 2019-12-30 11:51:40 · 890 阅读 · 0 评论 -
空闲时间练练手-4在linux上安装mysql
1.输入命令下载安装包# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm2.安装# sudo rpm -ivh mysql57-community-release-el7-8.noarch.rpm中间出现Is this ok [y/N]: 输入y 然后回车3.输入命令登录mysql...原创 2019-10-30 17:16:49 · 102 阅读 · 0 评论