【藏经阁一起读】(77)__《Apache Dubbo3 云原生升级与企业最佳实践》

【藏经阁一起读】(77)

__《Apache Dubbo3 云原生升级与企业最佳实践》

目录

一、Dubbo是什么

二、Dubbo具体提供了哪些核心能力?

三、构建企业级Dubbo微服务

(一)、创建项目模板

(二)、将模板项目导入IDE开发环境

(三)、进入部署环节

(四)、进入流量管控

四、Dubbo特点:

快速上手,让开发者专注业务开发

服务治理,实时监测、管控集群状态

超高性能,面向百万实例集群设计

企业级解决方案,多年企业生产环境检验

五、书中案例

5.1、第一个方案,基于 Dubbo Filter 的单向方案。

5.2、第二个方案,网状点对点方案。

5.3、第三个方案,高速公路

5.3.1、Dubbo 的客观接入方式

5.3.2、高速公路的架构

5.3.3、隧道的机制

5.3.4、未来规划

六、读后思考


作者: 华钟明 宋小生 陈有为 江河清 王晓彬 何家欢 季敏

发布时间:2023-11-01

章节数:7

简介:

本书为CoC Asia 2023(原ApacheCon) RPC & Service Mesh 专题分享实录,通过摘取 Community Over Code Asia 2023(原 ApacheCon Asia)的 RPC & Service Mesh专题的精彩内容,我们以 Apache Dubbo 为中心展开,给大家带来开源微服务技术方向发展、云原生微服务选型、企业实践分享的精彩内容!

目录页


启动速度提升 10 倍:Apache Dubbo 静态化方案深入解析.........5
Apache Dubbo 云原生可观测性的探索与实践.............................29
基于 Triple 实现 Web 移动端后端全面打通...............................45
精进云原生 – Dubbo Kubernetes 最佳实践.............................. 58
政采云基于 Dubbo 的混合云数据跨网实践...................................77
OpenSergo & Dubbo 微服务治理最佳实践..................................94
Seata: 微服务架构下的一站式分布式事务解决方案................... 1

一、Dubbo是什么

  Dubbo3 是一款微服务架构,它帮助解决微服务开发中的通信问题。

  它不绑定编程语言。

  目标是为所有主流语言提供对等的微服务开发体验

  Dubbo从架构图上分为数据面和控制面

  在数据面,使用Dubbo开发的微服务进程间基于RPC协议通信,由一系列可选的微服务治理组件构成

  负责Dubbo集群的服务发现、流量管控策略、可视化检测等。

二、Dubbo具体提供了哪些核心能力?

  首先,Dubbo 作为服务开发框架解决了业务应用中微服务定义、暴露、通信与治理的问题,为业务应用开发定义了一套微服务编程范式。

  具体来说,Dubbo为业务应用开发提供了微服务开发API、RPC协议、服务治理三大核心能力,让开发者真正的专注业务逻辑开发,

  Dubbo不是应用框架的替代者,它可以很好的工作在每种语言的主流编程框架之上,以Java为例,Dubbo可以很好的与Spring协作,并在此基础上提供服务定义、微服务编程、服务发现、负载均衡、流量管控等能力

  在通信方面,Dubbo区别于其他RPC框架的是它不绑定特定协议,你可以选择HTTP/2、Dubbo2、REST、gRPC、REST、Hessian等任何通信协议,同时享受统一的API、以及对等的服务治理能力

  Dubbo的另外一个优势在于其可扩展性设计,从流量管控、协议编码、诊断调优、再到服务治理,你都可以去扩展,满足企业级微服务开发与运维的所有诉求,

基于扩展能力Dubbo官方提供了丰富的生态适配,涵盖了所有主流的微服务开源组件

  对于服务网格架构,Dubbo也可以很好的接入原生Istio体系,在数据面支持与Envoy部署的Proxy模式,

  也支持无Envoy的Proxyless模式,提供更灵活的数据面选择

三、构建企业级Dubbo微服务

构建企业级Dubbo微服务你只需要4步,

以Java微服务开发为例

(一)、创建项目模板

使用官方脚手架快速创建项目模板,只需要选择依赖的版本、组件,点击”获取代码“即可

