当前位置: 首页 > news >正文

微服务框架

一、目标

微服务框架通过组件化的方式提供微服务的开发部署、服务注册发现、服务治理与服务运维等能力。主流的微服务框架有开源的Spring Cloud、Dubbo与Service Mesh等,各大云厂商也基于开源的微服务框架,集成相关的云服务,实现企业级的微服务框架,如阿里云EDAS、腾讯云TSF、华为云CSE等。

二、主流框架

2.1、spring cloud

Spring Cloud提供一套基于Spring Boot快速构建的分布式系统/微服务的通用工具集合。通过Spring Boot对多个成熟的微服务框架再封装,屏蔽掉复杂的配置和实现原理,给开发者提供了一套简单易懂、易部署维护的微服务/云原生应用开发工具。利用Spring Boot可以简化微服务开发与治理,实现微服务一键启动和部署。Spring Cloud 提供各种轻量化,互相解耦,可以快速启用的组件来实现各种功能,如例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导层选举、分布式会话、群集状态等。

2.2、Dubbo

Dubbo是一款高性能Java开源的微服务框架(RPC框架),提供三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。Dubbo 采用全Spring 配置方式,透明化接入应用,对应用没有任何API 侵入,只需用Spring 加载Dubbo 的配置即可。如表3,在功能特性,服务通信与生态活跃度方面,Spring Cloud比Dubbo存在比较明显的优势。

三、主流框架对比

四、微服务设计

4.1、服务拆分

高内聚、低耦合、轻量化。

4.1.1、单一职责

服务业务逻辑单一、功能单一,只负责处理单一任务,不相关的业务逻辑隔离。服务部署更新时影响较小。

4.1.2、降低依赖:

减少服务之间不必要的依赖,降低服务间的协作成本,比如,避免循环依赖,避免核心服务对非核心服务的依赖。

4.1.3、服务自治:

除了服务功能上的独立性,还要保障服务提供团队小而全,能够进行完整的服务生命周期管理,包括需求、设计、开发、测试、发布、运维与运营等。

微服务拆分过程需要综合考虑各种因素,不断迭代优化。根据业务需要,可以参考以下一种或几种不同的拆分策略:

基于业务功能:按功能进行垂直拆分,比如电商场景中的订单服务、商品服务、价格服务等。

基于数据模型:确定数据模型及其依赖关系,按数据关联紧密、一致性要求较高、数据访问或数据安全要求的关联性进行拆分。比如,商品与商品项。

基于界限上下文:跟进完整的业务场景相关的模型、关系和行为进行拆分,比如,商品服务定义商品模型、特性及其相关操作。

基于非功能因素:基于服务可复用性、资源使用、交付频率、可伸缩性等进行拆分。

相关文章:

微服务框架

一、目标 微服务框架通过组件化的方式提供微服务的开发部署、服务注册发现、服务治理与服务运维等能力。主流的微服务框架有开源的Spring Cloud、Dubbo与Service Mesh等,各大云厂商也基于开源的微服务框架,集成相关的云服务,实现企业级的微服…...

(matplotlib)如何让各个子图ax大小(宽度和高度)相等

文章目录 不相等相等 import matplotlib.pyplot as plt import numpy as np plt.rc(font,familyTimes New Roman) import matplotlib.gridspec as gridspec不相等 我用如下subplots代码画一行四个子图, fig,(ax1,ax2,ax3,ax4)plt.subplots(1,4,figsize(20,10),dpi…...

python http 上传文件

文章目录 改进质量 import random import requests from requests_toolbelt.multipart.encoder import MultipartEncoderurl http://ip:port/email data MultipartEncoder(fields{receiverId: xxxx163.com,mailSubject: mailSubject,content: content,fileList: (file_name, …...

IPO解读:Instacart曲折上市,业务模式如何持续“绚烂”?

商业世界的模式创新就像夜空中的烟火,而上升期的烟火总是绚烂的。 近日,美国商品配送业的鼻祖Instacart重新启动了IPO,并于9月11日,更新了招股书,将发行价定为每股26-28美元,计划融资6.16亿美元。值得一提…...

使用sql profile 稳定执行计划的案例

文章目录 1.缘起2.变慢的sql3.检查瓶颈4.解决办法4.1 SQLTXPLAIN 也称为 SQLT4.11 下载coe_xfr_sql_profile.sql4.12 使用方法4.13 执行coe_xfr_sql_profile.sql4.14 执行coe_xfr_sql_profile.sql产生的sql profile文件4.15 验证 4.2 SQL Tuning Advisor方式4.21 第一次Tuning …...

海南大学金秋悦读《乡村振兴战略下传统村落文化旅游设计》2023新学年许少辉八一新书​

海南大学金秋悦读《乡村振兴战略下传统村落文化旅游设计》2023新学年许少辉八一新书​...

[N0wayback 2023春节红包题] happyGame python反编译

这个反编译的比较深 一,从附件的图标看是python打包的exe文件,先用pyinstxtractor.py 解包 生成的文件在main.exe_extracted目录下,在这里边找到main 二,把main改名为pyc然后加上头 这个头从包里找一个带头的pyc文件&#xff…...

Redis 初识与入门

1. 什么是Redis Redis 是一种基于内存的数据库,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于缓存,消息队列、分布式锁等场景。 Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符串)、…...

