自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 docker容器之间的网络通信

docker创建容器时,默认分配了bridge网络,这样所有的容器都在同一个网段,是能够相互通信的。那如果想某些容器之间不能通信呢?通过自定义网络就能实现。一、创建两个使用默认bridge网络的容器docker run -itd --name jack1 busyboxdocker run -itd --name jack2 busybox二、创建自定义网络jack-networkdocker network create --driver bridge jack-network三

2020-10-12 14:19:32 655

原创 docker搭建私有仓库

docker官方提供了Registry镜像,可以用来搭建本地私有镜像仓库。本文示例私有镜像仓库的搭建,以及实现登录验证功能。目录一、启动 Docker Registry二、上传镜像到本地私有仓库三、配置私有仓库认证3.1 确定宿主机IP地址3.2 生成自签名证书3.3 生成用户名和密码3.4 启动Docker Registry本地镜像仓库服务3.5 配置Docker Registry访问接口3.6 通知docker使用私有仓库3.7 测试推送镜像3.7.1 镜

2020-10-12 02:32:32 991

原创 阿里云镜像仓库

本文示例将镜像推送到阿里云镜像仓库。目录一、创建镜像仓库二、将镜像推送到Registry一、创建镜像仓库创建成功后,点击仓库名称。有上传镜像、拉取镜像的示例代码。二、将镜像推送到Registry第一步:登录阿里云Docker Registry[root@localhost ~]# sudo docker login [email protected] registry.cn-shenzhen.aliyuncs.comPa.

2020-10-11 23:22:35 6063

原创 通过Dockerfile文件构建镜像

本文通过构建Nginx镜像,示例如果通过Dockerfile文件构建镜像。目录一、创建一个目录二、编写Dockerfile文件三、构建镜像四、使用构建成功的镜像创建容器五、测试一、创建一个目录创建目录的目的,用于区分不同镜像的构建。相当于工作空间。[root@localhost install]# mkdir nginx_build[root@localhost install]# cd nginx_build/[root@localhost nginx_build

2020-10-11 18:49:06 5218

原创 DSL语法

通过docker build命令制作镜像,需要编写Dockerfile文件,该文件需要严格按照DSL语法进行编写。

2020-10-11 16:17:09 681

原创 docker容器/镜像打包

镜像打包:1、镜像打包docker save -o /opt/jacktomcat.tar jacktomcat2、将打包的镜像上传到其它服务器scp jacktomcat.tar 192.168.42.169:/install/3、导入镜像docker load -i /install/jacktomcat.tar容器打包:1、容器打包docker export -o /install/tomcatContainer.tar container32、导入..

2020-10-11 15:44:58 443

原创 docker commit制作镜像

docker commit:根据容器的更改创建新镜像。本次示例制作一个tomcat镜像。一、拉取一个基础镜像其实就是OS操作系统。tomcat得跑在操作系统上吧,本次使用centos。docker pull centos二、创建一个交互式容器三、文件上传将准备好的Tomcat、jdk文件,从宿主机上传到容器中。四、在容器中安装jdk可以使用命令进行安装:yum search jdk 选择要安装的版本,然后yum install jdk。本次对上传的jdk压缩

2020-10-11 15:05:58 2212

原创 docker命令

docker images 列出镜像docker pull 拉取镜像。不加版本tag,默认拉取最新版本。如果需要指定版本,使用语法docker pull image:versionTagdocker search 查找镜像docker rmi 删除一个或者多个镜像。后面可以跟镜像名称或者镜像iddocker run 在一个新的容器执行一条命令。示例创建一个交互式容器:-i 交互式容器-t 分配一个虚拟机终端--name 指定容器名称(必须唯一).

2020-10-11 00:22:23 204

原创 docker配置镜像加速器

如果来拉取镜像的过程中,发现速度很慢。可以考虑配置镜像加速器。本次演示配置阿里云镜像加速器。命令都挺全,按操作文档进行即可。

2020-10-10 23:25:33 1695

原创 Centos7开机启动docker

通过repository的方式安装完docker后,默认开机不会启动docker服务。通过以下命令,设置开机启动docker服务。

2020-10-10 22:26:14 1752

原创 VMware安装Centos7后,设置联网

VMware安装Centos7后,设置联网。本次使用桥接模式。目录一、设置虚拟网络二、设置客户机网络适配器三、配置客户机IP地址等信息一、设置虚拟网络【编辑】-->【虚拟网络编辑器】,配置VMnet0为桥接模式。二、设置客户机网络适配器为centos7设置适配器,使用桥接模式。三、配置客户机IP地址等信息为centos7配置IP地址等信息。注意,使用的是桥接模式,ip地址需要和宿主机同一个网段,网关相同。我的宿主机是win7,ip信息如下:根