(二)、将模板项目导入IDE开发环境

  将模板项目导入IDE开发环境,定义Java接口作为Dubbo服务,

  开发Dubbo服务端,我们接口实现并完成业务逻辑编码,通过一条简单的注解配置即可完成服务发布。

  开发Dubbo客户端,通过注释声明Dubbo服务,然后就可以发起远程方法调用了。

  至此,整个开发工作已经完成

(三)、进入部署环节

  我们选择Kubernetes作为部署环境,首先,通过一条命令安装Dubbo-admin等服务治理组件,安装完成后,我们可以查看部署状态,接下来部署应用,随后查看确认直到应用已经正常运行。

  然后我们就可以打开Admin控制台查看服务部署与调用情况了解部署情况。

(四)、进入流量管控

  进入流量管控,当应用已经平稳运行后,进一步控制流量的访问行为,控制台提供了可视化的流量治理规则操作入口,在这里可以直接下发流量规则。

  以一个线上环境的灰度隔离示例为例,

  通过Dubbo流量管控机制,我们可以给每个应用的一部分机器打上gray标签,接下来,对于入口为gray的流量,就可以通过控制确保它只在有gray标记的Dubbo实例内流转,实现了全链路的逻辑隔离效果。这对于隔离多套开发环境,线上灰度测试等场景都非常有用。

  对于同区域优先调用的场景,这里有两个应用做了多区域部署,

  紫色是杭州区域,蓝色是北京区域,部署在紫色区域的应用会优先调用访问同区域的应用,以此降低访问延迟,蓝色区域部署的服务亦是如此。当应用在同区域部署的实例不可用时,调用会自动跨区域切换到其他可用区,以此来确保整体可用性。

四、Dubbo特点:

快速上手,让开发者专注业务开发

  多语言 SDK 定义微服务开发范式,通信协议灵活切换,支持 HTTP/2、gRPC、REST、Thrift、TCP 等任一协议。

服务治理,实时监测、管控集群状态

  内置服务发现、负载均衡、路由等流量管控策略,提供全链路追踪、限流降级、一致性事务、日志、Metrics、服务网格、Admin 可视化控制台等一站式微服务生态。

超高性能,面向百万实例集群设计

  阿里巴巴每年双十一数百万实例、万亿次调用跑在 Dubbo 之上,从设计之初即将低延迟、高吞吐量、可伸缩性放在第一位。

      

企业级解决方案,多年企业生产环境检验

用户群体遍布各行各业

五、书中案例

书中有7篇文章,我留意了这篇:

政采云基于 Dubbo 的混合云数据跨网实践

作者:王晓彬,政采云资深开发工程师

  政采云的业务是为政府提供的购物网站,类似于淘宝。政府采购会在政采云上做企业采购、 政府采购的业务。

  云岛中的“云”是指我们的云平台,是公司内部,完全可控的局域网。技术上对应的是一套微服务框架。

  岛端它可能是局域网或者是私有网络,它可能是完全隔离的一个岛。他们的安全策略和开端口的东西都是他们自己定义的,这就是我们云岛的业务结构。比如安徽或者山西它们都有自己的局域网,如果我们在它们那里也部署一套这个服务框架,就叫“岛”。我们的云平台主要是给浙江省和其他相关的区划用的。

  我们的云和岛之间存在数据传输的问题,举个例子,比如我现在收到一个政府的公告,而这个公告可能是全国性的。那么我可能会在云平台的管理平台上去录公告,再把它推送出去,这个时候云和岛之间就存在了一些数据的同步。

混合云岛网络的特点

  • 平台的一致性。
  • 网络连接与能力复用。
  • 统一的平台管理。

政企网络痛点

政企网络有以下几个特点:

网络复杂。

安全要求高。

业务驱动运维。

5.1、第一个方案,基于 Dubbo Filter 的单向方案。

第一个特点,单向传输。

第二个特点,在本地部署业务的 provider 过滤器是运维上的负担。当岛端需要把数据同步 给云端的时候,也就是从岛端的业务 Web 传输到云端的业务 provider。这个时候我必须 在岛端也部署一套业务的 provider 才可以。

