自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 python

从官方下载,并安装,window环境测试是否安装成功:win键+R、cmd、输入python出现版本号就成功,此时会进入Python交互模式,在交互模式的提示符>>>下,直接输入代码,按回车,就可以立刻得到代码执行结果,exit()退出Python。

2024-05-15 18:34:07 235

原创 Sentinel持久化实战

Sentinel有pull(拉)模式,和push(推)模式。本文是使用reids实现pull模式。

2023-07-05 18:14:32 766

原创 Sentinel在k8s部署

由于没有提供镜像下载,需从sentinel官方下载sentinel dashboard的jar包,这里选择1.8.0进行下载。注意与springboot版本的兼容性。

2023-06-07 17:41:43 1167

原创 windows下安装kubectl

安装vscode,然后安装Dev Containers插件。安装window版本docker。

2023-03-15 10:35:31 1922

原创 JMM内存模型

JMM定义:- **Java内存模型**即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式;- JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。背景和痛点:1. 由于CPU 和主内存间存在数量级的速率差,引入了**多级高速缓存**的传统硬件内存架构,但在多线程并发场景会带来了**缓存一致性问题(引发可见性问题)**;2. 为了提高效率,编译器会对代码**指令重排序(引发有序性问题)**、**处理器优化**会对代码乱序

2023-02-09 20:51:45 170

原创 23种设计模式

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

2022-12-20 10:23:24 99

转载 集群部署MySQL、Redis、Elasticsearch、RabbitMQ

集群 一、集群介绍1.1集群的目标1.2集群的基础方式 二、MySQL集群1、集群原理2、Docker 安装模拟 MySQL 主从复制集群2.1、下载 mysql 镜像2.2、创建 Master 实例并启动1).创建master实例2).修改 master 基本配置3) 添加 master 主从复制部分配置4).重启...

2022-02-16 23:02:59 925

原创 KubeSphere的使用 和 DevOps 流水线创建

前提:k8s-集群搭建-安装Docker、kubelet、kubeadm、kubectl负载均衡:Ingressd底层是一个nginx部署Ingress:配置:使用域名访问:

2022-02-09 21:59:19 1522 1

原创 k8s集群搭建-安装Docker、Kubelet、Kubeadm、Kubectl、KubeSphere

在准备三个虚拟机的环境下,所有节点安装Docker、kubelet、kubeadm、kubectl。安装Docker1.如果在此之前安装过旧版的Docker,需要先卸载旧版本。yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ dock

2022-02-08 22:19:07 1873

原创 一路谈谈JVM和GC

JVM结构方法区常量池Class文件中的常量池运行时常量池常量池的好处基本类型的包装类和常量池Integer与常量池String与常量池

2021-12-29 19:05:10 994

原创 一路谈谈锁

Synchronized使用修饰类的,实例方法、静态方法、代码块;实例方法:锁对象为当前实例对象:public synchronized void sayHello(){ System.out.println("Hello World");}静态方法:锁对象为当前类Class对象:public static synchronized void sayHello(){ System.out.println("Hello World");}代码块://锁对象synchronized

2021-12-21 23:19:43 611

原创 springBoot+dubbo+nacos

1.引入 <properties> <dubbo-spring-boot-starter.version>2.7.5</dubbo-spring-boot-starter.version> <dubbo-registry-nacos.version>2.7.5</dubbo-registry-nacos.version> </properties> <dependencies&g

2021-07-23 18:57:42 685

原创 Docker安装ElasticSearch

下载镜像docker pull elasticsearch:7.4.2docker pull kibana:7.4.2创建实例ElasticSearch## 创建两个文件夹,存配置和数据mkdir -p /mydata/elasticsearch/configmkdir -p /mydata/elasticsearch/data## 写入配置,代表es可以被远程任何机器访问echo "http.host:0.0.0.0">>/mydata/elasticsearch/con

2021-07-07 11:28:56 324

原创 @Cacheable的使用

一、配置1.配置redis默认是有配置redis的情况会使用redis作为缓存。2.配置Cache@Configuration// 使用redis作为cache的缓存,前提是要配置redis@ConditionalOnBean(RedisConfiguration.class)public class CacheConfiguration { @Resource private RedisConnectionFactory factory; @Resource

2021-06-10 18:45:24 1746

原创 Zookeeper分布式锁原理

一、节点Zookeeper节点的概念:Zookeeper的数据存储结构就像一棵树,这棵树由节点组成,这种节点叫做Znode。1.持久节点 (PERSISTENT)默认的节点类型。创建节点的客户端与zookeeper断开连接后,该节点依旧存在 。2.持久节点顺序节点(PERSISTENT_SEQUENTIAL)在创建节点时,Zookeeper根据创建的时间顺序给该节点名称进行编号:3.临时节点(EPHEMERAL)和持久节点相反,当创建节点的客户端与zookeeper断开连接后,临时节点会被删除