2020-10-10 19:30:52 585

原创 EntityCallback的使用

前言Spring Data 通过钩子实现了在保存或修改数据前后执行指定的方法,即EntityCallback。本文示例EntityCallback在Spring Data Elasticsearch中的使用。一、注册EntityCallbackpackage cn.jack.elasticsearchdemo.callback;import cn.jack.elasticsearchdemo.domain.Person;import lombok.extern.slf4j.Slf4j;

2020-10-06 22:43:58 768

原创 Elasticsearch Auditing(es的审计功能)

在Spring Data Elasticsearch中,提供了审计功能。即数据的创建人、创建时间、最后修改人等等,都是可以记录追踪的。本文示例如何使用es的审计功能。目录一、数据实体类实现Persistable接口二、提供AuditorAware三、激活审计功能四、测试一、数据实体类实现Persistable接口package cn.jack.elasticsearchdemo.domain;import lombok.AllArgsConstructor;import

2020-10-06 18:15:40 2247

原创 ReactiveElasticsearchTemplate的使用

Spring Data Elasticsearch提供了响应式的模板ReactiveElasticsearchTemplate。本文示例如何使用。目录一、添加依赖二、配置ReactiveElasticsearchClient的Bean三、创建ReactiveElasticsearchTemplate并调用方法四、测试一、添加依赖 <dependency> <groupId>io.projectreactor</groupId&g

2020-10-05 00:43:10 2417

原创 postman初体验 以及@RequestBody

@RequestBody用于在请求体中获取参数,一般为json或者xml格式的数据。本文示例使用postman请求保存数据接口,将json格式的数据保存到elasticsearch中。目录一、编写controller接口二、postman发送请求三、测试一、编写controller接口package cn.jack.elasticsearchdemo.controller;import cn.jack.elasticsearchdemo.domain.Person;imp

2020-10-04 23:11:34 1828

原创 Spring Data Elasticsearch排序问题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而

2020-10-03 18:41:57 3411

原创 Spring Data Elasticsearch的使用

一、引入elasticsearch依赖<dependencies> <!--elasticsearch--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>

2020-10-01 22:41:12 2067

原创 Dubbo的使用

Dubbo是阿里巴巴开源的基于Java的高性能RPC分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。Spring-cloud-alibaba-dubbo 是基于SpringCloudAlibaba技术栈对dubbo技术的一种封装,目的在于实现基于RPC的服务调用。本文示例通过Spring-cloud-alibaba-dubbo完成服务调用。目录一、抽取接口:提供统一业务api二、服务提供者实现接口2.1 添加dubbo依赖2.2 添加

2020-09-30 16:22:40 319

原创 Seata分布式事务解决方案

目录一、Seata介绍二、使用Seata实现分布式事务控制2.1 订单微服务实现下单接口2.2 商品微服务实现扣减库存接口2.3 暴露出分布式事务问题2.3.1 正常测试2.3.2 异常测试2.4 Seata解决分布式事务问题2.4.1 下载Seata2.4.2 修改配置文件2.4.3 初始化seata在nacos的配置2.4.3 启动seata服务2.4.4 添加undo_log表2.4.5 微服务集成seata事务控制一、Seata介绍Se

2020-09-29 20:03:05 1903 1

原创 Nacos Config 服务配置中心

首先暴露问题,然后提出解决方案。先来看下微服务架构中,关于配置文件的一些问题:配置文件相对分散。在一个微服务架构下,配置文件会随着微服务的增多变的越来越多,而且分散在各个微服务中,不好统一配置和管理。 配置文件无法区分环境。微服务项目可能会有多个环境。例如:测试环境、预发布环境、生产环境。每一个环境所使用的配置一般情况下是不同的。打个比方,出个包更新到预发布环境,还得把配置改好了才能进行,很痛苦。 配置文件无法实时更新。我们修改了配置文件之后,必须重新启动微服务才能使配置生效,这对一个正在运行的项目

2020-09-27 00:15:53 3959 2

原创 SMS短信服务

接下来,通过“短信验证码”功能来演示阿里云短信服务的集成和使用。大体流程如下:关于阿里云的注册与实名认证,不再赘述。目录一、开通短信服务二、申请认证密钥三、申请短信签名四、申请短信模板五、短信服务API介绍六、功能测试一、开通短信服务二、申请认证密钥AccessKey就是阿里云颁发给你的一套用户名密码,发送短信要收费吧,所以发送短信时要求带上认证密钥,方便扣钱。三、申请短信签名四、申请短信模板五、短信服务API介绍此处不

2020-09-26 19:52:05 1513

原创 RocketMQ的消息类型

