- 博客(70)
- 资源 (3)
- 收藏
- 关注
原创 基于 Nginx+lua+Memcache 实现灰度发布
一、灰度发布原理说明灰度发布在百度百科中解释:灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。这里的用于WEB系统新代码的测试发布,让一部分(IP)用户访问新版本,一部分用户仍然访问正常版本,其原理如图:执行过程:当用户请求到达前端代理服务Nginx
2021-02-14 11:56:31 454
原创 linux下搭建zookeeper+kafka集群
linux版本:centos7.2链接:https://pan.baidu.com/s/1jjHoz_GQNe9pwTT40ZWryg提取码:4mtpkafka版本:kafka_2.12-2.7.0.tgz链接:https://pan.baidu.com/s/1b5yOLpyPh5rQy9hEGDq2Ag提取码:ciaizookeeper环境:https://blog.csdn.net/weixin_43914685/article/details/1137628821.解压安装包[root
2021-02-13 20:27:09 2072 1
原创 linux下搭建zookeeper集群全流程Centos7.2版本
zookeeper安装包下载链接:https://pan.baidu.com/s/1n7UtDJInpa_OAe_kcXM7fQ提取码:mfoq1.关闭防火墙[root@master ~]# systemctl stop firewalld[root@master ~]# systemctl disable firewalld2.关闭selinux## 标题[root@master ~]# setenforce 0[root@master ~]# vim /etc/selinux/confi
2021-02-08 21:59:38 555
原创 Centos环境下安装docker
docker默认运行目录为/var/lib/docker/,可以根据自身服务器存储大小自定义设置运行目录;可以自定义设置获取docker镜像的私有仓库;自定义设置拉取镜像时使用的镜像站点,在中国大陆,由于网络延迟或带宽限制,直接从DockerHub或其他国际仓库拉取镜像可能会非常慢,因此通常会配置国内的镜像镜像站点配置docker服务自定义设置],查看更改自定义后的docker服务信息。
2024-10-31 10:17:04 776
原创 linux nohup命令启动jar包 如何取消nohup日志打印
你好,如果你想在使用nohup启动jar包时不输出日志,可以将标准输出和标准错误重定向到/dev/null,这样日志就不会显示在终端上了。这样就可以在后台启动jar包,并且不会输出日志到终端上。日志目录指向/dev/null系统空文件,不可改其他路径必须dev。
2024-04-17 18:03:38 871
原创 mysql的常用配置
在 SQL 中,通常要求在 SELECT 语句中的 GROUP BY 字段也必须出现在 SELECT 字段列表中,这是为了确保查询的一致性,并且遵循 SQL 的标准语法。这意味着,如果你在 GROUP BY 中引用了一个字段,那么这个字段也必须出现在 SELECT 中。如果你想要在 MySQL 中允许 GROUP BY 字段不出现在 SELECT 中,你可以在 MySQL 的配置文件中修改 sql_mode,将 ONLY_FULL_GROUP_BY 这个模式移除或者设置一个非严格的模式。
2024-04-17 18:01:52 644
原创 Centos阿里云外网无法访问服务器端口服务解决方法
此命令添加了一个名为“public”的区域,并将端口号8080/tcp添加到该区域中,并将其永久性地保存在防火墙的配置中。这个命令是用来在 iptables 防火墙中添加一条规则,允许TCP协议、目标端口为8080的数据包进入(INPUT),并将它们通过(ACCEPT)。执行该命令后,将会显示当前系统中所有的防火墙规则表,包括 INPUT、OUTPUT 和 FORWARD 三个表,以及它们的各种规则链和规则列表。这个命令是用来将当前的iptables规则保存到文件中,以防止重启后规则丢失。
2023-05-22 16:01:49 1312
原创 centos阿里云常见网络问题关于只能用127.0.0.1访问公网地址不通
【代码】centos阿里云常见网络问题关于只能用127.0.0.1访问公网地址不通。
2023-04-07 15:08:14 447
原创 Centos 安装redis+开机自启动
比如我们现在就是指定了redis必须存放在/usr/local/redis目录。假设不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录,库文件会存放在/usr/local/lib目录。配置文件会存放在/usr/local/etc目录。这里指定号目录也方便后续的卸载,后续直接rm -rf /usr/local/redis 即可删除redis。将/usr/local/redis/redis.conf文件复制一份到/etc/redis目录下,并命名为6379.conf。
2023-04-07 14:56:11 332
原创 linux系统安装jdk
linux版本jdk下载链接:https://pan.baidu.com/s/1guyHOztQNMx7z05X-9UGcQ提取码:5df6检查已有版本在安装前,检查电脑上已安装的jdk版本,如果已安装,想替换的话,那么先清空java环境吧。# yum remove java# 卸载原先的jdk# rpm -qa | grep Java# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64安装新版本下载想安装的jd
2022-05-09 12:45:52 269
原创 git命令登录
1. 执行登陆用户名和密码命令git config --global user.email "you@example.com"git config --global user.name "Your Name"2. 生成密钥对ssh-keygen -t rsa -C "your_email@youremail.com"3. 配置公钥私钥然后将 .ssh/id_rsa.pub中的内容复制到下图中的key中,并点击Add SSH key4. 检测密钥对是否可以使用:ssh -T git@
2021-11-09 10:38:44 25105
转载 kafka生产者、消费者、和分区之间的关系
最近面试被问到了,复习一下大家都知道,Kafka生产者发送消息到主题,消费者订阅主题消费消息。而主题下边是分区,消息是存储在分区中,所以事实上是生产者发送消息到分区,消费者从分区读取消息。所以,生产者发送消息到哪个分区?消费者又从哪个分区读取消息呢?kafka主题的分区数可以自己设置,如果创建主题的时候没有指定分区数量,就会使用默认的server.properties中的设置。生产者与分区的关系:默认的分区策略:如果发送消息的时候指定了分区,则消息发送到指定分区;如果没有指定分区,但是消息的k
2021-10-18 11:05:10 1548
原创 springboot直接访问静态页面不通过controller
配置resourcesspring: resources: static-locations: classpath:/templates/可以直接访问templates下的静态资源
2021-09-15 16:03:38 664
原创 普通用户无法切换root用户问题解决
1.登录root用户 或者使用可以切换root的账号 sudo -i 进入root2.添加sudo文件的写权限chmod u+w /etc/sudoers3.编辑sudoers文件vi /etc/sudoers找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)ps:这里说下你可以sudoers添加下面四行中任意一条youuser ALL=(ALL) ALL%youus
2021-09-09 10:26:19 5274 1
原创 版本控制神器之Git深入介绍
基本操作1.创建版本库指定一个文件夹位置即可2.初始化操作我们要想将某个文件夹作为我们的版本库还需要通过 git init 命令来初始化。3.添加文件到版本库中想要把某个文件管理起来,首先创建一个文件然后通过 git add 命令添加到版本库中再去执行 git commit -m ‘备注’ 命令,来提交commit -m的-m后面跟的是本次操作的备注说明信息。最好是有意义的,也就是下次看到这个说明就清楚提交了什么内容。为什么Git添加文件需要add,commit一共两步呢?因为co
2021-08-17 11:14:27 165
原创 nginx高可用
1.两台节点安装keepalived [root@lizhe ~]# yum install -y keepalived [root@lizhe ~]# cd /etc/keepalived/2.修改keepalived配置文件.[root@lizhe network-scripts]# cd /etc/keepalived/[root@lizhe keepalived]# vim keepalived.conf global_defs { notification_email { ac
2021-08-16 17:05:24 100
原创 linux系统Centos简单安装nginx
下载安装包链接:https://pan.baidu.com/s/1ULrS0I6FmgUyBU6Z5Q18Hg提取码:0anr1.解压nginx压缩包[root@lizhe ~]# cd /usr/local/[root@lizhe local]# lsaegis bin cloudmonitor docker-file etc games include lib lib64 libexec nginx nginx-1.20.1.tar.gz sbin share s
2021-08-16 15:14:28 140
原创 docker构建springboot项目镜像
1.新建存放镜像目录[root@lizhe local]# mkdir docker-file[root@lizhe local]# cd docker-file/2.把项目jar包移动到该目录[root@lizhe docker-file]# mv ../spring-cloud-server.jar spring-cloud-server.jar3.创建Dockerfile 配置docker[root@lizhe docker-file]# lsspring-cloud-server.
2021-08-13 16:27:30 317
原创 springcloud整合Security
Security核心配置创建ngroute-framework工程作为 Security核心配置1.引入pom<!-- spring security 安全认证 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependen
2021-08-10 11:38:01 8345 8
原创 ScheduledExecutorService线程池实现定时任务
import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;publ
2021-08-05 14:41:06 446
原创 Springboot集成quartz设置定时任务
1.任务job类import javax.annotation.PostConstruct;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Comp
2021-08-05 14:37:11 132
原创 springboot高级篇
SpringBoot高级篇一、SpringBoot基础篇1.SpringBoot初探 SpringBoot的初衷简化配置2.SpringBoot项目的构建方式2.1 通过官网自动生成https://start.spring.io/ 快速生成2.2 IDE 在线模板生成本质上和上面是一样的,只是简化了我们的操作2.3 IDE通过maven项目构建1.创建一个独立的web项目2.引入对应依赖<parent> <groupId>org.spri
2021-08-05 09:01:21 1277
原创 springboot全局异常处理
1.全局异常处理类import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.bind.annotation.RestControllerAdvice;import com.yidong.exceptions.LoginException;import co
2021-08-05 08:55:04 129
原创 springboot拦截器
1.配置拦截器import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Service;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndV
2021-08-05 08:51:37 130
原创 Spring集成开发篇
Spring集成开发篇一.Spring整合SpringMVC1.创建web项目2.Spring整合SpringMVC 首先需要在项目引入Spring,然后在引入SpringMVC,最后让SpringMVC和Spring协调工作1.导入相关的依赖2.添加对应的配置文件3.在web.xml文件中整合3.Spring和SpringMVC的关系web.xml文件的ContextLoaderListener会优先于DispatcherServlet先执行ContextLoaderLi
2021-07-21 10:01:56 767
原创 # Spring5框架重点之SpringMVC进阶
Spring5框架重点之SpringMVC进阶Spring官网: https://spring.io/SpringMVC:控制层框架【接收请求,响应请求】1.SpringMVC的入门案例1.1 通过maven构建一个web项目[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E2IwLvw9-1626832705315)(img\1598355971112.png)]1.2 添加对应的依赖及Tomcat插件<dependencies> <d
2021-07-21 09:59:25 318 1
原创 java协同过滤推荐算法
1.什么是协同过滤协同过滤简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。2.推荐过程创建4个用户,每个用户4个商品建立物品-用户的对应关系此时查询张三张三与用户:李四相似度:0.4082482904638631张三与用户:王五相似度:0.4082482904638631张三与用户:麻六相似度:0.3333
2021-05-08 21:59:14 1077
原创 Idea配置Springboot项目
配置编码注解激活生效jdk版本文件过滤热部署1.修改pom<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional
2021-05-07 19:32:19 233
原创 微服务-分布式事务seata
什么是分布式事务指一次大的操作由不同的小操作组成的,这些小的操作分布在不同的服务器上,分布式事务需要保证这些小操作要么全部成功,要么全部失败。从本质上来说,分布式事务就是为了保证不同数据库的数据一致性。为什么要使用分布式事务在微服务独立数据源的思想,每一个微服务都有一个或者多个数据源,虽然单机单库事务已经非常成熟,但是由于网路延迟和不可靠的客观因素,分布式事务到现在也还没有成熟的方案,对于中大型网站,特别是涉及到交易的网站,一旦将服务拆分微服务,分布式事务一定是绕不开的一个组件,通常解决分布式事务问题
2021-04-29 19:38:38 308
原创 微服务-sentinel降级熔断+nacos注册中心+riboon负载+openfeign服务调用
环境搭建nacos 2.0.0官方文档地址:https://nacos.io/zh-cn/docs/what-is-nacos.html下载链接:https://pan.baidu.com/s/1mm0cnJepEVUJ7ZcoeDZCtg提取码:kuntsentinel-dashboard-1.8.1官方文档地址:https://github.com/alibaba/Sentinel/wiki/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8下载链接:https://
2021-04-28 10:32:22 532
原创 微服务-链路追踪-sleuth
基本介绍什么是链路追踪随着微服务分布式系统变得日趋复杂,越来越多的组件开始走向分布式化,如分布式服务、分布式数据库、分布式缓存等,使得后台服务构成了一种复杂的分布式网络。在服务能力提升的同时,复杂的网络结构也使问题定位更加困难。在一个请求在经过诸多服务过程中,出现了某一个调用失败的情况,查询具体的异常由哪一个服务引起的就变得十分抓狂,问题定位和处理效率是也会非常低。分布式链路追踪就是将一次分布式请求还原成调用链路,将一次分布式请求的调用情况集中展示,比如各个服务节点上的耗时、请求具体到达哪台机器上、每
2021-04-22 21:36:49 372 1
原创 微服务-消息驱动-Stream
Spring Cloud Stream 是一个构建消息驱动微服务的框架,应用程序通过input通道或者output通道来与Spring Cloud Stream中binder交互,通过配置来binding. 而Spring Cloud Stream的binder负责与中间件交互, 消息的中间件有(RabbitMQ, Kafka, ActiveMQ).本文以RabbitMQ作为中间件作为讲解(启动rabbitMQ: rabbitmq-plugins enable rabbitmq_management)官
2021-04-22 20:58:34 218 3
原创 微服务-配置中心-客户端动态刷新
1.修改pom文件<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>
2021-04-20 22:01:29 207
原创 微服务-服务网关-Gateway
官网文档:https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gatewayfilter-factories1.引入pom文件<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId&
2021-04-16 20:44:48 189
原创 微服务-服务熔断和降级-Hystrix
服务降级(fallback)是在服务器压力陡增的情况下,利用有限资源,根据当前业务情况,关闭某些服务接口或者页面,以此释放服务器资源以保证核心任务的正常运行。服务熔断(break)一般是指软件系统中,由于某些原因使得服务出现了过载现象,为防止造成整个系统故障,从而采用的一种保护措施。服务限流(flowlimit)秒杀等高并发操作,严禁同时大规模请求,排队,一秒钟N个有序进行。什么是熔断和降级服务的稳定是公司可持续发展的重要基石,随着业务量的快速发展,一些平时正常运行的服务,会出现各种突发状.
2021-04-13 10:00:42 406
原创 微服务-服务调用-openfeign
基本介绍FeignFeign 是Spring Cloud Netflix组件中的一量级Restful的 HTTP 服务客户端,实现了负载均衡和 Rest 调用的开源框架,封装了Ribbon和RestTemplate, 实现了WebService的面向接口编程,进一步降低了项目的耦合度。什么是服务调用顾名思义,就是服务之间的接口互相调用,在微服务架构中很多功能都需要调用多个服务才能完成某一项功能。为什么要使用FeignFeign 旨在使编写 JAVA HTTP 客户端变得更加简单,Feign 简化
2021-04-11 22:05:20 263
原创 使用AOP写一个简单的登录拦截
引入pom依赖 <dependency> <groupId> org.aspectj</groupId > <artifactId> aspectjweaver</artifactId > <version> 1.8.8</version > </dependency>定义权限注解package com.yidong.Aop;import java.lang.ann
2021-03-31 10:46:45 543
原创 nginx配置详解
在/nginx/conf/下创建一个extra文件夹,一些配置放到该目录下,通过载nginx.conf中通过include导入配置文件,方便维护。/nginx/confi/nginx.confworker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type text/html; sendfile on; ke
2021-03-28 16:08:59 400
原创 kafka重要配置参数详解
发送端的可选配置信息分析1.acksacks 配置表示 producer 发送消息到 broker 上以后的确认值。有三个可选项Ø 0:表示 producer 不需要等待 broker 的消息确认。这个选项时延最小但同时风险最大(因为当 server 宕机时,数据将会丢失)。Ø 1:表示 producer 只需要获得 kafka 集群中的 leader 节点确认即可,这个选择时延较小同时确保了 leader 节点确认接收成功。Ø all(-1):需要 ISR 中所有的 Replica 给予接收确认
2021-03-24 21:41:35 1570
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人