2021-06-09 12:02:44 183 1

原创 springBoot基于zookeeper实现分布式锁

Curator一套zookeeper客户端框架,解决了很多Zookeeper客户端非常底层的细节开发工作,本文主要介绍使用curator框架来实现zookeeper的分布式锁实现方案。使用curator来实现zookeeper分布式锁有多种方案,本文主要使用 InterProcessMutex 来实现全局共享锁。引入依赖 <!--curator-recipes--> <dependency> <groupId>org.ap

2021-06-09 10:50:43 398

原创 Java中的各种锁

一、概述锁的思维导图:二、synchronizedsynchronized 是可重入锁,Lock的实现类都是可重入锁;synchronized 是不可中断锁,而Lock的实现类都是可中断锁;synchronized 是一种非公平锁;synchronized 属于互斥锁,任何时候只允许一个线程的读写操作,其他线程必须等待;使用: // 可锁方法,也可锁类 private static synchronized void addCount() { count++;

2021-06-08 23:18:05 232

原创 @async注解的使用

异步调用1.使用:springboot中的启动类中添加注解**@EnableAsync**来开启异步调用;在需要异步执行的方法上添加**@Async(“taskExecutor”)**注解进行标注;类或者方法中都可使用@Async注解,(类上标有该注解表示类中方法都是异步方法);@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @inter

2021-06-03 21:52:59 1561

原创 RedisTemplate中list类型的使用

简述记录一下操作list类型的主要方法代码使用springboot的单元测试进行演示package com.bpf.RedisTempletDemo.list;import java.util.ArrayList;import java.util.List;import java.util.concurrent.TimeUnit;import org.junit.Test;import org.junit.runner.RunWith;import org.springframewo

2021-06-02 22:19:41 7065

转载 redis基本概念

Redis 持久化机制Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。当Redis重启后通过把硬盘文件重新加载到内存,就能达到恢复数据的目的。实现:单独创建fork()一个子进程,将当前父进程的数据库数据复制到子进程的内存中,然后由子进程写入到临时文件中,持久化的过程结束了,再用这个临时文件替换上次的快照文件,然后子进程退出,内存释放。RDB: 是Redis默认的持久化方式。按照一定的时间周期策略把内存的数据以快照的形式保存到硬盘的二进制文件。即Sn

2021-06-02 22:08:48 219

转载 Java8通用Builder

如果一个对象的属性过多时:public class GirlFriend { private String name; private int age; private int bust; private int waist; private int hips; private List<String> hobby; private String birthday; private String address; priv

2021-04-27 15:05:34 590

原创 Nginx配置文件修改与重启

当以下任何命令出现权限问题时,首先查看是否拥有权限,再次查看是否加上sudo1.查看nginx路径nginx的配置放在nginx.conf文件中,一般我们可以使用以下命令查看服务器中存在的nginx.conf文件。[root@ITRI-IoTPlatform-Test ~]# locate nginx.conf/usr/local/etc/nginx/nginx.conf/usr/local/etc/nginx/nginx.conf.default如果服务器中存在多个nginx.conf文件,

2021-02-23 21:12:38 2180

原创 Spring Cloud Stream消息驱动

官方定义 Spring Cloud Stream 是一个构建消息驱动微服务的框架。应用程序通过 inputs 或者 outputs 来与 Spring Cloud Stream 中binder 交互,通过我们配置来 binding ,而 Spring Cloud Stream 的 binder 负责与消息中间件交互。所以,我们只需要搞清楚如何与 Spring Cloud Stream 交互就可以方便使用消息驱动的方式。通过使用Spring Integration来连接消息代理中间件以实现消息事件驱动。S

2021-02-19 21:32:10 192 1

原创 从 “key1=value1&key2=value2…” 的字符串中,根据key获取value的工具类

从 “key1=value1&key2=value2…” 的字符串中,根据key获取value的工具类:package com.mars.cloud.user.util;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * @Project: <br> * @CreateDate: 2021/01/30 11:42 <br> * @Author: <br> *

2021-01-30 13:25:06 959

原创 在zull的ZuulFilter中加入用户信息,供后续微服务使用

此方法在请求头设置用户信息并不能被后面微服务收到:package com.mars.cloud.zuul.service.filter;import cn.hutool.json.JSONUtil;import com.mars.cloud.auth.model.bean.UserDetailsImpl;import com.mars.cloud.user.model.dto.RequestUserDto;import com.netflix.zuul.ZuulFilter;import c

2021-01-30 11:04:00 571 3

原创 maven常用标签

maven常用标签<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <!-- 指定当前pom的版本 --> <mo

2021-01-09 13:27:17 378

原创 Snapshot和Release版本

Snapshot和Release版本1.snapshot版本自动获取服务器最新代码原理我们在提交snapshot版本时 mvn deploy,会提交一个带时间搓的版本号!maven会根据模块的版本号(pom文件中的version)中是否带有“-SNAPSHOT”(注意这里必须是全部大写)来判断是快照版本还是正式版本。如果是快照版本,那么在mvn deploy时会自动发布到私服的快照版本库中;如果是正式发布版本,那么在mvn deploy时会自动发布到正式版本库中。我们下载依赖到本地仓库时,也会带

2021-01-08 21:47:48 2899

原创 Maven生命周期

Maven生命周期Lifecycle ReferenceThe following lists all build phases of the default, clean and site lifecycles, which are executed in the order given up to the point of the one specified.1.Clean LifecyclePhaseDescriptionpre-clean在实际项目清理之前执行所需的过程

2021-01-08 21:26:37 66

原创 Maven 打包 package install deploy 区别

Maven 打包 package install deploy 区别1.打包区别mvn package:打包到本项目,一般在项目target目录下。mvn install:打包到本地仓库,如果没设置Maven本地仓库,一般在用户/.m2目录下。mvn deploy:打包上传到远程仓库,如:私服nexus等,需要配置pom文件。2.打包过程mvn clean package依次执行:clean、resources、compile、testResources、testCompile、test

2021-01-08 21:09:51 546

原创 VirtualBox搭建3个虚拟机(本地搭建k8s的基础)

1.用VirtualBox搭建三个虚拟机1)先设置VirtualBox全局参数,网络设置2)利用Vagrantfile批量创建3个虚拟机并配置好Vagrantfile代码如下:Vagrant.configure("2") do |config| (1..3).each do |i| config.vm.define "k8s-node#{i}" do |node| # 设置虚拟机的Box node.vm.box = "cent

