
微服务
文章平均质量分 82
陆小叁
认知、行动、坚持
展开
-
通过Logstash全量和增量同步Mysql一对多关系到Elasticsearch
文章目录前言实现方案全量和增量同步SpringBoot集成Elasticearch前言在实际开发项目过程当中,难免会使用到Elasticsearch做搜索。文章描述从Mysql通过Logstash实时同步到Elasticsearch,下面就开始来进行实现吧!具体的Elasticsearch+Logstash+kibana搭建,请移步到 ELK搭建步骤。实现方案本人总结了两种实现方案来实现mysql到es的同步。使用Elastic官方提供的 Logstash 来实现Mysql的全量和增量同步(根据原创 2021-08-14 12:22:38 · 1869 阅读 · 7 评论 -
ShardingJdbc分库分表简单实现及内容整理
目录背景一、简介1. ShardingSphere-JDBC2. ShardingSphere-Proxy3. ShardingSphere-Sidecar(TODO)4. 对比图二、垂直拆分和水平拆分1. 垂直拆分2. 水平拆分三、SQL核心概念四、分片相关概念1 分片键2. 分片算法3. 分片策略五、分布式主键六、执行流程七、ShardingJdbc配置八、案例背景ShardingSphere官网随着互联网的迅猛发展和业务量的增多,传统的将数据集中存储在单一数据节点的解决方案,在性能、可用性和运维原创 2021-04-20 16:22:05 · 430 阅读 · 0 评论 -
自定义Feign拦截器,解决微服务之间Feign调用请求头丢失问题
在微服务开发过程中,安全方面使用的是Spring Security OAuth2.0令牌认证,在进行服务与服务之间调用时,使用的Feign客户端,如果不通过Feign拦截器来添加请求头信息。下游服务是接收不到认证过的token令牌,无法进行身份验证。定义Feign拦截器,实现 RequestInterceptor 接口@Slf4jpublic class FeignRequestInterceptor implements RequestInterceptor { /** *.原创 2021-04-12 08:25:47 · 1772 阅读 · 2 评论 -
seata 分布式事务的环境搭建与使用
文章目录一、seata介绍1. 什么是 seata2. seata 的基本原理二、seata 环境搭建1. 服务器端环境搭建1.1 数据库及表的创建1.2 修改服务器端配置文件1.3 同步config.txt文件到nacos配置中心2. 客户端环境搭建2.1 引入pom依赖2.2 在application.yml文件中配置seata信息2.3 代理数据源配置三、简单测试一、seata介绍1. 什么是 seataseata 是一个分布式事务的解决方案,具有高性能和易用性的微服务架构。其前身是fescar原创 2021-04-06 11:55:34 · 1292 阅读 · 0 评论 -
SpringCloud-Sentinel实现服务限流、熔断、降级,整合Nacos实现持久化
文章目录Sentinel简介一、安装Sentinel控制台二、创建springboot-sentinel模块三、限流功能四、创建RateLimitController类1.根据资源名称限流2.根据URL限流3.自定义限流处理逻辑五、熔断功能六、与Feign结合使用七、使用Nacos存储规则1. 原理示意图2. 功能演示3. Sentinel Dashboard集成Nacos实现规则同步4. Sentinel Dashboard源码修改Sentinel简介随着微服务的流行,服务与服务之间的稳定性变得越来越转载 2021-04-02 16:05:47 · 974 阅读 · 0 评论 -
Nginx+Lua OpenResty环境搭建
目录前言一、OpenResty运行环境搭建二、nginx+lua开发环境配置三、Hello world四、nginx+lua项目构建前言OpenResty是一款基于Nginx的高性能负载均衡服务器容器,简单来说是Nginx+Lua。结合了Lua语言来对Nginx进行扩展,使得在Nginx上具有web容器功能。一、OpenResty运行环境搭建Centos7安装编译所需要的环境:yum install readline-devel pcre-devel openssl-devel gc如果转载 2021-03-25 18:08:15 · 422 阅读 · 0 评论 -
Rabbitmq死信队列
Nacos的安装与使用死信队列定义Nacos相关特性基本概念Nacos的安装与Alibaba Cloud 集成死信队列定义消息中间件中的消息被拒绝时,它将被重新publish到另一个交换机上,这个交换机我们就叫做死信交换机,死信交换机将被拒绝的消息投递到一个队列上,该队列就是死信队列。死信队列和普通队列一样,有交换机和路由key。Nacos相关特性基本概念Nacos的安装本文采用Window环境进行演示,环境配置如下:MAVEN:3.6JDK:1.8Nacos-server:1.4.1 N转载 2021-03-17 11:01:20 · 462 阅读 · 0 评论 -
SpringCloud、Nacos与Dubbo集成
前言在日常的开发过程中,都开始从传统架构项目转化为微服务架构模式,把整体项目按照功能模块或者业务等做拆分,形成很多个服务,那么服务与服务之间就会产生调用关系。常见的远程调用有两种,一种是Feign,另一种是Rpc。在本文介绍Dubbo Rpc与Alibaba SpringCloud、Nacos的集成。提示:以下是本篇文章正文内容,下面案例可供参考一、创建提供方项目项目命名为server-dubbo-provider引入pom依赖<dependencies> <!--原创 2021-03-10 15:50:31 · 1042 阅读 · 0 评论 -
Nacos服务注册与发现简介
naco的安装与使用什么是nacosnacos的关键特性基本概念nacos的安装与SpringCloud Alibaba集成什么是nacosnacos可以帮助开发者发现、配置和管理微服务。它提供了一组简单易用的特性集,可以快速实现动态服务发现、服务配置、服务元数据及流量管理。可以帮助开发者更敏捷的构建、交付和管理微服务平台。Nacos是构建以"服务"为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。nacos的关键特性服务发现Nacos 支持基于 DNS 和基于 RPC 的服务原创 2021-03-09 16:32:40 · 1199 阅读 · 1 评论 -
搭建elk+logstash+kafka+filebeat日志收集平台
在日常的运维过程中,对系统日志和业务日志的处理比较重要,对于以后的数据分析、排查异常问题有很重的作用。今天就分享一个自己基于kafka+ELK+filebeat的日志记录分析平台。组件介绍ElasticsearchElasticsearch(ES)是一个基于Lucene构件的开源、分布式、RESTful接口全文搜索引擎。ES还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级别的数据。它可以在很短的时间内在存储、搜索和分析大量的数据。它通常原创 2021-02-04 17:12:41 · 606 阅读 · 2 评论 -
Maven项目集成Docker,推送私服并运行
在日常开发过程中,会将项目进行打包,并运行到服务器上。在本文中介绍使用docker的方式,将本地jar包推送到docker私服,并运行在远程服务器上。步骤新建一个maven项目,目录结构如下:将maven编译打包插件、docker打包插件引入到pom文件中2.1. 多环境配置pom文件中profile下的profile.name要与application-{env} 中的**{env}**保持一致2.2. Maven编译打包插件<plugin> <groupI原创 2021-01-25 18:09:17 · 434 阅读 · 0 评论 -
Docker Login及Push的使用
Docker Login命令用于登录Docker Registry,来对指定命名空间下的镜像资源进行操作以阿里云镜像服务为例作为演示。步骤使用支付宝扫码登录阿里云服务平台找到容器镜像服务,跳转链接:https://cr.console.aliyun.com/cn-hangzhou/instances点击默认实例进入之后,可在仓库管理-访问凭证中设置登录密码(固定密码)。获取凭证共有两种方式,固定密码和临时密码,具体获取临时密码的步骤,请参考官方文献。登录阿里云私有镜像doc原创 2021-01-25 15:15:52 · 2043 阅读 · 0 评论 -
使用Python的docxTemplate渲染word文件
业务背景近一段时间一直忙于开发,有一业务场景,需要将后台(使用的Java)获取到的数据,动态的填充到word文档中。一开始使用的是使用Java获取后台数据,使用freemarker模板进行数据渲染,生成word(原理是将word模板转换成xml文件,然后将xml文件重新命名为ftl格式文件,将数据动态填充)。最终采用的是python-docxTemplate来动态填充并生成word。区别1.使用freemarker来渲染并生成word,开发量大,花费时间较长,如果生成的word内容过多,难以维护(生成原创 2021-01-25 14:21:16 · 2994 阅读 · 0 评论 -
Jenkins远程部署应用
系统配置Jenkins详细安装步骤:https://blog.youkuaiyun.com/qq_37640410/article/details/110921651点击Manage Jenkins->Configure System(系统配置)Passphrase:私钥密码,如果没有可以不填Path to key:私钥的位置Key:私钥的内容。如果填写了该值,会覆盖Path to key的内容SSH Servers:服务器的配置Name:名称(自定义)Hostname:服务器地址User原创 2020-12-09 20:12:29 · 335 阅读 · 0 评论 -
Centos7搭建Jenkins
安装环境操作系统:CentOS Linux release 7.8.2003JDK版本:1.8MAVEN版本:3.6.6Git版本:1.8.3.1Jenkins版本:2.251-1.1.noarch.rpmJDK详细安装步骤:https://blog.youkuaiyun.com/qq_37640410/article/details/110918405MAVEN详细安装步骤:https://blog.youkuaiyun.com/qq_37640410/article/details/110919351Doc原创 2020-12-09 17:12:54 · 222 阅读 · 0 评论 -
Centos7安装Docker
安装环境操作系统:CentOS Linux release 7.8.2003安装步骤下载docker-ce源wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo --no-check-certificate使用yum方式安装dockeryum -y install docker-ce启动docker,并设置为开机自启s原创 2020-12-09 12:48:58 · 163 阅读 · 0 评论 -
Centos7安装Maven
安装环境操作系统:CentOS Linux release 7.8.2003MAVEN版本:3.6.3安装步骤下载maven,下载链接地址https://maven.apache.org/download.cgi(建议使用迅雷下载)上传到/home文件夹下使用tar -zxvfapache-maven-3.6.3-bin.tar.gz -C /usr/local 解压至/usr/local下,查看MAVEN目录结构配置环境变量,修改/etc/profile,使用vi原创 2020-12-09 11:45:46 · 225 阅读 · 0 评论 -
Elasticsearch集群原理、安装和基本使用
elasticsearch集群安装和相关介绍Elasticsearch(ES)是一个基于Lucene构件的开源、分布式、RESTful接口全文搜索引擎。ES还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级别的数据。它可以在很短的时间内在存储、搜索和分析大量的数据。它通常作为具有复杂所搜场景情况下的核心发动机。ES就是为考可用和可扩展而生的。可以通过购置性能更强的服务器来完成。Elasticsearch特点横向可扩展性: 只需要增加台服原创 2020-09-22 11:48:20 · 470 阅读 · 0 评论 -
thrift的使用:(Java、Python之间跨语言调用)
由于公司现在的开发业务模块中,有使用到Java作为客户端调用python服务器端业务处理,因此在底下研究了下,结合了网上的优质文章,在此做一下记录。thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在C++,Java,Go,Python,PHP,Ruby,Erlang,Perl,C#,Cocoa,JavaScript,Node.js,Smalltalk,and OCaml这些变成语言间无缝结合的。高效的服务。thrift最初由facebo转载 2020-09-02 12:57:55 · 1433 阅读 · 0 评论 -
使用RestTemplate上传文件到远程接口
有一个业务需求。需要将一个在线文件,在不经过本地存储转换的方式下同步到现有服务中。最终采纳的解决方案是使用Spring提供的RestTemplate来远程操作http服务,实现在线的文件同步上传。以下是文件上传的核心代码错误演示 try{ MultiValueMap<String, Object> postParameters = new LinkedMultiValueMap<>(); postParameters.ad原创 2020-09-01 10:43:06 · 787 阅读 · 0 评论 -
Redis环境搭建(整合SprinigBoot一键切换集群和单机环境)
Redis介绍Redis使用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,常用数据类型如下:字符串类型散列类型列表类型集合类型有序集合类型本文采用环境:CentOS7、Redis3.0.0版本演示Redis的应用场景实现应用缓存(不经常更换的内容)网站访问统计结合lua实现接口频率访问控制实现分布式锁单机版本安装安装reids需要先将官网下载的源码进行编译,编译环境依赖gcc环境,如果没有gcc环境,原创 2020-08-27 08:02:44 · 337 阅读 · 0 评论 -
Docker + SpringBoot2.0快速构建镜像
博文链接Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。(引用官方概念,本文注重docker+springboot2.0快速构建镜像,对docker更细节的知识不在做赘述)Docker本文使用的是CentOs7docker 安装:yum install dockersystemctl start docker 开启docke原创 2020-08-26 08:08:48 · 220 阅读 · 0 评论 -
kafka实现分布式事务解决方案
分布式事务##概念:分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。 本质上来说,分布式事务就是为了保证不同数据库的数据一致性。实现分布式事务方案有很多种,有阿里的seata,基于tcc的高性能分布式事务框架hmily和lcn等开源框架外,还有基于mq来实现分布式事转载 2020-08-25 08:03:10 · 5121 阅读 · 7 评论 -
SpringBoot自定义starter
碰见一个新的技术点,总会想起一句话:“这个技术是什么?为什么会出现?怎么用?”,在面对一个新的技术时是不是有同样的疑问。走过这三点,技术的基本使用也就没有问题了。starter是什么?Spring Boot Starter是SpringBoot开发出的一系列启动器,在应用启动时,被加载,可以很快速的处理应用所需要的的一些基础环境配置。SpringBoot的这种加载配置方式是一种SPI(Service Provider Interface)的方式,SPI可以在META-INF/service配置接口.原创 2020-08-23 22:01:47 · 277 阅读 · 0 评论