RocketMQ的消息类型有以下三种:普通消息 顺序消息 事务消息下边分别介绍三种类型消息的使用场景,以及使用示例。一、普通消息对于普通消息,RocketMQ提供了三种发送方式:可靠同步发送、可靠异步发送和单向发送。可靠同步发送同步发送是指消息发送方发出数据后,会在收到接收方发回响应之后才会发送下一个数据包的通讯方式。此种方式应用场景非常广泛,例如重要通知邮件、报名短信通知、营销短信系统等。可靠异步发送异步发送是指发送方发出数据后,不等接收方发回响应,接着发送下一

2020-09-23 21:53:55 4065 1

原创 SpringBoot中使用RocketMQ

接下来我们模拟一种场景:商品下单成功之后,向下单用户发送短信。以此来示例SpringBoot中RocketMQ的使用方式。目录1 订单微服务发送消息1.1 订单微服务添加rocketmq的依赖1.2 添加配置1.3 编写测试代码1.4 测试2 用户微服务订阅消息2.1 用户微服务增加rocketmq依赖2.2 修改主类,启动nacos客户端2.3 修改配置文件2.4 编写消息接收服务2.5 测试1 订单微服务发送消息1.1 订单微服务添加ro.

2020-09-16 21:54:49 4212

原创 JAVA代码实现RocketMQ消息发送和接收

首先,引入rocketmq的依赖: <!--rocketmq--> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.1.1</v

2020-09-16 18:47:05 6772 1

原创 RocketMQ控制台安装

1 下载下载地址:https://github.com/apache/rocketmq-externals/releases2 修改配置文件修改配置文件rocketmq-console\src\main\resources\application.properties注意:此文件不能有中文server.port=6666 # 项目启动后的端口号rocketmq.config.namesrvAddr=192.168.232.168:9876 # name server的地址,注意防火.

2020-09-15 23:50:33 588

原创 RocketMQ入门

接下来记录在linux平台下安装一个RocketMQ的服务。目录1 下载RocketMQ2 安装RocketMQ3 启动RocketMQ3.1 切换到RocketMQ的bin目录3.2 启动NameServer3.3 启动Broker4 测试RocketMQ5 关闭RocketMQ1 下载RocketMQ下载地址:http://rocketmq.apache.org/release_notes/release-notes-4.7.1/环境要求Linux64

2020-09-15 22:44:32 289

原创 Zipkin数据持久化