2020-12-26 18:00:22 2084

原创 使用vagrant快速创建linux虚拟机

1.下载virtualbox和vagrant去官网下载并安装virtualbox:https://www.virtualbox.org/vagrant:https://www.vagrantup.com/注意:安装virtualbox要开启cpu虚拟化,在开启启动时设置:Advanced -> CPU Configuration -> Intel Virtualization Technoiogy2.安装linux(一)打开virtualbox根据网上下载的linux镜像新建安装

2020-12-26 14:58:06 153

原创 springboot整合mongodb

1.添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>2.在application.properties中添加mongodb的连接信息spring: data: mongodb:

2020-12-25 20:10:50 130

原创 springboot集成websocket

springboot集成websocket1.pom添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId></dependency>2.配置文件:server: port: 88853.添加配置类import org.spri

2020-10-29 17:26:33 130

原创 数据库事务

数据库事务一:事务的特性事务的特性:ACID事务提供了一种机制,可用来将一系列数据库更改归入一个逻辑操作。更改数据库后,所做的更改可以作为一个单元进行提交或取消。事务可确保遵循原子性、一致性、隔离性和持续性(ACID)这几种属性,以使数据能够正确地提交到数据库中。原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作 要么都发生,要么都不发生。一致性(Consistency)一个事务中,事务前后数据的完整性必须保持一致。隔离性(Isolation)多个事务,事务的隔离

2020-09-28 12:50:42 150

原创 分布式组件SpringCloud Alibaba搭建

分布式组件SpringCloud Alibaba搭建1.SpringCloud Alibaba简介1)简介Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。该项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。2

2020-09-07 16:31:15 962

原创 快速开发一个微服务的CRUD功能

快速开发一个微服务的CRUD功能方法一:使用码云开源项目1.从码云拉取源码在码云上搜索“人人开源”可以看到这两个开源项目复制https地址在自己电脑桌面上右键 -> Git Hush Here输入命令git clone http://XX 克隆项目到自己的电脑删掉原来的.git文件2.导入到自己的项目复制克隆下来的项目,粘贴到自己的项目中在聚合项目的pom文件中添加此项目1)找到sql文件,复制并在数据库中执行2)修改application文件中的数据库连接地址3

2020-09-04 12:57:19 538

原创 微服务项目结构创建

从零开始创建一个微服务

2020-09-02 21:30:46 2767

部署k8s所需文件,yaml、sh等文件

get_helm.sh ingress-controller.yaml ingress-demo.yml kube-flannel.yml kubernetes-dashboard.yaml kubesphere-complete-setup.yaml master_images.sh node_images.sh product.yaml Vagrantfile

2022-02-13

空空如也

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

TA关注的人

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