5.2、第二个方案,网状点对点方案。

  网状点对点方案。因为岛和岛之间需要网络互通,所以就会单独开通这个点 和你需要传输的点之间的端口。开通之后我们就可以调用了,调用的形式可以用 Dubbo, 也可以用其他。 这个方案有一个很明显的缺陷,线特别多,所以点和点之间开通的复杂度也很高,对后面 的扩展可能也非常不利。

以上方案存在的问题包括:

单向传输、

白名单开通成本高、

平台维护成本高、

公共功能的缺失。

5.3、第三个方案,高速公路

基于以上的问题,我们做了一个新的方案,叫高速公路。

云原生 Apache Dubbo3 微服务的架构的高速公路是指 Dubbo3 架构中的 Service Mesh,它是一个用于处理微服务间通信的基础设施层。Service Mesh 包含了一个专门的代理(如 Envoy),该代理管理微服务间的所有流量,包括负载均衡、流量控制、故障转移、安全认证等。这样,服务之间的通信可以更加可靠、安全、高效。同时,Service Mesh 还提供了丰富的监控和管理能力,可以帮助开发者更好地管理微服务架构。因此,可以将 Service Mesh 视为 Dubbo3 架构中的“高速公路”,它为 Dubbo3 微服务提供了快速、高效、可靠的通信通道。

想要达到的效果是:

  • 只建一次,可复用。
  • 隧道机制。
  • 考虑传输性能。

5.3.1、Dubbo 的客观接入方式

Dubbo 的客观接入主要有以下三种方式:

第一种,注解方式。

使用@DubboReference 提供的通用 parameters 参数,设置路由目标,可以达到方法粒度的路由。路由信息写在中间parameters那里,parameters是Dubbo 给我们提供的通用参数的传递。

第二种,配置中心指定。它完全可以把接入方式替换 掉,parameters 的信息在配置中心配置也可以,只要 SDK 可以支持就好。这种方式其实 代码是完全无侵入的,就是跟跨网之前和跨网之后没有任何区别。

第三种,线程指定。当你在线程里指定了路由信息,下面再去调用的时候,这次调用就会 走你的路由。如果再调用一次,它就会调回本地。因为基于线程的形式,在 Dubbo 的扩展 里,它会在调用完成之后把线程信息清理掉。所以需要注意一下,如果你想多次调用,就 需要写多次。如果不想写多次,你可以用上面这种方式,你只要注入在当前的 bean 里, 都是路由到上海。

5.3.2、高速公路的架构

5.3.3、隧道的机制

  隧道技术是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。

  高速公路架构中,使用了隧道这个概念。两端(业务层)是 Dubbo 私有协议,跨网传输过程中,则使用了 http 协议,http 协议可以更好的被中间设备、网关识别转发。这个机制的最大便利在于对业务的低侵入性。对于业务集群的应用完全不需要修改。

  隧道机制的作用是屏蔽网络的复杂性,屏蔽中间的协议转换, 给用户一个统一透明的调用方式

  这个机制的好处是,基本上 Dubbo 的所有特性都能支持。但也有一些个例,比如 token 和网络相关的机制

5.3.4、未来规划

六、读后思考

  这篇案例介绍了政采云基于 Dubbo 的跨网方案落地过程中面临的技术挑战、分析对比了几个方案的优缺点。

  对云岛业务结构的公司来说,云平台属于公司内部、完全可控的局域网,而岛端则是有自己安全网络策略的独立内部网络。需要云岛通信时,会基于需求,按客户要求走流程开通一些端口,这个过程需要一定的成本且不完全可控。业务上,如果这种跨网需求增多,则会逐渐变成痛点。如果可以搭建一个透明的跨网传输网络,配合良好的顶层设计,就可以在业务支撑、安全管控和运维成本中寻求较好的平衡。

  一个项目,我们通常能选择的跨网方案非常多,但最终我们会去选择一个能解决痛点的,而不是完美的方案。稳定、高效、可靠的基础设施是互联网企业应对业务高峰流量的底层基石。落地方案一般来说都比较保守,这很多时候跟政企业务特殊性有关。但我们对于架构的思考,一定是需要更超前的。随着方案的落地,后期需要从稳定性、功能增强、新技术探索三个方面去做深、做广。

  在政采云这种政企业务场景中的数据跨网,与业界公有云、自建私有云的公司相比,既有共性又有自己的特点,通过参考别人的案例,我们可以从中得到新的思路和启发。

            推荐阅读:

