
微服务
文章平均质量分 87
JackieZhengChina
70'码农,优快云博客专家,信息系统项目管理师,工商管理硕士,CZB政采评审专家,中国采购与招标专家库专家,自驾爱好者,近20年教育类产品研发及管理经历,曾任教育科技公司联合创始人兼产品VP、科技公司产研VP。
职业标签:产品、项目、技术、运营、管理、战略。
展开
-
数据库 MySQL 是否需要容器化?
的定义:容器是为了解决“在切换运行环境时,如何保证软件能够正常运行”这一问题。认真分析大家的各种观点,发现赞同者仅仅是从容器优势的角度来阐述 MySQL 需要容器化,几乎没有什么业务场景进行验证自己的观点;反过来再看反对者,他们从性能、数据安全等多个因素进行阐述 MySQL不需要容器化,也举证了一些不适合的业务场景。下面,我们就聊一下不要将数据储存在容器中,这也是 Docker 官方容器使用技巧中的一条。容器随时可以停止、或者删除。当容器被rm掉,容器里的数据将会丢失。原创 2024-09-22 09:27:14 · 773 阅读 · 0 评论 -
开源的 Kafka 管理平台
对数据使用现成的 Serde。原创 2024-09-09 11:02:12 · 1118 阅读 · 0 评论 -
微服务架构拆分的 7 大黄金法则
你是否还在为微服务架构的拆分而苦恼?本文揭秘 7 大拆分原则,助你轻松驾驭微服务架构!随着云计算的普及,微服务架构成为企业数字化转型的重要选择。然而,如何合理拆分微服务却成为许多开发者的难题。本文将揭秘 7 大拆分原则,助你轻松驾驭微服务架构,提升系统性能和可维护性。无论你是架构师还是开发者,这些原则都将为你带来实实在在的帮助。今天,码哥带大家从不同角度来剖析微服务架构设计的 7 大原则,做到合理且正确地拆分出微服务,避免打造一个被人诟病的伪微服务架构大单体,徒增运维和开发成本。原创 2024-08-13 11:35:08 · 832 阅读 · 0 评论 -
Java 微服务框架选型(Dubbo 和 Spring Cloud?)
微服务架构是一种架构风格和架构思想,它倡导我们在传统软件应用架构的基础上,将系统业务按照功能拆分为更加细粒度的服务,所拆分的每一个服务都是一个独立的应用,这些应用对外提供公共的API,可以独立承担对外服务的职责,通过此种思想方式所开发的软件服务实体就是“微服务”,而围绕着微服务思想构建的一系列结构(包括开发、测试、部署等),我们可以将它称之为“微服务架构”。(5)服务容错:通过断路器(也称熔断器)等一系列的服务保护机制,保证服务调用者在调用异常服务时能快速地返回结果,避免大量的同步等待。原创 2024-07-18 11:09:01 · 1114 阅读 · 0 评论 -
一文了解微服务架构路线
随着你的应用服务的数量越来越多,服务需要知道彼此的服务实例地址,但是在有很多服务的大型应用中,这是无法处理的。此外,如果你的应用程序由多个服务组成,你的客户端需要知道每个服务地址,并且在更改服务地址的情况下,应该更新多个地方。例如,如果你决定实现一个微服务架构,你应该熟悉应用程序生命周期中的各种关注点,如持久化、日志记录、监控、负载均衡、缓存等,此外你还应该知道哪些哪些工具比较好或哪些堆栈更适合你的应用程序。云服务提供商是一个第三方公司,提供基于云的平台,基础设施,应用程序或存储服务。原创 2024-07-04 10:01:08 · 707 阅读 · 0 评论 -
Dubbo中的服务注册中心有哪些
支持多种类型的服务注册中心,用于管理和维护服务的元数据、提供者信息以及消费者信息。不同的服务注册中心适用于不同的场景和需求。都有其特点和适用场景,选择合适的注册中心取决于业务需求、系统架构以及对高可用性和稳定性的要求。在Dubbo中,你可以通过配置文件来选择使用哪种服务注册中心,以满足不同的场景需求。原创 2024-07-01 11:44:21 · 507 阅读 · 0 评论 -
@Reference 、@Resource和@Autowired的简单区分
作用相当于@Autowired,只不过@Autowired是byType自动注入,而@Resource默认byName自动注入。的注解,也是注入,他一般注入的是分布式的远程服务的对象,需要dubbo配置使用。@Resource和@Autowired注入的是本地spring容器中的对象。版权声明:本文为作者原创文章,转载请附上博文链接!@Reference注入的是。原创 2024-07-01 11:20:37 · 304 阅读 · 0 评论 -
数据库 MySQL 是否需要容器化?
学习的话,能 Docker 就无脑 Docker 部署,省时省力,比如安装个MySQL,一条命令就搞定了,用完容器一删,干干净净;如果在物理机上面安装MySQL,不仅会浸入电脑,而且还可能面临各种问题,结果是还没开始学,却被环境给难住了。但我的建议仅限于个人学习,如果部署线上环境,那就得综合考试当前的服务是否适合容器化;的定义:容器是为了解决“在切换运行环境时,如何保证软件能够正常运行”这一问题。原创 2024-06-25 16:37:03 · 763 阅读 · 0 评论 -
全方位对比Zookeeper、Eureka、Nacos、Consul和Etcd
本文给大家讲解 5 种常用的注册中心,对比其流程和原理,无论是面试还是技术选型,都非常有帮助。对于注册中心,在写这篇文章前,我其实只对 ETCD 有比较深入的了解,但是对于 Zookeeper 和其他的注册中心了解甚少,甚至都没有考虑过 ETCD 和 Zookeeper 是否适合作为注册中心。经过近 2 周的学习,原来注册中心除了 ETCD 和 Zookeeper,常用的还有 Eureka、Nacos、Consul。下面我们就对这些常用的注册中心,初探它们的异同,便于后续技术选型。注册中心主要有三种角色:服原创 2024-06-23 11:27:46 · 1480 阅读 · 0 评论 -
MySQL的自增 ID 用完了,怎么办?
如果你的自增 ID 是 INT 类型,要修改 INT 为 BIGINT 可以使用 ALTER 命令:原创 2024-06-20 07:54:01 · 946 阅读 · 0 评论 -
亿级流量电商网站中台微服务架构图
原创 2024-06-18 15:52:05 · 186 阅读 · 0 评论 -
支撑每秒 600 万订单无压力,SpringBoot + Disruptor 太猛了!
Disruptor 是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于 Disruptor 开发的系统单线程能支撑每秒 600 万订单,2010 年在 QCon 演讲后,获得了业界关注。Disruptor是一个开源的Java框架,它被设计用于在生产者—消费者(producer-consumer problem,简称PCP)问题上获得尽量高的吞吐量(TPS)和尽量低的延迟。原创 2024-06-18 09:01:24 · 389 阅读 · 0 评论 -
新手学习微服务,得先看看这篇文章
微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的类上应用很多SOLID原则。微服务架构是个很有趣的概念,它的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。原创 2024-06-18 08:16:17 · 965 阅读 · 0 评论 -
SpringCloud微服务架构(eureka、nacos、ribbon、feign、gateway等组件的详细介绍和使用)
单体架构特点:简单方便,高度耦合,扩展性差,合适小型项目。如:学生管理系统。分布式架构特点:松耦合,扩展性好,但架构复杂,难道大,适合大型互联网项目。如:京东、淘宝微服务:一种良好的分布式架构方案。优点:拆分粒度更小、服务更独立、耦合更低缺点:架构非常复杂,运维、监控、部署难道更高微服务需要根据业务模块拆分,做到单一职责,不要重复开发相同业务。微服务可以将业务暴露为接口,供其他微服务使用。不同微服务都应该有自己独立的数据库。原创 2024-06-11 20:18:11 · 2901 阅读 · 0 评论 -
微服务框架
单体架构特点?简单方便,高度耦合,扩展性差,适合小型项目。例如: 学生管理系统分布式架构特点?松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案优点: 拆分粒度更小、服务更独立、耦合度更低缺点:架构非常复杂,运维、监控、部署难度提高方式一是配置文件,feign.client.config.xxx.loggerLevel如果xxx是default则代表全局如果xxx是服务名称,例如userservice则代表某服务。原创 2024-06-11 20:10:30 · 1660 阅读 · 0 评论 -
消息中间件比较:Redis,Kafka和RabbitMQ
对微服务使用时,通常使用消息代理。代理确保不同微服务之间的通信可靠且稳定,消息在系统内得到管理和监控,并且消息不会丢失。您可以从几个消息代理中进行选择,它们的规模和数据功能各不相同。这篇博文将比较三种最受欢迎的代理:RabbitMQ、Kafka 和 Redis。原创 2024-06-11 14:36:49 · 1728 阅读 · 0 评论 -
云原生架构:构建高可用、可伸缩的互联网应用
未来随着云计算和容器技术的不断演进,云原生架构将继续发挥重要作用,并推动互联网应用的创新和发展。Native 可以理解为应用程序从设计之初就是原生为云而设计的,需要充分利用和发挥云平台的弹性+分布式优势,提升云上资源利用率、缩短开发周期。编排系统:Kubernetes(K8S)是一个优秀的容器编排系统,它可以自动管理容器的部署、扩展、故障恢复等,简化了应用的管理和运维。容器技术:Docker是目前最流行的容器化技术,它可以将应用和其依赖项打包成一个独立的容器,实现跨平台和快速部署。原创 2024-06-08 10:11:50 · 642 阅读 · 0 评论 -
[转]谈谈 Dapr 的优缺点,应用场景,以及未来的发展趋势,生态成熟度
简化开发:使用 dapr 可以简化微服务和分布式系统的开发,提供了一组通用的功能,这些功能包括服务发现,状态管理,消息传递,事件驱动等。生态成熟度:dapr 已经具备一定的生态,其中包括支持的编程语言和框架,以及社区中的各种贡献。未来,dapr 的生态会越来越成熟。复杂度:dapr 为开发者提供了丰富的功能,但也增加了系统的复杂度,需要开发者花费更多的时间和精力来学习和使用。解耦系统:dapr 的设计主张解耦系统中各部分的代码,从而提高代码可维护性和可扩展性,降低了各部分之间的耦合。转载 2024-04-11 15:37:37 · 241 阅读 · 0 评论 -
微服务全做错了!谷歌提出新方法,成本直接降9倍!
一位DataDog的客户收到6500万美元的云监控账单的消息,也再次让业界无数人惊到了。事实上有些团队在将集中式单体应用拆分为微服务时,首先进行的往往不是建立领域模型,而只是按照业务功能将原来单体应用的一个软件包拆分成多个所谓的“微服务”软件包,而这些“微服务”内的代码高度耦合,逻辑边界不清晰,长期以来,不管大厂还是小厂,微服务都被认为是云原生服务应用程序架构的事实标准,然而2023,不止那位37signals的DHH决心下云,放弃微服务,就连亚马逊和谷歌等这些云巨头,正在带头开始革了微服务的命。转载 2024-04-10 19:28:05 · 37 阅读 · 0 评论 -
[转]什么情形下应该使用BFF?带你了解BFF的优势,即服务于前端的后端
BFF是一种Web架构,全名为Backends For Frontends,即为服务于前端的后端。这个词来源于Sam。BFF一般指的是在前端与后端之间加增加一个中间层。为什么要在前端和后端之间增加一个BFF层呢?计算机科学中的所有问题都可以通过加一层来解决。因此,需要使用BFF的场景,肯定是普通的前后端开发模式遇到了部分问题。例如在Sam Newman的文章中就描述了BFF解决多个展示端的场景。转载 2024-04-05 16:46:35 · 71 阅读 · 0 评论 -
[转]大数据---20.Hive基础介绍
HiveHive:由Facebook开源用于解决海量结构化日志的数据统计工具。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据:可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能;转载 2024-04-05 16:22:36 · 38 阅读 · 0 评论 -
[转]ElasticSearch从入门到精通,史上最全
ElasticSearch:智能搜索,分布式的搜索引擎是ELK的一个组成,是一个产品,而且是非常完善的产品,ELK代表的是:E就是ElasticSearch,L就是Logstach,K就是kibanaE:搜索和分析的功能L:Logstach搜集数据的功能,类似于flume(使用方法几乎跟flume一模一样),是日志收集系统K:Kibana数据可视化(分析),可以用图表的方式来去展示,文不如表,表不如图,是数据可视化平台。转载 2024-04-05 16:21:20 · 268 阅读 · 0 评论 -
[转]网关Ocelot
网关(Gateway)在微服务架构中至关重要,可以将其理解为是外部客户端(前端、MVC后台等调用方)与后台服务的连接点,通过这层可以做统一的处理,比如路由、身份认证和授权、服务治理等;网关的好处:统一入口,调用方(客户端)不在为调哪个服务而头大,统一入口即可,由网关路由到对应后台服务;统一处理公共逻辑,比如认证和授权,避免相同逻辑多处实现,易于维护;对后台服务可以做负载均衡,根据指定的负载算法找到合适的后台服务调用,而这些细节调用方都不用理会,只管调就行啦;初步过滤非法请求。转载 2024-04-05 16:12:55 · 119 阅读 · 0 评论 -
[转]Envoy学习和实战
前面表格中也说明了Envoy是数据面的实现部分,数据控制面是用来控制当前节点中的所有网络出入请求的,那这是怎么实现的,我们能想到用来控制网络出入请求的只有防火墙,而防火墙是怎么实现的,采用的是内核的netfilter,envoy也是采用netfilter实现的,只是netfilter是内核的,要调用该软件采用的是用户软件iptables,该软件来调用netfilter,那netfilter是啥,以及怎么控制的,以前写过一点文章,这里重新介绍下。转载 2024-04-05 16:08:08 · 137 阅读 · 0 评论 -
[转]【微服务篇】深入理解分布式消息队列系统
是一种在多个服务器、应用或服务之间进行消息传递的技术。它使得各个独立的组件可以通过异步消息进行通信,提高了系统的可扩展性、解耦性和可靠性。转载 2024-04-04 10:05:32 · 63 阅读 · 0 评论 -
[转]字节三面:如何设计一个高并发系统
大家好,我是田螺。记得很久之前,去面试过字节跳动。如何设计一个高并发系统。当时我回答得比较粗糙,最近回想起来,所以整理了设计高并发系统的15个锦囊,相信大家看完会有帮助的。转载 2024-04-02 10:35:16 · 89 阅读 · 0 评论 -
[转]字节二面:如何设计一个支撑数亿用户的系统?
要设计出一套能支撑几十亿人的系统是很困难的。对于软件架构师来说,这一直是一项很大的挑战,但是,从现在开始,看完我的文章,你就会觉得容易很多了。下面是我在本文中提到的几个话题:从最简单的开始:万事合一。可扩展性的艺术:纵向扩展,横向扩展。扩展关系型数据库:主 - 从复制、主 - 主复制、联合、分片、非规范化和 SQL 调优。使用哪种数据库:NoSQL 还是 SQL?先进概念:缓存、CDN、geoDNS 等。在这篇文章里,我不打算谈论诸如容错、可靠性、高可用性等高性能计算的通用术语。转载 2024-04-02 10:33:35 · 44 阅读 · 0 评论 -
[转]命令查询职责分离(CQRS)模式:提高微服务架构的可扩展性和性能
CQRS模式是一种将应用程序的读写操作分离的设计模式,通过使用不同的数据模型来优化读取和写入操作,可以提高系统的可扩展性、性能、可维护性和灵活性。然而就像任何技术架构一样,CQRS也有其局限性和适用场景。以下是一些需要考虑的因素:•增加了系统复杂性:使用CQRS需要开发人员具备更高的技术水平和设计能力,因为需要处理多个数据模型和异步通信。此外,系统中的各个部分需要进行协调和一致性处理,这也增加了系统的复杂性。转载 2024-03-28 21:13:06 · 51 阅读 · 0 评论 -
[转]Docker技术 ( 容器虚拟化技术 )
一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验。Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。环境配置如此麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。转载 2024-03-28 20:06:04 · 141 阅读 · 0 评论 -
[转]微服务 常见的各类组件名称介绍
值得注意的是,Netflix 在后续的发展中停止了对 Eureka 的主动维护,但它仍然是一个成熟的和广泛使用的服务发现解决方案,并且在 Spring Cloud 中仍然得到支持。它可以帮助开发人员管理和控制请求的流量、提供统一的入口和出口、增强系统的安全性和性能,并提供扩展和定制化的能力。它提供了一种方便和集中的方式来注册、发现和管理服务,同时实现了动态配置的加载和更新。Netflix OSS的开源项目提供了丰富的功能和模块,可以根据需要选择和集成到自己的应用程序中,以构建弹性、高性能的分布式系统。转载 2024-03-28 14:57:42 · 63 阅读 · 0 评论 -
[转]微服务架构最强讲解,通俗易懂,写得太好了!
微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的类上应用很多SOLID原则。微服务架构是个很有趣的概念,它的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。转载 2024-03-28 14:49:07 · 183 阅读 · 0 评论 -
Docker镜像详细讲解
大家好,本文是对Docker镜像的详细讲解,讲解了如何安装Docker、配置Docker镜像加速以及操作Docker镜像。希望对大家有所帮助~其中,可以是镜像短ID、镜像长ID、镜像名或者镜像摘要。我们可以用镜像的完整ID,也称为长ID,来删除镜像。使用脚本的时候可能会用长ID,但是人工输入就太累了,所以更多的时候使用短ID来删除镜像。默认列出的就已经是短ID了,一般取前3个字符以上,只要足够区分于别的镜像就可以了。比如这里,如果我们要删除redisalpine我们也可以用。...转载 2022-07-26 10:32:50 · 631 阅读 · 0 评论 -
DevOps及DevOps常用的工具介绍
DevOps这个词,其实就是和Operations两个词的组合。它的英文发音是/de'vɒps/,类似于"迪沃普斯"它的目标DevOps就是让开发人员和运维人员更好地沟通合作,通过自动化流程来使得软件整体过程更加快捷和可靠。...转载 2022-07-24 07:48:31 · 225 阅读 · 0 评论 -
千万级可观测数据采集器--iLogtail代码完整开源
2022年6月29日,阿里云iLogtail开源后迎来首次重大更新,正式发布完整功能的iLogtail社区版。本次更新开源全部C++核心代码,该版本在内核能力上首次对齐企业版,开发者可以构建出与企业版性能相当的iLogtail云原生可观测性数据采集器。本次发布新增日志文件采集、容器文件采集、无锁化事件处理、多租户隔离、基于Pipeline的新版配置方式等诸多重要特性,全面增强社区版的易用性和性能,欢迎广大开发者关注、共建。可观测性是通过检查其输出来衡量系统内部状态的能⼒。该术语起源于⼏⼗年前的控制理论,最早转载 2022-07-12 10:56:39 · 207 阅读 · 0 评论 -
Thrift基本原理及使用
参考文章RPC 基本原理与 Apach Thrift 初体验 RPC(Remote Procedure Call),远程过程调用,大部分的RPC框架都遵循如下三个开发步骤:RPC通信过程如下图所示通信过程包括以下几个步骤:所有这些步骤的效果是,将客户过程对客户桩发出的本地调用转换成对服务器过程的本地调用,而客户端和服务器都不会意识到有中间步骤的存在。这个时候,你可能会想,既然是调用另一台机器的服务,使用 RESTful API 也可以实现啊,为什么要选择 RPC 呢?我们可以从两个方面对比:转载 2022-07-08 08:40:54 · 647 阅读 · 0 评论 -
基于redis实现的扣减库存
理论上即使是这样由于MySQL事务的特性,这种方法只能降低超卖的数量,但是不可能完全避免超扣。因为数据库默认隔离级别是repeatable read,假如库存是5,有A、B两个请求分别创建了事务并且都没有提交,当A事务提交了,改了库存为4,但是因为是事务隔离级别是可重复读的,所有B看不到A事务改的库存。到时B看到的库存还是5,所以B修改库存为4,这样就出现了超扣问题。所以我们扣库存的时候需要将事务隔离级别设置成read commit才可以。(我自己测试没有出现这种情况)MySQL自身对于高并发的处理性能就会转载 2022-06-28 21:37:08 · 1103 阅读 · 0 评论 -
4种分布式session解决方案
cookie是本地客户端用来存储少量数据信息的,保存在客户端,用户能够很容易的获取,安全性不高,存储的数据量小session是服务器用来存储部分数据信息,保存在服务器,用户不容易获取,安全性高,储存的数据量相对大,存储在服务器,会占用一些服务器资源,但是对于它的优点来说,这个缺点可以忽略了在一次客户端和服务器为之间的会话中,客户端(浏览器)向服务器发送请求,首先cookie会自动携带上次请求存储的数据(JSESSIONID)到服务器,服务器根据请求参数中的JSESSIONID到服务器中的session库中转载 2022-06-28 10:50:35 · 875 阅读 · 0 评论 -
分布式id解决方案
所谓id就是能够用作唯一标识的记号。在我们日常的设计中,对于单体架构,我们一般使用数据库的自增Id来作为表的主键,但是对于一个分布式系统,就会出现ID冲突,所以对于分布式ID而言,也需要具备分布式系统的特点:高并发,高可用,高性能等特点。我们先看看常见的分布id解决方案以及各自特点的对比下面我们具体看看这些方案的对比:上面提到了五种解决方案,目前流行的分布式ID解决方案有两种:「号段模式」和「雪花算法」。这种方式很简单,在每次需要新增数据的时候,先生成一个uuid我们需要专门创建一个表来存放id,原创 2022-06-28 10:40:38 · 417 阅读 · 0 评论 -
Kafka 安装详解
首先下载安装包,在linux及Windows都可以使用。将下载好的安装包上传至服务器解压 后台启动zookeeperkafka需要依赖ZK,安装包中已经自带了一个ZK,也可以改成指定已运行的ZK。 如果改成指定的ZK需要修改修改 kafka 安装目录下的 config/server.properties 文件中的zookeeper.connect 。这里使用自带的ZK。 检查zookeeper是否启动成功: 修改相关配置 Broker ID启动以后就不能改了转载 2022-06-27 07:45:50 · 627 阅读 · 0 评论 -
一文把Docker、Kubernetes搞懂:什么是Docker?什么是Kubernetes?Docker和Kubernetes有什么关系和区别?通俗解释Docker、Kubernetes
● 应用构建○ Java、C++、JavaScript——编程各异○ 打成软件包○ .exe(类似Windows,最终也只是生产exe执行)○ 使用docker build … 打包成 镜像——这就类似于exe● 应用分享○ 所有软件的镜像放到一个指定地方 docker hub○ 类似——安卓,应用市场● 应用运行○ 统一标准的 镜像○ docker run 就好(以前的方法是java -ja…、C++编译再整很多东西等等都不一样)● …区别于虚拟化技术:● cpu、memory资源隔离与限转载 2022-06-25 08:47:49 · 432 阅读 · 0 评论