【STM32】片上ADC的初步使用

基于stm32f103系列 基于《零死角玩转 STM32F103—指南者》 ADC简介 stm32f103上的ADC 数量:3 精度:12bit(4096) 通道:ADC1,ADC2均有16个通道,ADC3有8个 功能:   转换结束、注入转换结束和发生模拟看门狗事件时产生中断。   …...

esxi下实现ikuai相同的两个网卡,单独路由配置

1.首先安装配置双网卡。 因为esxi主机只接入了一根外网的网线,那么我们这两个网卡都是一样的网卡,具体的到系统里面进行设置。 2.开机安装系统 进入配置界面,此处就不用多说了,可以看我之前的文档,或者网上其他人的安…...

Windows环境下Elasticsearch相关软件安装

Windows环境下Elasticsearch相关软件安装 本文将介绍在 windows 环境下安装 Elasticsearch 相关的软件。 1、安装Elasticsearch 1.1 安装jdk ElasticSearch是基于lucence开发的,也就是运行需要java jdk支持,所以要先安装JAVA环境。 由于ElasticSear…...

配置Jedis连接池

一、概述 Jedis本身是线程不安全的,并且频繁的创建和销毁连接会有性能损耗,因此推荐使用Jedis连接池代替Jedis的直连方式。 二、创建连接池 public class JedisConnectionFactory {private static final JedisPool jedisPool;static {//配置连接池Jedi…...

Windows 12 开源网页版

前言 Windows 12 网页版是一个开源项目,使用标准网络技术,例如 Html、CSS 和 Javascript, 希望让用户在网络上预先体验 Windows 12 Windows 12 网页版download Windows 12 网页版 gitlab项目Windows 12 网页版 downloadWindows 12 demo参考downloaddemo test 开始菜单 ​ …...

circleMidpoint(scrPt c, GLint r) 未定义的标识符,openGL第四章例子 ,画饼状图。

以下是完整的例子。在第四版 《计算机图形学 with openGL》第四章的例子中,竟然只调用了circleMidpoint(scrPt &c, GLint r) ,没有实现,我认为是系统方法,怎么找都找不到。openGL 官方文档也没找到,这不会是自定义…...

RKNN模型评估-性能评估和内存评估

基于Python的模型评估 perf_debug:进行性能评估时是否开启debug 模式。在 debug 模式下,可以获取到每一层的运行时间,否则只能获取模型运行的总时间。默认值为 False。 eval_mem: 是否进入内存评估模式。进入内存评估模式后,可以…...

window mysql-8.0.34 zip解压包安装

window系统上安装mysql8 解压版 下载压缩包 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.34-winx64.zip安装 用解压软件解压刚下载的mysql-8.0.34-winx64.zip 的文件至d:\devs路径下。 创建配置文件my.ini到路径d:\devs\mysql-8.0.34-winx64下 [mysqld] # 设置…...

Mysql判断某个数据库中是否包含某个表,与pymysql工具函数

查看某个数据库中的全部表: SELECT table_name FROM information_schema.tables WHERE table_schema 数据库名因此查看某个库中的某个表可以使用: SELECT table_name FROM information_schema.tables WHERE table_schema 数据库名 AND table_name 表…...

快速掌握正则表达式

文章目录 限定符 Qualifier第一个常用限定符 ?第二个常用限定符 *第三个常用限定符 或运算符字符类元字符 Meta-characters\d 数字字符\w 单词字符空白符 \s.任意字符^ $ 行首行尾 贪婪与懒惰匹配 Greedy vs Lazy Match实例 1 :RGB颜色匹配实例 2 &…...

git: ‘lfs‘ is not a git command unclear

首先可以尝试 git lfs install 是否可以,不可以后就看这个连接:https://stackoverflow.com/questions/48734119/git-lfs-is-not-a-git-command-unclear。 我的是ubuntu,所以: 保证这个前提: git-lfs requires git ve…...

代码随想录--哈希--两个数组的交集

题意:给定两个数组,编写一个函数来计算它们的交集。 说明: 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。 import java.util.ArrayList; import java.util.HashMap; import java.util.List;public class SSS {public …...

Ludusavi:你的游戏进度守护神,三分钟搞定跨平台存档备份

Ludusavi:你的游戏进度守护神,三分钟搞定跨平台存档备份 【免费下载链接】ludusavi Backup tool for PC game saves 项目地址: https://gitcode.com/gh_mirrors/lu/ludusavi 你是否曾在电脑崩溃后,发现数百小时的游戏进度瞬间归零&…...

为什么很多人学 Django 会懵?因为没搞懂 MVC 和 MTV 的真正区别

很多刚接触 Django 的开发者,甚至包括不少测试工程师,在学习 Django 时都会遇到一个困惑:为什么 Django 不叫 MVC,而是 MTV?更奇怪的是:很多教程还会说:“Django 的 MTV 其实就是 MVC。”这句话…...

多项式朴素贝叶斯

多项式朴素贝叶斯(二分类) 题意 实现一个 Multinomial Naive Bayes 二分类器。 train:二维列表,每行最后一列为标签 y \in \{0,1\},其余列为非负整数词频test:二维列表,仅包含词频特征&#xff…...

企业级 Agent SKILL 最佳实践

最近,真的是屁颠屁颠地使用Openclaw作为业务核心为客户打造智能体的工作流程,包括组织、业务、技术三个全面的转型。同时,由于OpenAI的Sora下线,年初刚刚建立的AI漫剧工作流,资产库以及提示词都需要转换成替代品。还有…...

别再花钱买云API了!手把手教你用Docker+Ollama在本地免费跑通Strix渗透测试

零成本打造企业级渗透测试环境:DockerOllama本地化实战指南 当安全团队每月收到云服务商五位数的API账单时,当关键测试任务因网络抖动被迫中断时,越来越多的技术决策者开始重新审视渗透测试的基础架构。本文将揭示如何用消费级硬件构建媲美商…...

5V与3.3V MCU串口电平转换电路设计

不同工作电压MCU间的串口电平转换电路设计1. 项目概述1.1 问题背景在现代嵌入式系统设计中,经常遇到不同工作电压的微控制器(MCU)之间需要进行串口通信的场景。例如:MCU1工作电压:5VMCU2工作电压:3.3V若直接将两个MCU的TX、RX引脚…...

SEER‘S EYE模型辅助计算机组成原理教学:概念可视化与问答

SEERS EYE模型辅助计算机组成原理教学:概念可视化与问答 计算机组成原理这门课,对很多学生来说,就像在学一门“外星语”。CPU、寄存器、流水线、缓存……这些词听起来就够抽象的,更别说理解它们是怎么协同工作的了。传统的教学方…...

OpCore Simplify:零基础黑苹果配置的智能助手

OpCore Simplify:零基础黑苹果配置的智能助手 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 对于许多电脑爱好者来说,安装黑苹…...

OpenClaw多用户方案:QwQ-32B共享环境下的权限隔离

OpenClaw多用户方案:QwQ-32B共享环境下的权限隔离 1. 为什么需要多用户方案? 去年我在家里搭建了一个OpenClaw自动化环境,原本只是个人使用。直到某天家人看到我用语音指令让AI自动整理照片、生成周报后,纷纷要求"共享&quo…...

UReport2实战:如何优雅地导出多Sheet页报表(动态/静态分页全解析)

UReport2实战:如何优雅地导出多Sheet页报表(动态/静态分页全解析) 在数据驱动的商业环境中,报表导出功能已成为企业级应用的标配需求。当面对海量数据时,传统的单Sheet页Excel导出方案往往导致文件臃肿、查阅困难。URe…...