![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
微服务架构
文章平均质量分 79
IT实战联盟Lin
这个作者很懒,什么都没留下…
展开
-
DDD实战(二):分层架构的依赖原则
附源码案例原创 2022-09-28 14:00:42 · 1686 阅读 · 0 评论 -
DDD实战(一):如何设计分层架构?
轻量级快速开发框架原创 2022-08-26 18:13:10 · 1198 阅读 · 0 评论 -
字节跳动 | 微服务架构中如何优雅地重试?
背景在微服务架构中,一个大系统被拆分成多个小服务,小服务之间大量 RPC 调用,经常可能因为网络抖动等原因导致 RPC 调用失败,这时候使用重试机制可以提高请求的最终成功率,减少故障影响,让系统运行更稳定。重试的风险重试能够提高服务稳定性,但是一般情况下大家都不会轻易去重试,或者说不敢重试,主要是因为重试有放大故障的风险。首先,重试会加大直接下游的负载。如下图,假设 A 服务调用 B 服务,重试次数设置为 r(包括首次请求),当 B 高负载时很可能调用不成功,这时 A 调用失败重试.转载 2021-01-05 13:17:32 · 901 阅读 · 0 评论 -
DBeaver 7.2.4 发布,可视化数据库管理平台
IT实战联盟博客:http://blog.100boot.cn软件简介DBeaver 是一个通用的数据库管理工具和 SQL 客户端,支持 MySQL, PostgreSQL, Oracle, DB2, MSSQL, Sybase, Mimer, HSQLDB, Derby, 以及其他兼容 JDBC 的数据库。DBeaver 提供一个图形界面用来查看数据库结构、执行 SQL 查询和脚本,浏览和导出数据,处理 BLOB/CLOB 数据,修改数据库结构等等。DBeaver 7.2.4发布了,本次.原创 2020-11-03 16:04:36 · 537 阅读 · 1 评论 -
「转载」蘑菇街消息系统上云实践
IT实战联盟博客:http://blog.100boot.cn原文地址:https://mp.weixin.qq.com/s/yjaO9iguEQN05FBcjjHSIA小编又来啦~本周要推荐给大家的是一篇跟中间件上云相关的技术文章,这里面详细的记录了,蘑菇街自研消息系统上云的全过程,也是市面上开放出来为数不多的企业自研组件上云实践。有相关需求的同学可以好好学习下。背景从当下的情况来看,如果一个公司需要一个消息队列中间件,那么大致有以下两个个选择:1.首先考虑的应该是各云厂商提供的消息队转载 2020-11-03 16:02:49 · 778 阅读 · 0 评论 -
Spring Boot 2.4.0-RC1, 2.1.18, 2.2.11 和 2.3.5 发布
IT实战联盟博客:http://blog.100boot.cnSpring Boot 多个分支发布了新版本,分别是 2.4.0-RC1, 2.1.18, 2.2.11 和 2.3.5。Spring Boot 2.4.0-RC1此版本是Spring Boot 2.4 的首个候选版本,更新亮点如下:优化 Spring MVC servlet 和 Spring WebFlux 反应式技术栈的配置属性 改进新的配置文件处理功能,包括使用通配符从配置树中进行加载 升级到最新发布的Spring ..原创 2020-10-31 10:06:14 · 579 阅读 · 0 评论 -
Spring Data 2020.0.0 正式 GA
IT实战联盟博客:http://blog.100boot.cnSpring Data 2020.0.0(代号 Ockham)已正式 GA,这也是更改版本号方案后的首个版本,此前的版本号采用名字来标记,例如 Neumann-RELEASE。新的版本号格式为YYYY.MINOR.MICRO[-MODIFIER]: YYYY是完整的年份,代表此版本发布于该年份 MINOR每年从 0 开始,0 代表某年份中发布的第一个主要版本。按照版本逐渐递增,属于主要版本更新 MICRO是针对主要原创 2020-10-30 13:32:43 · 519 阅读 · 0 评论 -
构建 Netflix 分布式追踪(tracing)体系
IT实战联盟博客:http://blog.100boot.cn“为什么我的手机不能播放 Tiger King?”—一位 Twitter 网友留言这是 Netflix on-call 工程师面临问题的一个例子:解决用户碰到的各种问题。排除这种分布式系统的故障非常困难。调查视频流故障需要检查用户账户的所有方面。在上一篇博文(1)中介绍了 Edgar,我们的流 sesion 故障排除工具。本文主要看我们是如何设计 Edgar 的追踪 (tracing) 基础设施。(1)https://netf..转载 2020-10-27 10:44:57 · 494 阅读 · 0 评论 -
「转载」微服务分布式架构中,如何实现日志链路跟踪?
IT实战联盟博客:http://blog.100boot.cn/背景开发排查系统问题用得最多的手段就是查看系统日志,在分布式环境中一般使用ELK来统一收集日志,但是在并发大时使用日志定位问题还是比较麻烦,我们来看下面的图上图一个用户请求一个url,整个链路如图,每个处理层都会产生日志,那我们如何把这些日志串在一些,形成一个请求全路径日志。在现有的系统中,由于大量的其他用户/其他线程的日志也一起输出穿行其中导致很难筛选出指定请求的全部相关日志。那我们如何来处理呢?解决思..转载 2020-10-26 21:58:39 · 965 阅读 · 0 评论 -
「开源资讯」Apache Storm 2.2.0 发布,分布式实时计算
Apache Storm简介Apache Storm 是一个免费开源的分布式实时计算系统。简化了流数据的可靠处理,像 Hadoop 一样实现实时批处理。Storm 很简单,可用于任意编程语言。Apache Storm 采用 Clojure 开发。Storm 有很多应用场景,包括实时数据分析、联机学习、持续计算、分布式 RPC、ETL 等。Storm 速度非常快,一个测试在单节点上实现每秒一百万的组处理。目前已经有包括阿里百度在内的数家大型互联网公司在使用该平台。Apache ..原创 2020-07-03 09:34:38 · 658 阅读 · 0 评论 -
「开源资讯」Sentinel Go 0.4.0 发布,支持热点流量防护能力
来源:https://www.oschina.net/news/116872/sentinel-go-0-4-0-releasedSentinel简介Sentinel 是阿里巴巴开源的,面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统自适应保护等多个维度来帮助开发者保障微服务的稳定性。Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀、冷启动、消息削峰填谷、集群流量控制、实时熔断下游不可用服务等,是保障微服务高可用的利器,原生支.转载 2020-07-03 09:33:31 · 364 阅读 · 0 评论 -
分布式 NewSQL 数据库TiDB 3.1.0 版本发布,修复多项问题
前言TiDB 是一款定位于在线事务处理/在线分析处理( HTAP: Hybrid Transactional/Analytical Processing)的融合型数据库产品,实现了一键水平伸缩,强一致性的多副本数据安全,分布式事务,实时 OLAP 等重要特性。同时兼容 MySQL 协议和生态,迁移便捷,运维成本极低。架构TiDB 3.1.0 更新内容一、兼容性变化TiDB支持1、Ti...原创 2020-04-18 17:14:36 · 574 阅读 · 0 评论 -
【SpringCloud实战】一次开发中使用Feign添加动态Header问题思考
需求背景最近有个需求,是对接某个运动APP的Api开放平台用户授权业务。文中以两个API为例:1、获取token场景:用户在授权⻚页⾯面点击授权后,⻚页⾯面会跳转到合作⽅方提供的redirect_url,合作⽅方通过跳转传回的code换取token,完成认证和授权。Header附加参数:Authorization:Basic base64(AppKey:AppSecret) `注意:B...原创 2020-04-18 09:56:21 · 3749 阅读 · 1 评论 -
Spring Cloud(Greenwich版)-06-Spring Cloud集成Feign
前言上一章使用Ribbon实现了商品和多个用户微服务之间的负载均衡效果,到现在我们的微服务架构已经“初具规模”啦。接下来会继续完善我们的微服务架构,本章将会引入全新的组件——Feign。看过前面的文章就知道我们采用的是RestTemplate来实现商品和用户微服务间的通信。如下图所示:代码示例:@GetMapping("/goods/{id}")public User findBy...原创 2019-11-21 20:41:02 · 613 阅读 · 0 评论 -
微服务架构学习笔记(一):重新认识微服务
一、什么是微服务微服务(Microservice)是服务化思路的一种最佳实践方向,遵循SOA的思路,各个企业在服务化治理的道路上走的时间长了,踩的坑多了,整个软件交付链路上各个环节的基础设施逐渐成熟了,微服务自然而然就诞生了。早些年的服务实现和实施思路是将很多功能从开发到交付都打包成一个很大的服务单元,而微服务实现和实施思路则更强调功能趋向单一,服务单元小型化和微型化。(如果用“茶壶煮饺子...原创 2018-08-29 18:14:55 · 755 阅读 · 0 评论 -
「精品推荐」FEBS-Shiro 2.0,一款好用美观的权限管理系统
刚刚看到一条最新的软件更新资讯——FEBS-Shiro 2.0(权限管理系统),就赶紧分享给大家!项目简介FEBS-Shiro是一款简单高效的后台权限管理系统,使用Spring Boot,Shiro和Layui构建。FEBS意指:Fast,Easy use,Beautiful和Safe。相信无论作为企业级应用,私活开发脚手架或者权限系统构建学习,FEBS-Shiro都会是一个不错的选择。...原创 2019-06-17 18:22:01 · 1785 阅读 · 1 评论 -
「中间件」消息中间件如何实现每秒几十万的高并发写入?
前言用过消息中间件的都知道能够解决业务中的性能瓶颈,那么消息中间件如何实现每秒几十万的高并发写入?消息中间件存储首先理解一点,消息中间件一般都是存储在磁盘上的,大家都知道直接在磁盘读写是有性能瓶颈的,不可能达到每秒几十万的吞吐量,那么消息中间件是怎么保证读写性能的呢?写数据1、消息中间件是基于操作系统的页缓存来实现文件写入的。操作系统本身有一层缓存,叫做page cache,是在内存里...原创 2019-07-03 09:41:26 · 1476 阅读 · 0 评论 -
「中间件」RocketMQ解决消息顺序和重复性消费问题整理(附测试代码)
前言现在越来越多的产品采用的是分布式架构,部署的时候也同样是分布式部署,那么各个应用间的异步通信大多选择消息中间件MQ来处理,那么就回避不了两个问题:1. 发送消息的顺序性2. 消息被重复消费目前在生产环境,使用较多的消息队列中间件有ActiveMQ,RabbitMQ,Kafka,RocketMQ等,本文的设计是以RocketMQ为例来解决这两个问题。一、发送消息的顺序性1、 什么是...原创 2019-07-09 14:07:55 · 5374 阅读 · 0 评论 -
架构运维篇(五):Centos7/Linux中安装RocketMQ
上一篇 架构运维篇(四):Centos7/Linux中Tomcat安装Https证书实践这一篇讲一下在Centos7/Linux安装RocketMQ,MQ的具体应用场景和使用就不再啰嗦了。我在没有使用过MQ之前听其他大神提到感觉很高深和复杂,不过有道是“难者不会,会者不难”,那么想要入门MQ的先从学会安装部署开始。版本说明JDK :jdk1.8.0_172(已安装)MQ : rocke...原创 2019-07-05 17:57:12 · 988 阅读 · 0 评论 -
Spring Cloud(Greenwich版)-01-服务生产者与服务消费者
概念服务生产者:服务的被调用方(即:为其他服务提供服务的服务)服务消费者:服务的调用方(即:依赖其他服务的服务)以微商城系统为例:用户发起购买商品请求,调用商品信息微服务是否满足购买条件,如果满足那就去查用户信息,如下图所示:商品微服务是服务消费者,用户微服务就是服务生产者。接下来以“微商城”系统为例,编写服务生产者和消费者。编写一个服务生产者第一步:通过start.sprin...原创 2019-07-31 16:56:06 · 854 阅读 · 0 评论 -
Spring Cloud(Greenwich版)-02-服务注册与服务发现-Eureka入门
前言上一节通过RestTemplate实现了生产者与消费者之间的调用关系,也提到了这种方式在分布式架构中是存在着问题的。例如:商品微服务是消费者的同时还是其他服务的生产者,那么他们的调用配置都需要变更。当然可以采用nginx等反向代理来实现,但是当有数百个微服务岂不是被搞si了。针对这个问题引出了服务发现的概念,如下图所示:服务发现机制:1、服务生产者和服务消费者在启动的时候都会把自...原创 2019-07-31 16:57:54 · 521 阅读 · 0 评论 -
Spring Cloud(Greenwich版)-03-编写高可用Eureka Server(集群)
前言上一章Spring Cloud(Greenwich版)-02-服务注册与服务发现-Eureka入门,我们实现了将User和Goods微服务都注册到了Eureka上,那么在生产环境中为了达到高可用的目的,Eureka Service是集群部署的,那么接下来编写一个多节点Eureka Server集群。如下图所示:编写多节点Eureka Server第一步:设置主机名因为是在本机部署两...原创 2019-07-31 17:00:00 · 442 阅读 · 0 评论 -
Spring Cloud(Greenwich版)-05-Spring Cloud集成Ribbon(客户端负载均衡组件)
前言前面完成了商品和用户微服务的注册发现,是基于点对点的微服务之间的调用,那么在实际场景中微服务都是集群部署的,调用关系如下图所示:看到这里大家会想到不就是负载均衡嘛!项目中经常用Nginx来解决图中的服务集群问题,那如果有1000+甚至10000+的服务呢?每增加一个服务要去Nginx里面配置一下,然后重启?额…想想都头皮发麻!并且Nginx的负载均衡模式和本文将要讲的是有区别的。那么...原创 2019-08-16 09:35:40 · 531 阅读 · 0 评论 -
蚂蚁金服 Java RPC 开源框架—SOFARPC
SOFARPC 简介SOFARPC 是一个高可扩展性、高性能、生产级的 Java RPC 框架。在蚂蚁金服 SOFARPC 已经经历了十多年及五代版本的发展。SOFARPC 致力于简化应用之间的 RPC 调用,为应用提供方便透明、稳定高效的点对点远程服务调用方案。为了用户和开发者方便的进行功能扩展,SOFARPC 提供了丰富的模型抽象和可扩展接口,包括过滤器、路由、负载均衡等等。同时围绕 SOF...原创 2019-05-22 09:33:06 · 1338 阅读 · 0 评论 -
【分享】一次单体架构改造成微服务架构的拆分实践
上周更新了一篇【揭秘】一个小团队真正能落地的微服务架构实践,很多网友私信询问在落地微服务的时候服务是如何拆分的?有没有具体的方法?可不可以一劳永逸?额…好吧,针对大家比较关注的问题今天来分享一下之前在做电商的时候对公司产品做架构改造升级,以及跟其他同行一起聊过比较公认、适和小团队比较快速落地的微服务拆分方法。备注:文章中提供的拆分方法不一定全部得到大家的认可,如果有更好的可以留言分享哦~~~...原创 2019-04-18 15:53:34 · 3906 阅读 · 3 评论 -
Linux 下安装 Elasticsearch5.6.x 详细步骤以及踩坑解决方案
简介网上有各种ES版本的安装步骤和问题解决方案,但是在安装过程中还是遇到了许多问题,那么今天来整理一份详细的安装过程以及碰到的问题和心得;有什么不对的和问题希望大家留言一起讨论。jdk至少需要在1.8.0_73以上版本。linux的内核版本需要在2.6以上(我用的是centos7.x)一、下载elasticsearchcd /usr/localwget https://artifa...原创 2018-10-31 17:12:15 · 5767 阅读 · 1 评论 -
微服务架构实战篇(四):Spring boot2.0 + Mybatis +Druid监控数据库访问性能
简介该项目主要利用Spring boot2.0 + Mybatis +Druid 实现监控数据库访问性能。Druid是一个非常优秀的数据库连接池。在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。 Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。 Druid是...原创 2018-09-21 11:13:33 · 896 阅读 · 0 评论 -
微服务架构实战篇(三):Spring boot2.0 + Mybatis + PageHelper实现增删改查和分页查询功能
简介该项目主要利用Spring boot2.0 +Mybatis + PageHelper实现增删改查和分页查询功能,快速搭建一套和数据库交互的项目。源码地址 GitHub:https://github.com/yundianzixun/Spring-boot2.0-Mybatis-PageHelper 联盟公众号:IT实战联盟 我们社区:https://100boot.cn小...原创 2018-09-21 10:15:48 · 1748 阅读 · 0 评论 -
微服务架构实战篇(二):Spring boot2.0 + Swagger2 让你的API可视化
简介该项目主要利用Spring boot2.0 +Swagger2 方便进行测试后台的restful形式的接口,实现动态的更新,当我们在后台的接口修改了后,swagger可以实现自动的更新,而不需要认为的维护这个接口进行测试。源码地址 GitHub:https://github.com/yundianzixun/spring-boot-starter-swagger2 联盟公众号:...原创 2018-09-07 13:26:04 · 4688 阅读 · 0 评论 -
微服务架构实战篇(一):使用start.spring.io 构建SpringBoot2.0项目
简介该项目主要利用Spring 官方提供的在线项目脚手架来搭建SpringBoot 2.0的项目。源码地址 GitHub:https://github.com/yundianzixun/spring-boot-starter 联盟公众号:IT实战联盟 我们社区:https://100boot.cn小工具一枚,欢迎使用和Star支持,如使用过程中碰到问题,可以提出Issue,我会...原创 2018-09-05 18:17:23 · 3882 阅读 · 0 评论 -
SpringBoot+zk+dubbo架构实践(五):搭建微服务电商架构(内附GitHub地址)
往期回顾SpringBoot+zk+dubbo架构实践(一):本地部署zookeeperSpringBoot+zk+dubbo架构实践(二):SpringBoot 集成 zookeeperSpringBoot+zk+dubbo架构实践(三):部署Dubbo-admin管理平台SpringBoot+zk+dubbo架构实践(四):sb+zk+dubbo框架搭建(内附源码Git地址)先给大家看一个正在...原创 2018-06-08 15:19:51 · 3677 阅读 · 0 评论 -
SpringBoot+zk+dubbo架构实践(四):sb+zk+dubbo框架搭建(内附源码GitHub地址)
往期回顾SpringBoot+zk+dubbo架构实践(一):本地部署zookeeperSpringBoot+zk+dubbo架构实践(二):SpringBoot 集成 zookeeperSpringBoot+zk+dubbo架构实践(三):部署Dubbo-admin管理平台sb+zk+dubbo实现效果模拟了一个provider服务提供方和PC、Web两个服务消费方.gif前言先看一下上面的图有...原创 2018-06-07 14:37:21 · 3939 阅读 · 1 评论 -
通俗的语言解释一下什么是 RPC 框架
RPC框架职责RPC框架要向调用方屏蔽各种复杂性,要向服务提供方也屏蔽各类复杂性:1. 调用方感觉就像调用本地函数一样2. 服务提供方感觉就像实现一个本地函数一样来实现服务本地过程调用RPC就是要像调用本地的函数一样去调远程函数。在研究RPC前,我们先看看本地调用是怎么调的。假设我们要调用函数Multiply来计算lvalue * rvalue的结果:1 int Multiply(int l, ...原创 2018-06-06 15:11:58 · 1793 阅读 · 0 评论 -
SpringBoot+zk+dubbo架构实践(二):SpringBoot 集成 zookeeper
springboot+ zookeeper.jpeg上一篇:SpringBoot+zk+dubbo架构实践(一):本地部署zookeeper前言这是第二篇了,本篇我们完成两件事情。1、搭建SpringBoot 框架;2、基于spring boot框架访问zookeeper。搭建SpringBoot框架其实之前“IT实战联盟”已经出了该系列文章,今天我们简单搭建一下(详细的步骤可以参考架构实战...原创 2018-06-05 14:49:49 · 1375 阅读 · 1 评论 -
SpringBoot2.x填坑(一):使用CROS解决跨域并解决swagger 访问不了问题
简介公司后台是采用SpringBoot2.0 搭建的微服务架构,前端框架用的是vue 使用前后端分离的开发方式,在开发联调的时候需要进行跨域访问,那么使用CROS解决了跨域问题,但是swagger 却用不了 具体解决方案请继续往下看…CROS跨域原理跨域资源共享(CORS) 是一种机制,它使用额外的 HTTP 头来告诉浏览器 让运行在一个 origin (domain) 上的Web应用被准...原创 2018-12-14 14:06:01 · 7127 阅读 · 0 评论 -
日志分析工具 GoAccess v1.3 发布,支持简体中文和安装使用
GoAccess 简介简单来说呢 GoAccess 是一个专门用来分析日志的工具,既可以在终端中展示结果,也可以生成 HTML 报表在浏览器中查看。GoAccess 最吸引人的一点就是它生成的 HTML 足够炫酷(ÒωÓױ)。其他方面的特性包括1、数据近乎是实时的——浏览器通过 WebSocket 从服务器上的 GoAccess 实时获取数据;2、配置简单;3、支持的日志格式多(反正只...原创 2018-12-21 08:55:40 · 2678 阅读 · 0 评论 -
架构运维篇(一):Centos7/Linux安装jdk环境
前言最近联系安装部署了多台阿里云ECS和亚马逊云EC2 服务器,重复性的工作简单总结了一下,希望大家都有收获。一、检查历史安装环境(新环境就不需要了)查看命令 #java -version如果没有则说明没有安装过,如果有jdk版本信息那就不需安装或者卸载更新。卸载命令#rpm -e --nodeps java-x.x.x-gcj-compat-x.x.x.x-xx...原创 2018-12-29 11:50:08 · 582 阅读 · 0 评论 -
基于Spring Cloud开放平台解决方案 SOP
一、SOP简介基于Spring Cloud实现的一个开放平台解决方案项目,能够让开发团队快速得搭建起自己的开放平台。SOP提供了两种接口调用方式,分别是:支付宝开放平台的调用方式和淘宝开放平台的调用方式。 通过简单的配置后,你的项目就具备了和支付宝开放平台的一样的接口提供能力。SOP封装了开放平台大部分功能包括:签名验证、统一异常处理、统一返回内容 、业务参数验证(JSR-303)、秘钥管理...原创 2019-04-18 09:33:49 · 6036 阅读 · 2 评论 -
【揭秘】一个小团队真正能落地的微服务架构实践
编者的话微服务是否真的适合小团队这里不多做争辩。但是透过现象看本质,随着产品版本的不断迭代、业务复杂度的提高最终都会导致单体应用越来越庞大,总会超过单体架构的负荷。那么使用微服务分而治之就成为一个不得不面对的问题。所以这么庞大的单体应用拆分出多个小应用也更符合这种分治的思想。虽然这些不是小团队能够考虑到的事情,但是如果能在产品的初期阶段能够规划好产品的架构体系那么在慢慢演变的过程中会越来越顺手,...原创 2019-03-29 13:33:52 · 1249 阅读 · 0 评论 -
微服务架构实战篇(六):Spring boot2.x 集成阿里大鱼短信接口详解与Demo
简介该项目主要利用Spring boot2.x 集成阿里大鱼短信接口,发送短信验证码及短信接口详解,使用前需要在阿里大于管理中心添加短信签名与短信模板。阿里大鱼短信:alibaba.aliqin.fc.sms.num.send (短信发送) 向指定手机号码发送模板短信,模板内可设置部分变量。联盟公众号:IT实战联盟我们社区:https://100boot.cn小工具一枚...原创 2019-03-18 17:30:39 · 1136 阅读 · 0 评论