AIGC 是通向 AGI 的那条路吗?
数字人,虚拟数字人——你看好数字人领域的发展吗?
大数据的关键技术之——大数据采集
[你找到牵手一辈子的人了吗?] 七夕情人节特辑
数字技术能让古籍“活过来”吗?
心情不好时,帮自己训练个AI情绪鼓励师吧(基于PALM 2.0 finetune)
深度学习框架TensorFlow
人工智能开发人员工作流程、看法、工具统计数据
2023 年6月开发者调查统计结果——最流行的技术(2)
2023 年6月开发者调查统计结果——最流行的技术(1)
让Ai帮我们画个粽子,它会画成什么样呢?

9e598365ba5344e282453e71a676a056.jpeg​​​​​

b9b9f2b9374646798ca554110a498cda.jpeg​​​​​

23f61e3eac99458296be0fedea10019e.jpeg​​​​​

给照片换底色(python+opencv)猫十二分类基于大模型的虚拟数字人__虚拟主播实例

bfa502b957c247a7872d7e645d4c6f03.jpeg​​​​​

2f073e39924e42d2b33221f4262dcc1d.jpeg​​​​​

9d7e2b6a00aa45fd82291f0d5f9eea7e.jpeg​​​​​

计算机视觉__基本图像操作(显示、读取、保存)直方图(颜色直方图、灰度直方图)直方图均衡化(调节图像亮度、对比度)

01bfb23f2f894ee0b0164f52e57bbbbc.png​​​​​

47c92d6cf9fe4d279a142480a4340a0d.png​​​​​

1620a2a7b0914c42b3a8254e94269a79.png​​​​​

语音识别实战(python代码)(一)

 人工智能基础篇

 计算机视觉基础__图像特征

93d65dbd09604c4a8ed2c01df0eebc38.png​​​​​

 matplotlib 自带绘图样式效果展示速查(28种,全)

074cd3c255224c5aa21ff18fdc25053c.png​​​​​

Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

fe88b78e78694570bf2d850ce83b1f69.png​​​​​

62e23c3c439f42a1badcd78f02092ed0.png​​​​​

cb4b0d4015404390a7b673a2984d676a.png​​​​​

立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦

 Python 3D可视化(一)

让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud)

e84d6708316941d49a79ddd4f7fe5b27.png​​​​​

938bc5a8bb454a41bfe0d4185da845dc.jpeg​​​​​

0a4256d5e96d4624bdca36433237080b.png​​​​​

 python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

python爱心源代码集锦(18款)

dc8796ddccbf4aec98ac5d3e09001348.jpeg​​​​​

0f09e73712d149ff90f0048a096596c6.png​​​​​

40e8b4631e2b486bab2a4ebb5bc9f410.png​​​​​

 Python中Print()函数的用法___实例详解(全,例多)

 Python函数方法实例详解全集(更新中...)

 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念

09e08f86f127431cbfdfe395aa2f8bc9.png​​​​​

6d64357a42714dab844bf17483d817c0.png​​​​​

用代码过中秋,python海龟月饼你要不要尝一口?

 python练习题目录

03ed644f9b1d411ba41c59e0a5bdcc61.png​​​​​

daecd7067e7c45abb875fc7a1a469f23.png​​​​​

17b403c4307c4141b8544d02f95ea06c.png​​​​​

草莓熊python turtle绘图(风车版)附源代码

 ​草莓熊python turtle绘图代码(玫瑰花版)附源代码

 ​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码

4d9032c9cdf54f5f9193e45e4532898c.png​​​​​

c5feeb25880d49c085b808bf4e041c86.png​​​​​

 巴斯光年python turtle绘图__附源代码

皮卡丘python turtle海龟绘图(电力球版)附源代码

80007dbf51944725bf9cf4cfc75c5a13.png​​​​​

1ab685d264ed4ae5b510dc7fbd0d1e55.jpeg​​​​​