Zipkin Server默认会将链路追踪数据保存到内存中,但这种方式不适合生产环境。一旦Zipkin Server重启,数据就丢失了。Zipkin支持将追踪数据持久化到mysql或者elasticsearch中。1 使用mysql实现数据持久化第一步:创建mysql数据库zipkin,执行如下sql语句。CREATE TABLE IF NOT EXISTS zipkin_spans ( `trace_id_high` BIGINT NOT NULL DEFAULT 0 COMMENT '

2020-09-15 18:32:16 1938

原创 Sleuth集成Zipkin

SpringCloud Sleuth主要功能就是在分布式系统中提供链路追踪解决方案。但是Sleuth并没有UI界面。需要集成Zipkin完成数据的收集、存储、查找和展示。目录1 集成Sleuth2 集成Zipkin2.1 下载Zipkin的jar包(服务端)2.2 命令行启动Zipkin Server2.3 通过浏览器访问http://localhost:94112.4 Zipkin客户端集成1 集成SleuthSleuth的集成很简单。只需要引入Sleuth依赖即可。由

2020-09-15 17:22:27 607

原创 Gateway网关限流

网关是所有请求的公共入口,所以可以在网关进行限流,而且限流的方式也很多,我们本次采用Sentinel组件来实现网关的限流。Sentinel支持对SpringCloud Gateway、Zuul等主流网关进行限流。从Sentinel1.6.0版本开始,Sentinel提供了SpringCloud Gateway的适配模块,可以提供两种资源维度的限流:route维度:即在Spring配置文件中配置的路由条目,资源名为对应的routeId 自定义API维度:用户可以利用Sentinel提供的API来自定

2020-09-15 12:22:35 2378

原创 Gateway之过滤器

过滤器的作用:过滤器就是在请求的过程中,对请求和响应做一些手脚生命周期:Pre Post分类:局部过滤器(作用在某一个路由上) 全局过滤器(作用在全部路由上)在Gateway中,Filter的生命周期只有两个:“pre”和“post”。 PRE:这种过滤器在请求被路由之前调用。我们可利用这种过滤器实现身份验证、在集群中选择请求的微服务、记录调试信息等。 POST:这种过滤器在路由到微服务以后执行。这种过滤器可用来为响应添加标准的HTTP Header、收集统计信息和指标、将响应.

2020-09-14 18:34:39 2518

原创 Gateway之自定义路由断言工厂

我们来设定一个场景:假设我们的应用仅仅让age在(min, max)之间的人来访问。第一步:在配置文件中,添加一个Age的断言配置server: port: 7000spring: application: name: api-gateway cloud: nacos: discovery: server-addr: localhost:8848 # nacos服务端地址 gateway: discovery:

2020-09-13 02:00:01 2255 5

原创 Gateway内置的路由断言工厂

SpringCloud Gateway包括许多内置的断言工厂,所有这些断言都与HTTP请求的不同属性匹配。具体如下:示例内置断言工厂的使用:

2020-09-12 23:52:11 333 1

原创 Gateway从nacos中获取服务信息

1 加入nacos客户端依赖 <!--nacos客户端--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>

2020-09-12 23:05:04 6967 1

原创 Spring Cloud Gateway快速入门

为什么需要网关?来看一个示意图:订单微服务中对商品微服务进行调用,没有问题。但是对于客户端,对微服务进行调用,就会暴露出当前架构下的问题:客户端需要维护服务端的各个地址,代码编写以及维护困难 认证 鉴权复杂 跨域问题API网关就是用来解决这些问题的。所谓的API网关,就是指系统的统一入口,它封装了应用程序的内部结构,为客户端提供统一服务,一些与业务本身功能无关的公共逻辑可以在这里实现,比如认证、鉴权、监控、路由转发等。1 创建一个api-gateway的模块,导入相关依赖.

2020-09-12 22:24:12 223

原创 Feign整合Sentinel实现容错

Sentinel通过各种规则对资源进行保护,即进行服务容错。Feign使得调用远程服务就像调用本地服务一样简单。但是Feign在调用远程服务的时候,由于远程服务的原因,可能会产生异常。就需要进行相应的容错设计。下面介绍Feign整合Sentinel实现服务容错:1 引入sentinel的依赖 <!--Sentinel--> <dependency> <groupId>com.alibaba.cloud&l

2020-09-12 00:58:20 4734

原创 Sentinel规则持久化

我们可以通过Dashboard控制台页面来为每个Sentinel客户端设置各种各样的规则,但是这里有一个问题,就是这些规则默认是存放在内存中,极不稳定(比如重启微服务后,规则丢失),所以需要将其持久化。本地文件数据源会定时轮询文件的变更,读取规则。这样我们既可以在应用本地直接修改文件来更新规则,也可以通过Sentinel控制台推送规则。以本地文件数据源为例,推送过程如下图所示:首先Sentinel控制台通过API将规则推送至客户端并更新到内存中,接着注册的写数据源会将新的规则保存到本地的文件中。

2020-09-11 23:35:50 1428 4

原创 Sentinel之@SentinelResource注解的使用

目录1 定义Sentinel资源点,以及异常处理方法2 调用定义的方法(资源点)3 编写Sentinel异常处理方法4 编写业务异常处理方法5 运行测试6 总结在定义了资源点之后,我们可以通过Dashboard控制台页面来设置限流和降级策略来对资源点进行保护。同时还能通过@SentinelResource注解来指定出现异常时的处理策略。@SentinelResource用于定义资源,并提供可选的异常处理和fallback配置项。其主要参数如下:下面示例@Sentine

2020-09-11 21:41:12 3848

原创 Sentinel之自定义规则异常返回

Sentinel的五种类型规则,在触发规则保护时,返回的异常页面是一样的。不好区分是因为哪种规则导致的异常。所以需要自定义异常返回信息,明确是触发了哪种类型的规则。第一步:编写自定义异常处理逻辑package cn.jack.config;import com.alibaba.csp.sentinel.adapter.servlet.callback.UrlBlockHandler;import com.alibaba.csp.sentinel.slots.block.BlockExcept

2020-09-11 20:07:02 5305

原创 Sentinel授权规则

很多时候,我们需要根据调用方来判断该次请求是否放行,这时候可以使用Sentinel的来源访问控制功能。若配置白名单,则只有请求来源位于白名单内时才可通过; 若配置黑名单,则请求来源位于黑名单时不允许通过,其余的请求来源可以通过。流控应用流控应用填写的是调用方标识,Sentinel提供了RequestOriginParser接口来处理标识信息。只要Sentinel保护的接口资源被访问,Sentinel就会调用RequestOriginParser的实现类去解析调用者标识。第一步:自

2020-09-09 23:19:03 2175 1

原创 Sentinel热点规则

目录1、编写测试接口代码2、配置热点规则3、分别用两个参数访问,会发现只对第一个参数限流了4、补充热点参数流控规则是一种更细粒度的流控规则,它允许将规则具体到参数上。示例热点规则的使用:1、编写测试接口代码package cn.jack.controller;import cn.jack.service.impl.OrderServiceImpl3;import com.alibaba.csp.sentinel.annotation.SentinelResource;

2020-09-09 22:24:19 1729

空空如也

空空如也

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

TA关注的人

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