1750390dd9da4b39938a23ab447c6fb6.jpeg​​​​​

 Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)

 色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名)

2023年4月多家权威机构____编程语言排行榜__薪酬状况

aa17177aec9b4e5eb19b5d9675302de8.png​​​​​​

38266b5036414624875447abd5311e4d.png​​​​​

6824ba7870344be68efb5c5f4e1dbbcf.png​​​​​

 手机屏幕坏了____怎么把里面的资料导出(18种方法)

【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

 查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决

1408dd16a76947e4a7eb3c54cd570d95.png​​​​​

vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)

fea225cb9ec14b60b2d1b797dd8278a2.png​​​​​

bba02a1c4617422c9fbccbf5325850d9.png​​​​​

37d6aa3e03e241fa8db72ccdfb8f716b.png​​​​​

2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特

 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4套)

SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

5d409c8f397a45c986ca2af7b7e725c9.png​​​​​

6176c4061c72430eb100750af6fc4d0e.png​​​​​

1f53fb9c6e8b4482813326affe6a82ff.png​​​​​

【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码)HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码)

 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

fffa2098008b4dc68c00a172f67c538d.png​​​​​

5218ac5338014f389c21bdf1bfa1c599.png​​​​​

c6374d75c29942f2aa577ce9c5c2e12b.png​​​​​

 tomcat11、tomcat10 安装配置(Windows环境)(详细图文)

 Tomcat端口配置(详细)

 Tomcat 启动闪退问题解决集(八大类详细)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/156321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Qt一坑】qt编译出现“常量中有换行符”

在qt编译过程中出现“常量中有换行符”,原因有以下几点(qt版本5.14.2): 1.中文编码格式问题,将UTF-8编码格式改成 UTF-8 BOM。 或者使用QtCreator 进行如下设置(找到Qt的左边列表里的项目,下的…

​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​

软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】 课本里章节里所有蓝色字体的思维导图

nginx快速入门及配置文件结构

文章目录 Nginx 简介Nginx 特性Nginx 架构Nginx 相比Apache的优点Nginx 的安装启动、停止和重新加载 Nginx 配置Nginx 配置文件结构Nginx 工作流程 Nginx 简介 Nginx是 HTTP 和反向代理服务器,邮件代理服务器,以及 Igor Sysoev 最初编写的通用 TCP/UDP …

解锁潜力:创建支持Actions接口调用的高级GPTs

如何创建带有Actions接口调用的GPTs 在本篇博客中,我们将介绍如何创建一个带有Actions接口调用的GPTs ,以及如何进行配置和使用。我们将以 https://chat.openai.com/g/g-GMrQhe7ka-gptssearch 为例,演示整个过程。 Ps: 数据来源&#xff1a…

Linux:wget后台下载/查看后台任务进度

1. 后台下载 使用wget -b url: wget -b http://cn.wordpress.org/wordpress-3.1-zh_CN.zip后台任务启动后,会返回两段话,第一段返回一个pid,代表这个后台任务的进程,并且我们可以kill掉这个id来终止此次下载&#x…

Vue2系列 -- 组件自动化全局注册(require.context)

参考官网:https://v2.cn.vuejs.org/v2/guide/components-registration.html 1 作用 省略 import 引入组件 省略 在main.js 中注册 实现自动化引入组件 2 自定义文件夹 在 src 下新建一个 components/base 文件夹,用于存放要自动注册的组件 3 在 base…

【Docker】从零开始:1.Docker概述

【Docker】从零开始:1.Docker概述 1.什么是Docker2.为什么要使用Docker3.传统虚拟机技术与Linux容器技术的区别(1).传统虚拟机技术(2).Linux容器 4.Docker的特点一次构建、随处运行a.更快速的应用交付和部署b.更便捷的升级和扩缩容:c.更简单的系统运维d.…

边缘计算是如何为元宇宙提供动力的?

构建元宇宙虚拟世界并不简单,也并不便宜,但是还是有许多大型公司正在转移大量资源来开发他们的元宇宙业务,当然大部分企业注意力都围绕着 VR 耳机、AR 眼镜、触觉手套和其他沉浸式虚拟现实体验所需的可穿戴硬件。虽然这种沉浸式的体验是最终结…

2023.11.20 关于 Spring MVC 详解

目录 MVC 工作流程 Spring MVC 掌握三个功能 创建 Spring MVC 项目 推荐安装插件 EditStarters 安装步骤 使用方法 实现连接功能 基础注解 RequestMapping 指定 GET 和 POST 方法类型 ResponseBody 获取参数 传递 单个 或 多个参数 参数重命名 RequestParam …

5.基于飞蛾扑火算法(MFO)优化的VMD参数(MFO-VMD)

代码的使用说明 基于飞蛾扑火算法优化的VMD参数 优化算法代码原理 飞蛾扑火优化算法(Moth-Flame Optimization,MFO)是一种新型元启发式优化算法,该算法是受飞蛾围绕火焰飞行启发而提出的,具有搜索速度快、寻优能力强的…

事件溯源(Event Sourcing)和命令查询责任分离(CQRS)经验

这篇文章是实现一个基于 CQRS 和事件溯源原则的应用程序,描述这个过程的方式,我相信分享我面临的挑战和问题可能对一些人有用。特别是如果你正在开始自己的旅程。 业务背景 项目的背景与空中交通管理(ATM)领域相关。我们为一个 …

动手学深度学习——循环神经网络的简洁实现(代码详解)

文章目录 循环神经网络的简洁实现1. 定义模型2. 训练与预测 循环神经网络的简洁实现 # 使用深度学习框架的高级API提供的函数更有效地实现相同的语言模型 import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2lbatch_size, …

【Linux】文件操作

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析(3) 目录 👉🏻文件是什么?&am…

Python3.11+Pyside6开发电影下载程序

VideoSave是一款使用Python3.11Pyside6编写的提供下载电影/电视剧的软件,支持注册、登录、搜索、下载、查看日志等功能,提供了Window、Mac系统安装包。 先上效果图 提供功能 节省寻找资源的时间 ⌚️模糊搜索指定影片 🐴查看影片下载日志 &…

观光奶牛 (01分数规划、负环)

01分数规划问题:类似于观光奶牛这个题中的,求的路径上的点权值和与边权值和的商最大最小。 当前问题的推到如下: 该问题其实可以用二分图来解决, 在不断的二分答案中获取符合条件的最大值。然后问题就转化为如何是否存在和为mid的…

程序员如何“升级打怪”?我用了这几个“歪瓜”!

不会吧?不会吧?计算机本命专业出身、以及半路出家的,混了几年了,还在新手村?对得起这几年摸的鱼? 思考一下:如何从小白一跃为大师,从此走上人生巅峰、迎娶白富美?变强只…

Java --- JVM之垃圾回收相关知识概念

目录 一、System.gc() 二、内存溢出与内存泄漏 2.1、内存溢出 2.2、内存泄漏 三、Stop the world 四、垃圾回收的并行与并发 4.1、并发 4.2、并行 4.3、并行 vs 并发 4.4、垃圾回收的并发与并行 五、安全点与安全区域 5.1、安全点 5.2、安全区域 六、引用 6.1…

3.基于多能互补的热电联供微网优化运行复现(matlab代码)

0.代码链接 基于多能互补的热电联供微电网/综合能源系统优化运行(Matlab程序Yalmip+Cplex求解)_工业综合能源系统资源-CSDN文库 2. 主要内容:代码主要做的是多能互补的热电联供型微网优化运行模型,在需求侧对负荷类型…

Android Studio 引入Xui框架-简单应用

Android Studio Flamingo | 2022.2.1 Patch 2 Android 11开发、Gradle Version 8.0、 jdk17 源代码:GitHub - xuexiangjys/XUI: 💍A simple and elegant Android native UI framework, free your hands! (一个简洁而优雅的Android原生UI框架&#xff…

WordPress网站迁移实战经验

前几日,网站服务器到期,换了服务商,就把我的WordPress的网站迁移到本地电脑了。方便以后文章迁移。 本次迁移网站主要经历以下几个步骤。 1.域名转出。 2.备份数据库及网站文件下载。 3.重新搭建WordPress网站。 4.网站文件及数据库导入。 下面详细介绍下每个步骤的操作…